Slashdot Mirror


C# In-Depth

Bergkamp10 from ComputerWorld writes "Microsoft's leader of C# development, writer of the Turbo Pascal system, and lead architect on the Delphi language, Anders Hejlsberg, reveals all there is to know on the history, inspiration, uses and future direction of one of computer programming's most widely used languages — C#. Hejlsberg also offers some insight into the upcoming version of C# (C#4) and the new language F#, as well as what lies ahead in the world of functional programming."

21 of 499 comments (clear)

  1. The Printer Friendly version ... by neonprimetime · · Score: 5, Informative

    I beg you to use this link instead of flipping thru all 8 pages

  2. Foctothorpe FTW by netpixie · · Score: 5, Funny

    I am a sad case and find much amusement in the fact that the "correct" name for the # symbol is octothorpe, which means "C#" should not be pronounced "C-sharp" but Coctothorpe.

    Imagine my joy on discovering that they've scoured the alphabet and have managed to find a new initial letter that makes an even funnier name.

    Ladies and gentlemen, let us welcome the new language, F# or Foctothorpe.

    1. Re:Foctothorpe FTW by netpixie · · Score: 5, Informative

      That'll be because music uses sharps (i.e. unicode symbol 266F) rather than octothorpes (unicode 0023)

      E followed by unicode 266F is indeed E sharp
      E followed by unicode 0023 is E-octothorpe.

    2. Re:Foctothorpe FTW by IIRCAFAIKIANAL · · Score: 4, Informative

      C# is indeed C followed by a musical sharp. But everyone uses the octothorpe for convenience.

      --
      Robots are everywhere, and they eat old people's medicine for fuel.
  3. a bunch of questions by yanyan · · Score: 5, Insightful

    Could it be that C# is one of the most widely used simply because of the installed base of windoze machines all over the world and not because of any technical merit? Most current languages have compilers and interpreters that run on windoze; what makes people choose C# over the others? Just how much impact has C# had on computing sciences as a whole, anyway?

    1. Re:a bunch of questions by nschubach · · Score: 5, Informative
      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    2. Re:a bunch of questions by Nursie · · Score: 5, Informative

      8th most widely used.

      After Java, C, C++, Visual Basic, Python, Perl and PHP. It just beats out javascript, below that you get into the obscure languages.

    3. Re:a bunch of questions by ByOhTek · · Score: 5, Interesting

      I've tried a number of apps in mono under frebsd (you need lang/mono and x11-toolkits/libgdiplus). Threads, UI, Sockets, SSL sockets, etc. all seem to work fine. Compiled in Visual Studios 2003. It's not even bad as a cross-platform application.

      Conversely, in Suns own Java implementation, going between Windows and HPUX, I've run into issues simply with the regular expression parser of the /find/ function of the String library.

      I'm not saying .NET is perfect by any means, but it's certainly not bad framework either. It's decent for cross-platform apps. Everything has it's flaws, nothing is perfect, etc.

      Yes, I know, there is always a chance MS will say "No more!" to the mono project. As I said, nothing's perfect.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    4. Re:a bunch of questions by GeckoX · · Score: 4, Insightful

      ehh? You do realize that VB.Net is not VB6. When you choose to not use the Microsoft.VisualBasic namespace, which merely contains an abstraction layer to allow VB6 programmers to be more comfortable in .Net, it actually hardly merits the name VB.

      For the most part, the only differences between c# and vb.net are syntax. Begin...End, For...Next control structures rather than brackets is the biggest difference.

      I wrote c# at my last job for a couple of years. At my current shop, they're a vb shop and brought me in to bring things up to .Net. Since all the current devs were vb6 devs, they wanted the easiest path for them to migrate into .Net, thus I had to start working in VB.Net. At first, I dreaded it..but very quickly realized that it's all just .Net, and the VB.Net and C# languages are very comparable, both being just as easy to work in.

      Bottom line, you like curly braces? Use c#. Don't care? Then use whichever you like.

      --
      No Comment.
  4. C# is not the most widely used comp language by frith01 · · Score: 4, Insightful

    >>one of computer programming's most widely used languages.

    I highly doubt that a language that has only been around for a few years is the most "widely" used computer language. Cobol, fortran, or standard C , maybe.

  5. Re:amazing what doesnt get asked by Abcd1234 · · Score: 4, Interesting

    I'm curious, what gives you the idea that C# fragmented "the whole programming scene"? As far as I can tell, C# has really just replaced C++ on the Windows client side, where Java never had a foothold to begin with.

    So, where is this fragmentation you speak of?

  6. You're missing the most radical language of all by BadAnalogyGuy · · Score: 4, Funny

    The Roctothorpe!

    *insert headbanging graphic here*

  7. C# Usage by O('_')O_Bush · · Score: 5, Informative

    According to this: http://www.langpop.com/ , C# is only the 9th most popular language, only competing with scripting languages.

    It comes nowhere close to the more popular programming languages in terms of usage.

    --
    while(1) attack(People.Sandy);
  8. Re:One of the most widely used languages? by jlechem · · Score: 4, Informative

    I can feel my Karma burning here but in my office we run into this issue with a lot of MS products. SQL Server 2000 ........ Upgrading is not an option since the DoD just approved SQL Server 2005 for classified use. Apparently 2008 is the bees knees but come on 8 years to get your shit straight? And we've also run into massive problems getting asp.net applications to scale. We've found MS best practices while certainly easy are not very efficient behind the scenes and cause massive slowdown when used on a large scale. And after using their ajax toolkit I wouldn't touch that thing with a ten foot pole.

    Now I might sounds like I'm bashing .net a bit. But .net products do have their time and place. I code in C# almost everyday. But for anything Enterprise I would think twice about it.

    --
    Hold up, wait a minute, let me put some pimpin in it
  9. Re:amazing what doesnt get asked by Abcd1234 · · Score: 4, Insightful

    Well there is fragmentation produces as they introduce YET another language.

    So? That's a problem for Windows developers. Why should a Java programmer care? In the realms where Java is popular, C# has had basically no influence. So MS has, at worst, fragmented the Windows development ecosystem... big deal. :)

    You currently cannot say C# replaces C++ on Windows platform as using any DirectX components for example is nightmare through C#.

    ...

    More on the major downside of writing .NET applications is that you cannot guarantee that the stuff I work on my Vista workstation works on my co-workers XP workstation.

    But none of this has anything to do with fragmentation to begin with. You're getting off-point. And that's ignoring the fact that, once again, this is a problem for MS... the rest of the programming world doesn't care one whit how hard DirectX is to integrate with C#.

    Can it be a success when it cannot be used to produce major parts of their own operating system.

    Last I checked Java wasn't being used to write operating system components, yet no one claims it's a failure. Now, that's not to say C# and .NET are unbridled successes, but that's a pretty crappy metric for making the call.

  10. Re:Ads... by Anon+E.+Muss · · Score: 4, Informative

    Just click the "Print this story" button and you can read the whole thing on one page, without ads. This trick works on many sites.

    --
    The key sequence to access my Slashdot bookmark in Firefox is Alt-B-S. I don't believe this is a coincidence.
  11. Re:oh goody. by i+kan+reed · · Score: 4, Informative

    Your reply indicates you have new clue what C# is. C# is not a direct descendant in design from c++. C# is a child language of Java more than anything. You could probably convert 90% of C# code directly to java with a simple find/replace regex for keywords.

    C# is also not non-standard. The C# language has a published standard, which, while not open source, is not the same as non-standard. A number of other implementations exist for both the virtual machine level(e.g. mono, boo) and the compiler/ide level(e.g. sharpdevelop)
    C# more tolerable than java in terms of ease of design and naturalness of the language, and good for a similar scope of projects.

    I like the ability to release windows binaries without having a headache about version compatibility, the irrationality of the underlying windows API, or memory leaks in trivial portions of code.

    C# is not the best language for all sorts of problems, but when it comes to banging out a GUI .exe for windows users to use quickly, I don't think there are better choices.

  12. Re:Oh, well, that explains everything... by FlyingGuy · · Score: 5, Interesting

    Dude, you seriously need to stop sipping the red bull or whatever your drinking...

    Turbo-Pascal was a god send to the programming world. It was an entry point for 10's of thousands of programmers and I am one of them. It was the 1st IDE, write your code then compile and run in one key press! No one had that, not a single company. Yes it was limited to 64K of code and data and only made an image ( com file ), but what you could do in that 64K was beyond anything else at the time.

    Say what you will about Anders going over to the dark side, I mean until then he was my personal hero, but there is no denying the mans brilliance. Turbo Pascal for Windows? Again, no company had anything remotely close to that and he was the architect. Delphi... Again, no one had anything close to that, and he was the architect.

    The OOP model that came out of Borland made C++ look exactly like the joke it was and is today. Their model was infinitely superior, and again, he was the architect.

    The demise of Borland was mostly about Microsoft's malevolence and monopolistic ways. If MS had wanted actual competition, more then likely we would would all be programming in Borland languages to this day, instead of the shit that comes from MS which most of Anders has a hand in, but is corrupted by the MS Marketing machine making technology decisions.

    --
    Hey KID! Yeah you, get the fuck off my lawn!
  13. Re:oh goody. by Tiger · · Score: 5, Interesting

    Having spent the last seven years using Qt and C++, and the last two comparing that with C#, I'd agree with the original poster: C# is a better choice for fast productivity to a GUI .exe for Windows.

    Throw other platforms into the mix and my decision changes, but that's not what he stated, is it?

    Qt lost a lot of points in my book for just how much time was destroyed in porting our code to Qt4. Two years later, and we're still asking for bugfixes.

  14. Re:oh goody. by tjwhaynes · · Score: 4, Insightful

    The implementation is about the same in both languages, but using it is much nicer and cleaner in C# than in Java.

    That really is a matter of opinion. In Java, it's pretty clear that you are requesting or modifying a property of the object. In C#, you are using assignment to represent that mechanism so you might be accessing a public member variable directly or calling a method to achieve that end. To me, the Java method is more explicit and therefore less prone to error.

    Cheers,
    Toby Haynes

    --
    Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
  15. Re:oh goody. by maestroX · · Score: 4, Insightful
    I like neither way.

    Java: Properties are private variables/methods exposed through a public method. Seems unnatural and tedious when accessing a guarded variable, e.g.

    Line.GetWidth(); Line.SetWidth(10);

    Two different calls for accessing a single property.

    C#: Properties are private variables/methods exposed through a public variable. May be cause for surprise e.g. when

    Line.Width++

    increases width and executes statements outside the scope of width increase.

    For exposing a (guarded) private variable I prefer the C# way, but it's too easy to mix data with flow.

    I don't feel a property can be accessed as either a variable or a method, because it isn't and adds to confusion.