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."

499 comments

  1. Ads... by Dannybolabo · · Score: 3, Informative

    Why must they make me trawl through 8 pages of ads?

    --
    Give a man a fire and he's warm for a day. Light a man on fire and he's warm for the rest of his life. - Terry Pratchett
    1. 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.
    2. Re:Ads... by Sinbios · · Score: 1

      Because they're a business. Guess what businesses do? They make money. How do you think they manage to make money when their services are provided for free?

      --
      Anyone can "stand up for what they believe", but it takes a very brave individual to change what they believe. - Loundry
    3. Re:Ads... by Anonymous Coward · · Score: 0

      lrn2 adblock

    4. Re:Ads... by isorox · · Score: 1

      Why must they make me trawl through 8 pages of ads?

      To make money?

    5. Re:Ads... by miajade20 · · Score: 1

      yes this is really bad. http://quickpersonalloans.cn/

    6. Re:Ads... by nx6310 · · Score: 1

      no it doesn't

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

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

    1. Re:The Printer Friendly version ... by Anonymous Coward · · Score: 2, Informative

      Your link did not redirect me to a printer friendly version.

    2. Re:The Printer Friendly version ... by moderatorrater · · Score: 0

      While you are a true hero for posting a link to the printer friendly version, it didn't actually send me there. Perhaps this link will do it, although if they're smart they'll make you go to the article before displaying the print version.

    3. Re:The Printer Friendly version ... by Anonymous Coward · · Score: 0

      That's the exact same link.

    4. Re:The Printer Friendly version ... by Anonymous Coward · · Score: 0

      Dirty beggar.

    5. Re:The Printer Friendly version ... by FutureDomain · · Score: 1

      That's because they must use Javascript or cookies to prevent linking to the printer friendly version.

      Just click on the link labeled "Print this story" to get the printer friendly version.

      --
      Hydraulic pizza oven!! Guided missile! Herring sandwich! Styrofoam! Jayne Mansfield! Aluminum siding! Borax!
    6. Re:The Printer Friendly version ... by Anonymous Coward · · Score: 0

      lol. Holy crap yeah, That's in the AU they still got them meters on their intarwebs.

  3. oh goody. by strack · · Score: 0, Flamebait

    All the latest news on Microsoft's slightly altered and nonstandard and proprietary version of the c++ language. Oh goody.

    1. Re:oh goody. by ByOhTek · · Score: 3, Informative

      It's closer to Java than C++. Much closer. Would you call Java a 'slightly altered and nonstandard and proprietary' version of C++?

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    2. Re:oh goody. by Anonymous Coward · · Score: 0

      So garbage-collection and a general high-level language is the same as a old and difficult low-level language.
      Oh Goody, I must have missed the irony :(

    3. Re:oh goody. by strack · · Score: 0

      the essential difference is that java is open sourced.

    4. Re:oh goody. by GeckoX · · Score: 2, Informative

      Either a troll, flamebait, or spoken in ignorance.
      Languages evolve, and anyone that knows c++ and c# knows that what you have stated is patently untrue. Not interested? Then don't bother, but until you do your research, please refrain from throwing in your apparent 2 cents worth...it's not really worth that much.

      As has been stated already, the CLR is in fact a standard, and c# has more in common with Java than with c++. It's an evolutionary language, and it is very popular for a lot of very good reasons. But you'd know that if you cared to bother looking into it.

      --
      No Comment.
    5. Re:oh goody. by 5865 · · Score: 1

      Perhaps you meant C++/CLI?

    6. Re:oh goody. by Poltras · · Score: 1

      Check out the Programming paradigm page on wikipedia which has a good load of information on what differentiate a language from another. Java is absolutely not the same as C++.

      The fact that not much people actually writes C++ (as opposed to, say, C with class) has something to do with the common belief that Java is alike, but look further than mere structural construct and you'll see why they are worlds apart.

    7. Re:oh goody. by ByOhTek · · Score: 1, Insightful

      Yeah, but people hated C# and love Java about like they do now before Java was open sourced.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    8. Re:oh goody. by binarylarry · · Score: 1, Flamebait

      You have too much respect for C++?

      LOL

      --
      Mod me down, my New Earth Global Warmingist friends!
    9. Re:oh goody. by strack · · Score: 2, Informative

      i think you mean "standard encumbered with patents, and not covering the whole libary" and while it is true that it is a interpreted language like java, its syntax is a lot like c++. Although, your probably right. I really shouldn't compare it to c++. thats a insult to c++. Its more like visual basic.

    10. 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.

    11. Re:oh goody. by binarylarry · · Score: 2, Informative

      Not only that, but the "standard" is of the type anyone with cash can buy.

      The .NET "standards" weren't submitted to peer review, in a fashipn like IEEE. Instead, they were handed in a manilla folder to a cashier with a whole lot of money.

      Voila, parts of .NET become a "standard".

      Basically getting .NET "standardized" was fancy marketing campaign.

      --
      Mod me down, my New Earth Global Warmingist friends!
    12. Re:oh goody. by binarylarry · · Score: 1

      For our reference, please post an example of how C# is "more tolerable" than Java.

      Please provide the reference with code samples for both languages.

      --
      Mod me down, my New Earth Global Warmingist friends!
    13. Re:oh goody. by morgan_greywolf · · Score: 3, Informative
    14. Re:oh goody. by JasterBobaMereel · · Score: 3, Informative

      "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."

      Delphi - Simpler, Faster, less overhead, By the same author!

      --
      Puteulanus fenestra mortis
    15. Re:oh goody. by Anonymous Coward · · Score: 1, Insightful

      Java hasn't been an interpreted language in a long, long time.

    16. Re:oh goody. by odourpreventer · · Score: 1

      Its more like visual basic.

      Considering that C# and Visual Basic have the same byte-code (nowadays), it's a fair assumption.

    17. Re:oh goody. by Goaway · · Score: 2, Insightful

      Yeah, it only took twelve years for that to happen. I guess C# just won't get around to it for another five years.

    18. Re:oh goody. by bigstrat2003 · · Score: 1, Insightful

      Oh goody. Another mindless Microsoft-basher who wants to try to whore up some free karma by saying untrue things like "slightly altered" and "nonstandard" about C#. Oh goody.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    19. Re:oh goody. by EvilRyry · · Score: 1

      C# and VB.NET both have compilers that compile them down to the same byte-code you mean. VB and VB.NET don't share much in common besides some syntax similarities, its more a ploy to lure in VB programmers than anything.

    20. Re:oh goody. by Duffy13 · · Score: 2, Interesting

      I'm sorry, gotta disagree right here. I absolutely hate Delphi, it feels like retarded VB compared to my work with C#. Granted this is opinion, but I know I'm not alone in this train of thought.

      --
      "Now you know, and knowing is half the battle!"
    21. Re:oh goody. by digitig · · Score: 1

      Delphi - Simpler, Faster, less overhead, By the same author!

      But nowhere near as well integrated into .NET. I've used both, and although I usually advocate the B&D of the Pascal family of languages, I'm with the GP -- C# is a really easy language for knocking out a medium-sized, non-mission-critical GUI-intensive program for the .NET platform; much easier than Delphi. On the other hand, Delphi is better at preventing certain classes of bugs, C++ is better for multiplatform programming, Ada is better for preventing bugs and multiplatform programming but has a steep learning curve, and so on. No language is ideal for all purposes, but C# is a fine language for some purposes.

      --
      Quidnam Latine loqui modo coepi?
    22. Re:oh goody. by MiharuSenaKanaka · · Score: 1

      I think this sums up how I feel about C#.

    23. Re:oh goody. by bigstrat2003 · · Score: 3, Informative

      Simple, encapsulation of private variable. Java:

      class foo {
        private int dontTouch;
       
        public void setDontTouch(int newVal) {
      //Determine if we want to allow newVal
          dontTouch = newVal;
        }
       
        public int getDontTouch() { return dontTouch; }
      }
       
      class bar {
       
        public void someMethod() {
          foo ourFoo = new foo();
          ourFoo.setDontTouch(5);
          ourFoo.getDontTouch();
        }
       
      }

      C#:

      class foo {
        private int _dontTouch;
        public int dontTouch {
          get {
            return _dontTouch;
          }
          set {
      //Decide if we want to allow the value
            _dontTouch = value;
          }
        }
      }
       
      class bar {
        public void someMethod() {
          foo ourFoo = new foo();
          ourFoo.dontTouch = 5;
          int asdf = ourFoo.dontTouch;
        }
      }

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

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    24. Re:oh goody. by thelexx · · Score: 1

      Because that's not an MS product. OSS Java implementations also existed before Java itself was opened.

      --
      "Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
    25. Re:oh goody. by cerberusss · · Score: 2, Informative

      when it comes to banging out a GUI .exe for windows users to use quickly, I don't think there are better choices.

      I've got a Q and a t who think otherwise. Product page: http://trolltech.com/products/qt/ Wikipedia: http://en.wikipedia.org/wiki/Qt_(toolkit)

      --
      8 of 13 people found this answer helpful. Did you?
    26. Re:oh goody. by Anonymous Coward · · Score: 0

      Insightful? How is "LOL" insightful?

    27. 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.

    28. Re:oh goody. by morgan_greywolf · · Score: 2, Informative

      (First off, Java was ALWAYS open source, just not OSI-compliant)

      But the difference is that Microsoft has committed developer resources to work with the Mono team at Novell. Sun never committed any resources to work on GCJ.

    29. Re:oh goody. by Hal_Porter · · Score: 1

      You have too much respect for C++?

      LOL

      C++ vtables are the foundation of COM, and COM is the foundation of OLE.

      How can you not respect OLE? ;-)

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    30. 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.
    31. Re:oh goody. by LWATCDR · · Score: 1

      Well Java was also multi platform as well. Mono makes C# closer to muli-platform than it was.
      Java has much better resources on line than C# under mono as well.
      Java has two really good IDEs available NetBeans and Eclipse.org.

      I have yet to get into Mono all that much. I have tried and I have found the online documentation really lacking compared to what I can get for Java.
      I am going to write an app under Mono just so I can learn it and so I can give it a fair shake.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    32. Re:oh goody. by nlawalker · · Score: 1

      That really is a matter of opinion.

      That about wraps it up.

    33. Re:oh goody. by FishWithAHammer · · Score: 0, Flamebait

      wait...what? C++ is better for multiplatform programming?

      How?

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    34. Re:oh goody. by Anonymous Coward · · Score: 0

      Lambda methods, implicitly typed local variables, REAL generics...

    35. Re:oh goody. by thelexx · · Score: 1

      You would do well in government.

      --
      "Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
    36. Re:oh goody. by KevinKnSC · · Score: 1

      And, for that matter, C# has never (at least since its public release) been an interpreted language.

    37. Re:oh goody. by eggoeater · · Score: 2, Informative

      In Java, it's pretty clear that you are requesting or modifying a property of the object.

      Really? The paranthesis after the method name inclines me to think of it as a function, and I prefer using assignments vs a function call; it's easier to read and debug.
      eg. blah.Prop = someFunct(); is easier to read than blah.setProp(someFunct());

      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.

      Which is kind of the point... a property is exposed as if it were a public member. I don't /care/ if I'm assigning to a property or a public member.

      To me, the Java method is more explicit and therefore less prone to error.

      What? Can you give me an example of how it is less prone to error?

      I program in Java too, but I prefer c#. I see c# as an improved version of java. The designers of c# learned from their mistakes.

    38. Re:oh goody. by KevinKnSC · · Score: 1

      Um, C# is an ISO standard (ISO/IEC 23270) just like C++ (ISO/IEC 14882).

    39. Re:oh goody. by eggoeater · · Score: 1

      I don't know Delphi but if you think it's a retarded VB, then that's pretty bad because I've always though of VB as a retarded version of Pascal, which I dropped cold after learning c++.
      VB has that feel that it was designed for 6 year-olds learning to program.

    40. Re:oh goody. by denoir · · Score: 2, Insightful
      Actually, with the latest incarnation of C#, it gets much more compact. I don't know how to get indentation to work within the ecode tag but you should still get the idea:

      class foo
      {
      public int dontTouch { get; set; }
      }

      class bar
      {
      public void someMethod()
      {
      foo ourFoo = new foo() { dontTouch = 5 };
      int asdf = ourFoo.dontTouch;
      }
      }

    41. Re:oh goody. by asg1 · · Score: 2, Informative

      Hogwash. Anyone who has spent any time whatsoever with C# in Visual Studio knows the difference between a property and a public variable when they try to assign it. And if you have intellisense off, then the only people who will get confused are those who don't follow any sort of naming conventions. And in that case, they are likely to get confused no matter what language they are in.

    42. Re:oh goody. by Anonymous Coward · · Score: 1, Insightful

      ISO's meaningfulness is diminishing.

    43. Re:oh goody. by binarylarry · · Score: 1

      Did you not read the post?

      --
      Mod me down, my New Earth Global Warmingist friends!
    44. Re:oh goody. by binarylarry · · Score: 0

      Honestly, I was hoping someone would post something less trivial.

      This doesn't really count.

      --
      Mod me down, my New Earth Global Warmingist friends!
    45. Re:oh goody. by bigstrat2003 · · Score: 1

      Why not? It certainly meets your criteria, why shift the goalposts? Moreover, the more basic something is, the more important it is that the functionality be better, because you will be using it all the time. You're not only shifting the goalposts, but your logic for doing so is completely backwards.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    46. Re:oh goody. by binarylarry · · Score: 1

      Because you're talking about things that take less than a second to do in either case.

      This isn't an optimization any real developer would really sing the praises of.

      Whats next? ".NET has one less letter in its name. It makes it so much easier to remember and more tolerable than Java."

      --
      Mod me down, my New Earth Global Warmingist friends!
    47. Re:oh goody. by whimmel · · Score: 1

      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.

      Once upon a time there was Java and it was good. Then Microsoft embraced it and extended it and provided the msjava vm in Windows.

      But Sun didn't like that and sued. Especially since it wasn't exactly compatible. Microsoft lost, packed up, and went home.

      Like two weeks later Microsoft announced "C#".

      I would imagine that MS just did a Find/Replace to change their java implementation to C#.

      --
      Does the name Pavlov ring a bell?
    48. Re:oh goody. by bigstrat2003 · · Score: 1

      Making code cleaner and more readable is not in the least trivial. Any "real developer" will sing the praises of something that makes it easier for him to read another guy's code all day long.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    49. Re:oh goody. by Anonymous Coward · · Score: 0

      c# 3:

      class Test
      {
              public int A { get; set; } //even:
              public int B { get; private set; }
      }

    50. Re:oh goody. by digitig · · Score: 2, Insightful

      Better than C#? Well, how many platforms can you name that C++ is not available for? If you're willing to go back to an early version of C++ it compiled via C (may be possible even for current versions, I've never bothered looking into it), so at least some version of C++ would run on anything that runs C (and had enough resources).

      --
      Quidnam Latine loqui modo coepi?
    51. Re:oh goody. by FishWithAHammer · · Score: 1

      The language may be, but doing most anything remotely interesting is going to create platform-specific issues. Such is the curse of a bare-metal language.

      Most modern architectures, though, have some level of Mono (or, for that matter, Java) support; I don't see why you'd go to C++ unless you're writing highly fugly elevator controller code or something (and even then, it'd be smarter to go to C).

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    52. Re:oh goody. by molarmass192 · · Score: 2, Insightful

      "C# ... is very popular ..."

      By "very popular" I take it you mean less popular than Perl or Python, but more popular than Delphi.
      http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    53. Re:oh goody. by DragonWriter · · Score: 1

      But nowhere near as well integrated into .NET.

      Which has bugger-all to do with the standard held-up, which is quick to bang-out a usable GUI for Windows users. .Net is not necessary (and, arguably, is often not desirable) for that.

      I've used both, and although I usually advocate the B&D of the Pascal family of languages, I'm with the GP -- C# is a really easy language for knocking out a medium-sized, non-mission-critical GUI-intensive program for the .NET platform

      The platform referred to was Windows, not .Net: "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.". Windows and .Net are two different things, though recent versions of Windows include .Net.

    54. Re:oh goody. by ByOhTek · · Score: 1

      True, I hate developing mono in anything other than Visual Studio - there isn't yet a good alternative IDE that I found.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    55. Re:oh goody. by Professional+Slacker · · Score: 1

      With recent releases of GTK#, C# is a fine language for knocking out a quick and dirty UI in linux as well. I haven't tried the mono implementation of winforms yet (I'm not sure it's even useful currently), but GTK# is a lot nicer to work with than Swing.

      C# is a damn good language, the only problem is that it's a Microsoft technology, and people are rightly a bit weary of it.

      --
      A Free Market requires informed intelligent consumers, such people are rare, we're in trouble.
    56. Re:oh goody. by LWATCDR · · Score: 1

      And I have no desire to use Visual Studio. I like developing mainly under and for Linux for my own projects.
      The program I am planning on doing in Mono is going to run only under Linux anyway.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    57. Re:oh goody. by BlackSnake112 · · Score: 1

      True, I hate developing mono in anything other than Visual Studio - there isn't yet a good alternative IDE that I found.

      I hate to develop mono anywhere. Getting sick sucks.

      If microsoft really wanted C# to be used in more places, they make or allow someone else to make a cross platform IDE for it.

    58. Re:oh goody. by dedazo · · Score: 1

      Well, that's certainly one way to spin it.

      --
      Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
    59. Re:oh goody. by digitig · · Score: 1

      The platform referred to was Windows, not .Net

      True, so I'll go with "C# and .NET is a really easy combination for knocking out a medium-sized, non-mission-critical GUI-intensive program".

      --
      Quidnam Latine loqui modo coepi?
    60. Re:oh goody. by Anonymous Coward · · Score: 0

      Getters and setters are ridiculous concepts; they have no semantic meaning beyond the variable name you're getting/setting. You shouldn't be sanitizing/range-restricting/etc input in "setters", you should be sanitizing it when you *produce* it, so it has less time in your code to cause a bug. Or, if you're trying to cause an action by setting, *describe the action*. The C-sharp version will just silently perform it with no function call in the code to indicate what might happen.

      Let getters and setters go. Please. You're no longer in CompSci class, it won't hurt your grade.

    61. Re:oh goody. by Anonymous Coward · · Score: 0

      The latest version of the C# compiler has a really nifty new feature. Properties can be automatically generated if all you do is want to have a private field backing it.

      Your example can further be simplified by:

      class foo {
          public int dontTouch { get; set; }
      }

      It's pretty nifty and reduces the code complexity for simple properties.

    62. Re:oh goody. by nog_lorp · · Score: 1

      That is actually negative from the object oriented point of view. As someone using the object, you have no right to information regarding the implementation - the less you know the better. In C# you might be doing who knows what at an implementation level, but the interface is the same no matter what. And it is infinitely more convenient.

      I've never actually used C# but until finding out about this feature I'd been wondering why it hadn't been implemented in Java. I hear great things about C# but it isn't worth .NET...

    63. Re:oh goody. by ByOhTek · · Score: 1

      > If microsoft really wanted C# to be used in more places, they make or allow someone else to make a cross platform IDE for it.

      Microsoft DOES allow others to make cross platform IDEs. I'm pretty sure I've found one or two. They just happened to suck. Googling "C# IDE" brought up a few results immediately.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    64. Re:oh goody. by mrcleaver · · Score: 1

      Don't forget IntelliJ on the IDE department.

    65. Re:oh goody. by mweather · · Score: 1

      Closer? Wasn't it originally J++?

    66. Re:oh goody. by mweather · · Score: 1

      Far be it from me to tell you how to spend your time, but you're not really giving Mono a fair shake if you're not attempting to write cross-platform code. And if it's not cross-platform, there's really no reason to use Mono, except maybe to attract Windows developers. But don't let that stop you. I wrote a webapp that uses model-level validation using Django. Pointless, but enlightening.

    67. Re:oh goody. by LWATCDR · · Score: 1

      Well Mono is supposed to be a good development environment under Linux. If you are not going to use it under Linux then why not just use .net?
      This one app is going to run on a Linux box. This is a donated box and I don't have a spare Windows license and I am not buying one. So I figure that it would be a good time to learn C# and Mono and help somebody out all at once.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    68. Re:oh goody. by Anonymous Coward · · Score: 0

      Yes, and you can also do things like "protected set;" or "private set" (as the equivalent of a Java private field with only a setter method).

    69. Re:oh goody. by Anonymous Coward · · Score: 0

      A much simpler yet exactly same behavior C# code is

      class foo
      {
      public int dontTouch {
      get; set; }
      }

    70. Re:oh goody. by The+Mayor · · Score: 3, Interesting

      Yeah, that was what I thought before I started using C#. I am a 10+ year veteran of the Java world, and have spent the last year or so on a large C# project. C# has much better syntax in every way that it deviates from Java. Properties are quite clear, since VS does a nice job. Under the covers, there is *no* difference between a property with an implicit getter/setter (i.e. you didn't provide one, so you access the variable directly)--the bytecode creates a synthetic get_ and set_ method, allowing things like AOP to work even if no explicit getter/setter is provided.

      The Java method results in much more verbose boilerplate code. This also causes many developers to do more cut-and-paste, another source of potential error. The Java method makes tech like AOP much harder, as there is no synthetic method call surrounding access to public member variables. The Java method is, in short, not object oriented, as it does not properly abstract away property access, so Java tacked on this stupid getXXX/setXXX naming convention in the JavaBean standard.

      There are many reasons why Java is a superior platform than .Net/C# (maturity of 3rd party libraries, the open source community, the quality of design in the provided libraries). But the language itself is not one of them. I cannot think of a single area where Java bests C# in terms of the language itself. C# really is the next generation of Java, and has learned from Java's mistakes.

      --
      --Be human.
    71. Re:oh goody. by mweather · · Score: 1

      Well Mono is supposed to be a good development environment under Linux.

      I've heard differently. I suppose once they work the bugs out and play catchup it'll be OK, but right now it's kind of buggy and outdated.

      If you are not going to use it under Linux then why not just use .net?

      Why use either mono or .net if you don't need the code to run on Windows and Linux? I'm not saying don't do it. It's just kind of pointless given the current state of Mono.

    72. Re:oh goody. by aztracker1 · · Score: 1

      Well, the majority of C# use isn't specific to Mono.. the bits that are, generally are centered around writing GTK# applications. If you are doing web application development, or windows forms development, many people tend to just stick to Visual Studio, and test on Mono. A large number of applications will run on Mono with minimal, or no modifications.

      I've written a couple of applications for Mono use, that worked out well. Support for various database implementations are generally good to great as well.

      As to documentation for Mono lacking compared to Java, I couldn't disagree more. Look for anything related to doing something in .Net (not Mono specifically), and it's generally far easier to get a grasp of than working with Java.

      --
      Michael J. Ryan - tracker1.info
    73. Re:oh goody. by aztracker1 · · Score: 1

      MonoDevelop is pretty decent. Though so are Eclipse and other IDEs... However VS is leaps and bounds ahead of any other IDE I've used, in many ways. Don't let that discourage you. Mono/.Net have a lot of advantages over Java. P/Invoke is far easier to use than JNI. The GTK# interfaces are nicer (IMHO) than the Java GUI options out there, and ASP.Net is far nicer than most alternatives.

      I've been playing around with using the DLR stuff lately, which is pretty nice. The ability to use it cross-platform is nicer still, there are still a few areas where I need to work on things, but overall it's got some nice features.

      --
      Michael J. Ryan - tracker1.info
    74. Re:oh goody. by danieltdp · · Score: 1

      My take on this is: Java is more clear about what it is doing, C# has a nicer sintax, the code looks better, but a reader can be deceived by it.

      I would go with Java, its better to have ugly code that is easy to understand

      --
      -- dnl
    75. Re:oh goody. by aztracker1 · · Score: 2, Interesting

      If you have to use legacy libraries (dll/so), then you will definitely like .Net over Java. That's my single biggest gripe with Java, is the pain that is JNI. I also find that development in VS is far easier than using any of the Java IDEs I've tried. Not to mention that ASP.Net, Dynamic Data, and MVC frameworks are easier than anything in the Java side of things to get up, running, and debugging at runtime. Java is more portable, that is a given. But I still prefer C#/.Net.

      --
      Michael J. Ryan - tracker1.info
    76. Re:oh goody. by salgiza · · Score: 2, Informative

      It hides from the developer that you are actually doing something that could be costly.

      For example, that innocent "item.price" could actually be calling an stored procedure that makes all kind of querys to get the right price for the current session customer.

      In Java, item.getPrice() would be a hint to this fact. In C#, someone could abuse the property, in different instances of the same item, unaware that he should cache the value to avoid performance hit.

      Of course, there are ways to prevent this, but are mostly related to procedures the developers must follow.

      Actually, while I really like C#, LINQ, and Visual Studio on the whole (I'm quite happy developing with it), I'm starting to understand why Java had some things that forced the programmer to be explicit about what his/her code did. Not forcing you to catch or throw exceptions means, for example, that methods that couldn't throw an exception (according to it's definition) actually throw them. And you didn't put a try catch because it was a simple call and there were no methods that could throw...

    77. Re:oh goody. by Anonymous Coward · · Score: 0

      No one gives a fuck about what you feel about C#.

    78. Re:oh goody. by haystor · · Score: 1

      The typical implementation/use is interpreted. Unless you consider JVM to be your operating system.

      --
      t
    79. Re:oh goody. by haystor · · Score: 2, Funny

      If your goal is ugly code, then Java is the clear winner.

      I should really use monstrously long words and about 38 more lines to explain this, but Java is not my preferred writing style.

      --
      t
    80. Re:oh goody. by danieltdp · · Score: 1

      If your goal is large code, Java is good too! Very verbose language :-)

      --
      -- dnl
    81. Re:oh goody. by LWATCDR · · Score: 1

      To learn Mono for one thing.
      I could develop it in Java and still only target this one PC running Linux.
      Or I could use QT and C++
      The choice of language is for learning how to write cross platform c#.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    82. 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.

    83. Re:oh goody. by nog_lorp · · Score: 2, Informative

      I had a bad experience with .NET 2, where in order to open an old project in Visual Studio it insisted on converting to .NET compatibility apis. The rather simple program then ran insanely slow, so slow that the interface was sluggish and it was useless for its purpose (automation).

    84. Re:oh goody. by m4g02 · · Score: 1

      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.

      Wrong, C# is much more powerful since you can use unmanaged code in your managed apps with the unsafe keyword. I made a real-time computer vision application in C# for a robot and before that I tried Java, let me tell you this, C# was 20x faster because I could directly access the memory of the image acquired by the webcam.

      --
      Sigs are for morons... Wait a minute...
    85. Re:oh goody. by Anonymous Coward · · Score: 0

      In the newest version (C# 3.0, which comes with .Net 3.5 and VS2008), you don't even have to do all that foolishness in your get/set property or even declare a private variable for it to use. This will suffice:

      public int dontTouch { get; set; }

      Unless, of course, you want to fill in that "Decide if we want to allow the value" comment with something useful. In which case you'll have to actually implement the property normally.

    86. Re:oh goody. by Anonymous Coward · · Score: 0

      Of course the above Java is also valid C# so it really is a matter of preference.

    87. Re:oh goody. by Jugalator · · Score: 1

      I'd call any language more popular than Javascript "very popular", yes.

      --
      Beware: In C++, your friends can see your privates!
    88. Re:oh goody. by Jugalator · · Score: 1

      Nah, because Qt isn't free if you want to develop commercial code (see Visual Studio Express or even Microsoft's free standalone compilers for an alternative IDE), and besides, tries to hack C++ for its signals and slots. I like Qt a lot as an open source cross-platform development library, but if you want to develop 1) commercial software 2) pretty much just for Windows (like the guy you're replying to), I don't think it's that competitive. It's a C++ library too, so it doesn't do RAD quite as well.

      --
      Beware: In C++, your friends can see your privates!
    89. Re:oh goody. by gbjbaanb · · Score: 1

      C# v3 is not a standard.

      From TFA:

      Do you expect C#3.0 to become an ECMA and ISO standard, as previous versions have?

      We're certainly open to that. There's no ongoing work in the standards committee at the moment, but it's really more a question of whether the community of industry partners out there would like to continue with that process. I should also say that the standards for C# explicitly do permit implementers to have extensions to the language, so though C# 3.0 is not standardized, it is certainly a complete implementation of the C# 2.0 standard. It is 100% backwards compatible, as all versions are.

    90. Re:oh goody. by Anonymous Coward · · Score: 0

      It's worth mentioning that your Java code would work fine in C# as well. You don't _have_ to use the property feature to assign values to member variables, it's just a nice convenience. You're free to create your own setDontTouch and getDontTouch the traditional way if you prefer.

    91. Re:oh goody. by Anonymous Coward · · Score: 0

      even cleaner if it's written like this in C#...

      C#:

      class foo
      {
          public int DontTouch { get; set; }
      }

      class bar {
          public void someMethod() {
              foo ourFoo = new foo() {DontTouch = 5}
              int asdf = ourFoo.dontTouch;
          }
      }

    92. Re:oh goody. by bigstrat2003 · · Score: 1

      And? If C# 1.0 and 2.0 were standardized, I damn well imagine 3.0 will be. It would be rather odd to imagine otherwise.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    93. Re:oh goody. by Anonymous Coward · · Score: 0

      Are you kidding me?

      The fact java forces you to use public methods to set private "properties" of a class, seems more error prone. I like that you can do this in C#:

      SomeClass
      {
          public int SomeProperty { get; set; }
          public string SomeOtherProperty { get; private set; }
      }

      public void SomeMethod
      {
          SomeClass myClass { SomeProperty = 5 };
          int x = myClass.SomeProperty;
      }

    94. Re:oh goody. by Dun+Malg · · Score: 2, Informative

      It hides from the developer that you are actually doing something that could be costly.... there are ways to prevent this, but are mostly related to procedures the developers must follow.

      You mean like reading the documentation and/or the source code of the class you're using? If you don't know how or where the object is getting its data, then you're just as in the dark whether it's data passed via a C# get/set or a Java method. Granted the Java method approach is a "clue" that it's not just a member int being set, but I'm not sure that's the ideal way to "get a clue"...

      I understand what you're getting at with all this, but at some point familiarity with the road is going to serve you better than guardrails all over the place.

      --
      If a job's not worth doing, it's not worth doing right.
    95. Re:oh goody. by Dun+Malg · · Score: 1

      My take on this is: Java is more clear about what it is doing, C# has a nicer sintax, the code looks better, but a reader can be deceived by it.

      I would go with Java, its better to have ugly code that is easy to understand

      That being the case, you might want to check out assembly language. It's a LOT uglier, but you will never be deceived by assembly.

      Seriously, there's so little difference between C# and Java that arguing the a gnat's hair's less abstraction is any easier to understand merely illustrates that you're conditioned to looking at Java code. Look at C# code for 6 months and you won't even notice anymore.

      --
      If a job's not worth doing, it's not worth doing right.
    96. Re:oh goody. by zoips · · Score: 1

      This is only half-true, but really only because of an incorrect belief more than anything. The JVM initially interprets opcodes until that section of code is picked for JIT, after which the executed code is native code, not interpreted opcodes.

      This, however, is different than how the .NET platform works, where all MSIL (on a function level) must be JIT'd prior to execution, so in .NET there is never a point where MSIL is interpreted.

    97. Re:oh goody. by emjay88 · · Score: 1

      Just as long as you don't try to do any database access from your app. Mono's implementation of the ADO.NET libraries are broken :S

      --
      1178161 is prime...
    98. Re:oh goody. by Brain+Damaged+Bogan · · Score: 1

      C# is also not non-standard.
      double non-positives don't not make baby jesus not non-cry.
      you've not been unwarned.

      --
      -- Sex is the antonym of pringles. Once you pop it's time to stop.
    99. Re:oh goody. by Forbman · · Score: 1

      but so do F# and managed C++. And so does Boo and IronPython. So what exactly is your point?

    100. Re:oh goody. by Anonymous Coward · · Score: 0

      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.

      In a well made program, there are not any public members. Additionally, it does not matter because its just part of the object's public interface. It does not matter if the class implements it as a public member (bad) or as a property (good).

    101. Re:oh goody. by Weedlekin · · Score: 1

      "I see c# as an improved version of java. The designers of c# learned from their mistakes."

      The designers of C# actually learned from Delphi, which had properties in 1995:

      type Foo = class
      private
          FdontTouch : integer;

          function GetDontTouch : integer;
          procedure SetDontTouch(const NewVal : integer);

      public
          property DontTouch : integer read GetDontTouch write SetDontTouch;

      end;

      Hjelsberg wrote the original Turbo Pascal compiler, and was chief architect of the first three Delphi versions before leaving Borland to work at MS, so there's a lot of Delphi in C#.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    102. Re:oh goody. by shutdown+-p+now · · Score: 1
      Actually, the really interesting part is when it comes to annotations/attributes. In Java, when you are trying to decorate a property, you can really only slap the annotation onto one of its accessor methods. So far the convention is that annotations on the gettor apply to the property as a whole; but this means that there's no way to annotate just the getter:

      @Id // this applies to the entire property
      @Pure // this should only apply to the gettor
      @NotNull // this should apply to return value
      Foo getFoo() { ... }

      void setFoo(@NotNull Foo newValue) { ... }

      In C#, the syntax allows to disambiguate it all easily. You can slap an attribute on the property as a whole, on either of the accessor methods, and you can further disambiguate explicitly where needed.

      [Id]
      int Foo
      {
      [Pure]
      [return: NotNull]
      get { ... }

      [param: NotNull]
      set { ... }
      }

      Granted, it's not something major; but it's nice to have the concept represented in the language syntax cleanly and orthogonally.

    103. Re:oh goody. by rastos1 · · Score: 1

      The paranthesis after the method name inclines me to think of it as a function

      That is just you. When I learned OOP, the term was "sending a message". As in "ourFoo.setDonTouch(5) means: send a message to object ourFoo that it should set something to value 5".

    104. Re:oh goody. by LoztInSpace · · Score: 1

      For example, that innocent "item.price" could actually be calling an stored procedure that makes all kind of querys to get the right price for the current session customer. In Java, item.getPrice() would be a hint to this fact

      Complete bollocks as well you know. The first thing any Java programmer does with any variable needed in the outside world is to write getXXX() and setXXX() precisely so they can change the behaviour of get & set operations. Don't get me started on EJB, at least the old style anyway.
      I agree with you on exceptions BTW.

    105. Re:oh goody. by danieltdp · · Score: 1

      That's not true. The fact that 2 things are ungly and one of them is deceaving doesn't make the other one deceiving too. Java is ugly and expressive. One is not the cause of the other.

      As far as C# goes, I do like the language. But IMO an equals means I am making an attribution. I dont't expect it to be "rejected" by a checker function. Note that I am not saying Java is better than C#. I am just telling you my opinion about this specific topic regarding both languages

      --
      -- dnl
    106. Re:oh goody. by An+Elephant · · Score: 1

      Amen. Exactly what I've been saying for a couple of years. There are only two things I would like to add:

      1) You missed an important factor in Java's favor: The availability of far superior IDEs. I have left the Java world, but I can tell you that VS2008 is still inferior to Intellij Idea 3.5 (of 2002).

      2) You probably mean (what the grandpa forgot) auto-implemented properties:

      int XXX { get; set; }

      which makes the equivalent Java look like an exercise in boilerplating.

    107. Re:oh goody. by aztracker1 · · Score: 1

      Depending on the size, it may have been better to create a new solution/project, and just bring in the class files from the original... yeah the conversion/upgrade projects sucked... but that is a VS issue, not specifically a .Net or C# language thing.

      --
      Michael J. Ryan - tracker1.info
    108. Re:oh goody. by nawcom · · Score: 1

      To learn Mono for one thing. I could develop it in Java and still only target this one PC running Linux. Or I could use QT and C++ The choice of language is for learning how to write cross platform c#.

      It's Qt damn you! Qt! Hehe. I just find it interesting that people refuse to accept correct spelling and pronunciation of proper names. Qt is pronounced "Cute", it's not "cue tee" - the same way Id in Id Software is a word, not "Eye Dee". I'm sure you can tell who's written in Qt4 before ;)

    109. Re:oh goody. by gbjbaanb · · Score: 1

      only to your mind, not to that of a business executive who feels the need to protect his company's intellectual property and maximise further corporate innovation through aggressively pre-empting market share downward factors to further enhance shareholder value. (and his bonus).

      what you or I think should happen is nothing when it comes to making money.

    110. Re:oh goody. by cerberusss · · Score: 1

      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.

      Just curious -- why did you port your code?

      --
      8 of 13 people found this answer helpful. Did you?
    111. Re:oh goody. by JasterBobaMereel · · Score: 1

      Why the overhead of .NET ?

      Delphi on Win32 is faster simpler cleaner smaller

      --
      Puteulanus fenestra mortis
    112. Re:oh goody. by digitig · · Score: 1

      If you mean the final code, probably. If you mean the development cycle then I have not found it so, because under Delphi I was constantly having to reinvent wheels that are provided by .NET.

      --
      Quidnam Latine loqui modo coepi?
    113. Re:oh goody. by JasterBobaMereel · · Score: 1

      Compare like with like ....

      Like C and C++ the Delphi language does very little - the libraries are where the action is ...

      C# is the same it's just that so much is in .NET as standard ...and I can use all these from Delphi

      C# is not .NET it's just without .NET it is useless ...

      There are plenty of libraries for Delphi the same as there were plenty of VB controls/libraries that did all the real work

      --
      Puteulanus fenestra mortis
    114. Re:oh goody. by digitig · · Score: 1

      As far as I am concerned, it's about getting the job done. I get Windows GUI jobs done much more quickly and effectively when using C# than when using Delphi. The particular set of factors that goes into that (access to libraries, language characteristics, personal programming style, whatever) is interesting, but when I have a job to do I'll pick up the toolset that is most effective for that job.

      --
      Quidnam Latine loqui modo coepi?
    115. Re:oh goody. by digitig · · Score: 1

      The language may be, but doing most anything remotely interesting is going to create platform-specific issues. Such is the curse of a bare-metal language.

      If you have the language, at least you can isolate the platform specific code and only have to rewrite that. If you don't have the language, you're stuffed.

      --
      Quidnam Latine loqui modo coepi?
    116. Re:oh goody. by inline_four · · Score: 1

      That statement is simply untrue. Java's libraries have had their source available, but not the JVM. Now we have Java source redistributable under a true OSS license and most importantly the JVM source is as well.

      --
      Alexey
    117. Re:oh goody. by Tiger · · Score: 1

      The laundry list of limitations in Qt3 driving the move have long since faded from my memory (though I seem to recall Vista support being a fairly large motivator.) But apart from that, ongoing commercial development requires active support, and Trolltech's support services have long since dropped support for Qt3.

      Porting from Qt2 to 3 was a breeze, compared to the move to Qt4. The automated porting tools didn't do much for us, and the Q3Support layer-- while it gave us a good stepping stone-- eventually had to be ripped out almost entirely because we kept hitting all sorts of esoteric bugs that couldn't be solved without porting the code all the way.

      To be fair... I like Qt a lot, and it's still my first choice for multiplatform GUI development. (Before many of the platforms sank into obscurity our app suite built from a common C++/STL/Qt codebase onto Windows, Linux, Solaris, HPUX, AIX, Irix and OSF, which still impresses the crap out of me. :) )

    118. Re:oh goody. by FishWithAHammer · · Score: 1

      Or you can write it in a language that abstracts that stuff away. There are not many platforms these days where you're a) writing interesting code, and b) not able to use the JVM or Mono's CLR. (Yes, I realize both are written in C++, but that's the point--they do it so you don't have to. There's a place for C++, sure, but it's not that big and it's not in portability.)

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    119. Re:oh goody. by man_of_mr_e · · Score: 1

      The thing is, in C# it's your choice whether you want to use a property or function. In Java, there is no choice. If you prefer to make things more clear using a function, you're perfectly capable of doing that in C#.

      The whole point of properties is that you can control access with them. Suppose i have some code that accesses a public member, and i later want to make sure that you can never assign a null to it. You either have to change all references to the member in your code, or in C#, just turn it into a property and put your check there. No other changes needed.

      All language features have the potential for abuse. It's a good programmer that makes sure you don't abuse them.

  4. 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 mbadolato · · Score: 2, Informative

      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

      Er, haven't studied much music, eh? Personally I don't recall anyone ever saying anything to the effect of "This time,let's try Bach's Bouree, but change the key to E octothorpe". E# is pronounced "E sharp" ;-)

    2. Re:Foctothorpe FTW by Chemisor · · Score: 1

      Hey, it's a good name! It's about time we stopped focusing on creating glistening new tools and started thinking about actually using them for something. But, of course, being an average Slashdot reader, you probably don't know how.

    3. 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.

    4. Re:Foctothorpe FTW by larry+bagina · · Score: 1

      A musical sharp is unicode code point $266F. That shift-3 (#) character has unicode (and ASCII) code point $23.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    5. Re:Foctothorpe FTW by Alzheimers · · Score: 1

      Having no musical background but a long history of using a telephone, I read that as "C-Pound" and "F-Pound"

      It was my impression that they were named in a fit of rage by noted scientist Bruce Banner.

    6. Re:Foctothorpe FTW by fireboy1919 · · Score: 1, Informative

      Pretty sure that music precedes unicode, dude, and they write the sharp sign using anything that looks like a tiny smooshed tick-tack-toe board.

      At any case, you're both wrong. "E#" is pronounced "eff" - there is a half step between E and F, and the "#" sign denotes "do this note, except take it up half a step."

      E#==F.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    7. Re:Foctothorpe FTW by Anonymous Coward · · Score: 1, Funny

      I prefer C-tic-tac-toe, but that's just me.

    8. Re:Foctothorpe FTW by kosh · · Score: 1, Funny

      octothorpe!?!?

      Damn!! and I always thought C# was the "hundred pound" programming language. Doh!

      >.

    9. Re:Foctothorpe FTW by binarylarry · · Score: 2, Funny

      I can't wait until the Mono project completes their clone.

      And I can use GNU/Cocotothorpe.

      --
      Mod me down, my New Earth Global Warmingist friends!
    10. Re:Foctothorpe FTW by TheLink · · Score: 2, Informative

      I haven't really checked but it might depend on which "temperament" you're using.

      See: http://en.wikipedia.org/wiki/Musical_temperament

      This might have E sharp not being F:
      http://en.wikipedia.org/wiki/19_tone_equal_temperament

      --
    11. Re:Foctothorpe FTW by lysergic.acid · · Score: 1

      no, no, no--it's called the C-hash programming language. everyone knows that.

    12. Re:Foctothorpe FTW by Waffle+Iron · · Score: 1, Insightful

      Pretty sure that music precedes unicode, dude, and they write the sharp sign using anything that looks like a tiny smooshed tick-tack-toe board.

      If a sharp sign is the same as an octothorpe because it has a similar (but not identical) shape, then a flat sign must be the same as a lower-case "b". As it happens, however, neither pair of symbols have ever been interchangeable.

    13. Re:Foctothorpe FTW by Anonymous Coward · · Score: 0

      Excuse me. E# is pronounced "F"

    14. Re:Foctothorpe FTW by morgan_greywolf · · Score: 1

      Good thing there isn't a MM#. That would just be wayyyy tooo expensive.

    15. Re:Foctothorpe FTW by Saint+Stephen · · Score: 1

      It's kind of like printers quotes versus straight quotes. When they print it, they use the sharp sign, and formatting things convert straight quotes to printers quotes.

    16. Re:Foctothorpe FTW by digitig · · Score: 1

      Except, of course, the "correct" name for the '#' character is only "octothorpe" in the world of spoofs. It's a fairly recent invented name ("recent" in terms of orthography, if not computing). http://www.worldwidewords.org/weirdwords/ww-oct1.htm

      --
      Quidnam Latine loqui modo coepi?
    17. Re:Foctothorpe FTW by TapeCutter · · Score: 1

      "E#==F."

      IIRC, well before C-sharp there was some sort of scripting language that was developed over a series of articles in Dr. Dobbs (~15-20yrs ago), it was called D-flat.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    18. Re:Foctothorpe FTW by Van+Cutter+Romney · · Score: 1

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

      fock the thorpe. get it? fock the thorpe.

      eh he he he he....

      --
      Help a man when he is in trouble and he will remember you when he is in trouble again.
    19. 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.
    20. Re:Foctothorpe FTW by harperska · · Score: 1

      Actually, it doesn't even matter what temperament you are using. E# != F even if E# and F have the exact same frequency. It all depends on what key you are playing in. In a particular key, you have one note of each 'letter'. So in the key of C# major, you use the notes C#, D#, E#, F#, G#, A#, and B#, not C#, D#, F, F#, G#, A# C. This is so that the key signature can be written at the beginning of the piece rather than writing accidentals in front of every instance of F depending on whether it is supposed to be the 3rd or 4th note of the scale.

    21. Re:Foctothorpe FTW by ArAgost · · Score: 1

      Somebody already noted that this is not true in all temperaments. But even in the context of equal temperament, homophones may be noted may require different notations to be properly identified, esp. when talking about harmony. Quick example: the major third of C# is, indeed, E# - and it is of course the same note as an F.

    22. Re:Foctothorpe FTW by soliptic · · Score: 1

      Even if you're in equal temperament, it's not entirely safe to say E#==F.

      It would be equal as in "the pitch of the two notes is the same", but not conceptually interchangable. For example, the third note of A-flat minor is a C-flat, not a B natural.

    23. Re:Foctothorpe FTW by Anonymous Coward · · Score: 0

      "£" is a pound, and so is "lb". "#" is an octothorpe, or if you're feeling lowbrow, a "hash", as in "#! = 'hash bang'"

    24. Re:Foctothorpe FTW by VinB · · Score: 1

      I went to school with a guy who could tell if a piece was played in a 'flat' key or a 'sharp' key ie. in Db as opposed to C#. We would do this with improvisation and 99% of the time he would be correct.

    25. Re:Foctothorpe FTW by Ed+Avis · · Score: 0, Redundant

      How do you know that the C-sharp programming language does not use U+266F (MUSIC SHARP SIGN) rather than U+0023 (NUMBER SIGN)?

      --
      -- Ed Avis ed@membled.com
    26. Re:Foctothorpe FTW by LordOfTheNoobs · · Score: 1

      It is true that common shorthand characters given silly names are rarely interchangeable with genuine musical notation, although sometimes said musical notation is most easily represented by just using a similar shorthand character that is already found on the keyboard. If you had to write an example of a flat sign given only a keyboard, a lower-cased b would probably suit your purpose just fine.

      --
      They're there affecting their effect.
    27. Re:Foctothorpe FTW by jguevin · · Score: 1

      Actually, E# and F are enharmonically equivalent, but they're not the "same". In the key of C# major, E# is in the key (as the third), while F is not (it's the flatted fourth).

    28. Re:Foctothorpe FTW by tobiasly · · Score: 2, Interesting

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

      If I had mod points I'd give 'em to ya but instead I'll just reply that you're correct. :) In fact the C# standard (don't have the link handy) specifically states that although sharp is the "correct" glyph to use, the octothorpe is an "accepted" alternative due to the lack of the former on keyboards.

    29. Re:Foctothorpe FTW by gnud · · Score: 1

      "E#" is pronounced "eff" - there is a half step between E and F, and the "#" sign denotes "do this note, except take it up half a step."

      Sorry to dissapoint you. The chord C# major constists of the notes C#, E# and G#. This will sound identical on a piano to the notes C#, F and G#, but in music theory, there is a difference.
      This is called enharmonicity.

    30. Re:Foctothorpe FTW by funkatron · · Score: 1

      Strange, I've always called the # symbol a hash but I have no idea where I got it from.

      --
      "Welcome to our world. We are the wasted youth. And we are the future too." Yes, I know these are stupid lyrics.
    31. Re:Foctothorpe FTW by Ed+Avis · · Score: 2, Insightful

      On a piano keyboard to play E# you press the same key as for F, so it gives the same sound. But I *think* this is not true for every instrument. Some instruments can produce different sounds for E# and F. Then there are the considerations of music theory and notation which others have pointed out.

      --
      -- Ed Avis ed@membled.com
    32. Re:Foctothorpe FTW by danwesnor · · Score: 3, Funny

      It never ceases to amazes me what Slashdotters will argue about. Somebody makes a reasonably funny smart-ass remark and the next 5,000 posts are dedicated to arguing about whether his premise is correct.

    33. Re:Foctothorpe FTW by hummassa · · Score: 1

      Actually, the "#" (hex 23) symbol is the octothorpe, the sharp symbol is "" (slashed by slash..., hex 266f)...
      to see them in your terminal, you just do
      perl -C127 -le 'print chr hex $_ for @ARGV' 23 266f

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    34. Re:Foctothorpe FTW by funkatron · · Score: 1

      Pound?? WTF? Pound looks like this: £.

      --
      "Welcome to our world. We are the wasted youth. And we are the future too." Yes, I know these are stupid lyrics.
    35. Re:Foctothorpe FTW by dkleinsc · · Score: 1

      The best part of the naming is that with their new language F# we end up with the beginning of the following musical sequence:
      C#, F#, B

      But B is a totally obsolete predecessor of C, so that means that C# and F# must be even more inadequate!

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    36. Re:Foctothorpe FTW by Anonymous Coward · · Score: 0

      Okay Mr smarty pants, please tell us how you pronounce "F" distinct from "E#" if "E#" is pronounced "eff" ???

    37. Re:Foctothorpe FTW by fprintf · · Score: 1

      So will I get the really good pron results if I put 'gang!' in my search?

      --
      This post brought to you by your friendly neighborhood MBA.
    38. Re:Foctothorpe FTW by fireboy1919 · · Score: 1

      While this is true, you'd generally have to be a masochist to want to use a key signature with 7 sharps when you have the option of minimizing your accidentals by putting it in Db (five flats).

      Then it'd be Db, F, Ab. Notice that I said the people pronounce E# as "eff." It's almost universally how everybody thinks about it. I didn't say that it wasn't correct to call it E#.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    39. Re:Foctothorpe FTW by Anonymous Coward · · Score: 0

      In equal tempered tuning the sounds are enharmonic though..

    40. Re:Foctothorpe FTW by Anonymous Coward · · Score: 0

      Dude, for an apparent musicologist, you've succumbed to the equal tempered tyranny of the keyboard. In just intonation, there IS a difference between E# and F (just like between, say, Gsharp and Aflat).

      No doubt a reflection of the dead white european male hegemony over the educational system.

    41. Re:Foctothorpe FTW by fm6 · · Score: 1

      Lame of me to pick a nit with such a cute joke. But:

      Widely used? Yes. "Correct". Not at all. Check your dictionary. In the U.S. it's "pound sign," "number sign," or "sharp sign", depending on the context. In the U.K. it's "hash mark".

      Here's the American Heritage dictionary entry for octothorpe:

      Alteration (influenced by OCTO-) of earlier octalthorpe, the pound key, probably humorous blend of octal, an eight-point pin used in electronic connections (from the eight points of the symbol) and the name of James Edward OGLETHORPE.

      Hmm, I've never heard of an octal connector. There actually is such a thing but it's obscure enough to make me dubious. And Oglethorpe is even more obscure (unless you're from Georgia). Here's a web page that casts doubt on the AH version.

      The Oxford English Dictionary, which relies on actual research, has this:

      Forms: 19- octothorp, 19- octothorpe. [Origin uncertain; perhaps < OCTO- comb. form + the surname Thorpe (compare THORP n.: see note below).
          The term was reportedly coined in the early 1960s by Don Macpherson, an employee of Bell Laboratories:
          1996 Telecom Heritage No. 28. 53 His thought process was as follows: There are eight points on the symbol so octo should be part of the name. We need a few more letters or another syllable to make a noun... (Don Macpherson..was active in a group that was trying to get Jim Thorpe's Olympic medals returned from Sweden). The phrase thorpe would be unique.
          For an alternative explanation see quot. 1996; in a variant of this explanation, the word is explained as arising from the use of the symbol in cartography to represent a village.
          For a different explanation from a former employee of Bell Laboratories, arguing that the word is a completely arbitrary formation (and that it originally had the form octatherp) see D. A. Kerr 'The ASCII Character Octatherp' in http://doug.kerr.home.att.net/ (2006).]

              The hash sign (#), as it appears on the buttons of touch-tone telephones and some other keypads.

      1974 Telephony 25 Feb. 16/1 A few months ago, a story traveled through the Bell System that the familiar symbol '#'..at long last had a name: 'octothorp'. 1975 Vancouver Province 15 Nov. (Canad. Mag.) 32 Punch an octothorpe when you reach your desk every morning, and the accounting department automatically registers you in. 1987 Radio & Electronics World Feb. 47/1 As well as the numbers 1 to 9 and 0, you also have buttons marked with a star and square (also known as hash or octothorp). 1996 New Scientist 30 Mar. 54/3 The term 'octothorp(e)' (which MWCD10 dates 1971) was invented for '#', allegedly by Bell Labs engineers when touch-tone telephones were introduced in the mid-1960s. 'Octo-' means eight, and 'thorp' was an Old English word for village: apparently the sign was playfully construed as eight fields surrounding a village.

    42. Re:Foctothorpe FTW by whimmel · · Score: 1

      a "hash", as in "#! = 'hash bang'"

      I learned to pronounce that "shebang"

      --
      Does the name Pavlov ring a bell?
    43. Re:Foctothorpe FTW by street+struttin' · · Score: 1

      Apparently, I have an octothorpe button on my keyboard but not a sharp button. Go figure.

    44. Re:Foctothorpe FTW by poot_rootbeer · · Score: 1

      The octothorpe and the musical sharp sign are not the same character, despite having similar and sometimes indistinguishable glyphs -- the former is U+0023 in Unicode, the latter U+266F.

      For ease of typing and representation, octothorpe is often substituted in place of sharp; similarly, lowercase 'b' is often substituted in place of the musical flat sign, and two hyphens are substituted for a proper em-dash.

    45. Re:Foctothorpe FTW by risk+one · · Score: 3, Funny

      Somebody should trademark C octothorpe, and sue Microsoft for every place they've used the wrong character.

    46. Re:Foctothorpe FTW by SnEptUne · · Score: 1

      Not true. E# and F have the same frequency. Even though some instruments like violin can play E# or F in different way (and thus sound differently), it doesn't mean E# and F is different in tone, just that the player played it differently.

    47. Re:Foctothorpe FTW by gnud · · Score: 1

      While _this_ is true ( :P ), a c# major can occur in other pitches too. Most obviously in F# (as a dominant, or V if you're into that whole thing) - 6 sharps, but also as a DD (cue bra jokes) or II+ in H major - 5 sharps.

      You're right in that I wouldnt pronounce it E sharp. I can pretty much guarantee you that I would pronounce it E-is, which is what the german notation tradition calls E sharp =) -- the E pronounced like the first e in the english "here"

      More common than actually jotting down a E# will be jotting down a Cb, in Ab minor for example -- Cb is enharmonic to B.

      (Sidenote -- i've never performed a piece with a E# in it myself, but I have performed pieces with both Cb and F## - in german tradition called fisis (enharmonic do G) (the double-sharp sign has no ascii paralell, and I'm not gonna hunt down the unicode point, since most fonts probably won't display it anyway).

    48. Re:Foctothorpe FTW by Anonymous Coward · · Score: 0

      I think you'll find that depending on the key of the music piece, the notation E# is correct and F is not.

    49. Re:Foctothorpe FTW by Alzheimers · · Score: 1

      I hear they weigh about the same though.

    50. Re:Foctothorpe FTW by befletch · · Score: 1

      Even in the link you post, the notion that octothorpe is a spoof is disputed. I've linked in a previous discussion to a different source who suggests that it is a cartographical term, although they don't back it up other than to say they've seen maps using the octothorpe symbol.

      Have you ever stared at a word until you start to doubt that you've spelled it right? I'm starting to get a similar feeling about the octothorpe now. I mean, does it even exist on my keyboard?

      --
      If you say, "now I'll be modded down because of X", I'll happily oblige.
    51. Re:Foctothorpe FTW by stuntpope · · Score: 1

      News for nerds. Stuff that matters - to nerds.

    52. Re:Foctothorpe FTW by cjh79 · · Score: 3, Informative

      Actually, E# is pronounced "eeh sharp", and is a distinct note (and in many cases pitch) from F.

      For example, in an F# major scale, E# is the leading tone and should sound slightly higher than F natural (which would be the lowered tonic) would, due to the tendency to want to resolve to the F#. Of course if you are playing on an even tempered instrument such as a piano, the pitch will always be identical to that of F natural, but pianos are always out of tune for this reason.

      I fully expect to be modded down for this embarrassing display of band geekery.

    53. Re:Foctothorpe FTW by turgid · · Score: 2, Interesting

      What a lucky little so-and-so. But could he still distinguish flat and sharp keys if all of the instruments were in equal temperament?

      That would be an interesting experiment to perform.

    54. Re:Foctothorpe FTW by digitig · · Score: 1

      Even in the link you post, the notion that octothorpe is a spoof is disputed. I've linked in a previous discussion to a different source who suggests that it is a cartographical term, although they don't back it up other than to say they've seen maps using the octothorpe symbol.

      The Complete Oxford English Dictionary (http://dictionary.oed.com/, but it's subscription only) says the coimage was "apparently" playful, and lists the earliest usage as being in 1974. If your friends have seen an earlier use of the term, the OED would like to hear of it. On the other hand, if they've just seen the symbol (as you say) then it tells us nothing about what the ancient cartographers called it. Probably "One of those itsy tic-tac-toe doohickeys".

      --
      Quidnam Latine loqui modo coepi?
    55. Re:Foctothorpe FTW by harry666t · · Score: 1

      > E#==F

      As far as I know (I'm a self-taught guitarist), this is absolute bullshit.

      Well, a few months ago I wouldn't argue with you. But my girlfriend (who has been playing violin for eight years) has recently enlightened me, that for any fretless instrument, the sharps do matter very, very, very much. In a guitar or piano world, yes, E sharp would be the same tone as F. But not on a violin, where the player sometimes has to move their finger by a "width of one hair" (that's how she describes it) to get a darker or brighter tone. Even C major and A minor are whole different worlds, although these seem to contain the same sounds (the minor scales should sound brighter).

      It has turned my world (and my view of how the music works) upside down after that one afternoon when she explained all the differences and nuances to me. Honestly, I still doubt I got all of that correctly. But I'm 100% sure that it really, really, really matters to a professional musician whether it's E# or F, or C## or D. I sometimes can't exactly tell if my guitar is tuned perfectly, while my girlfriend can tell between 440 and 442 hz (another sign of approaching apocalypse: A has been redefined to 442 hz for some obscure reasons that have to do with new pianos and that only a few professional musicians understand). I summed up our conversation, "wow, srsly anybody, even dumb, can play guitar, compared to what it gets to play a violin". She agreed with me.

    56. Re:Foctothorpe FTW by Tubal-Cain · · Score: 1

      You forgot the link

    57. Re:Foctothorpe FTW by rp · · Score: 1

      E#==F.

      Only with equal temperament, of course.

    58. Re:Foctothorpe FTW by omuls+are+tasty · · Score: 1

      Almost true. E# and F are what's called "enharmonic notes". In equal temperament (which is what the Western music has been using for the past few centuries), these two sound the same but their "function" is different. For example, in a C# chord the major third note would more properly be spelled as an E# rather than an F.

    59. Re:Foctothorpe FTW by Anonymous Coward · · Score: 0

      I've always just called it C hash, which seems an appropriate name somehow...

    60. Re:Foctothorpe FTW by Anonymous Coward · · Score: 0

      Your word is nothing but a secondary usage.

      http://en.wikipedia.org/wiki/Number_sign

  5. 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 SquareVoid · · Score: 2, Insightful

      What impact did Java have on computing sciences? Well take that list and multiply it by several generations ahead of Java and that is what you have. And it isn't so much C# as it is the .NET framework which has done this. C# is just syntax that allows you to use the framework. C# just happens to have a very close syntax structure to the C-family of languages. If you are a glutton for punishment go to VB.NET and code in that horrendous language structure, but still be able to do all the things you could in C#.

    2. Re:a bunch of questions by Anonymous Coward · · Score: 1, Insightful

      As always it's an issue of tools for the job. When working on Windows, C# allows a serious programmer to develop quality applications quickly and avoid a lot of the boilerplate code that C++ will require you to do.

      It has the complex expressiveness that programmers need yet the nice integration with the OS that allows the developer to concentrate on functionality and not technical integration.

    3. 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.
    4. 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.

    5. 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).
    6. 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.
    7. Re:a bunch of questions by BradleyUffner · · Score: 2, Informative

      Actually, that isn't right either. Microsoft.VisualBasic isn't the compatability layer, it's the VB runtime. It just provides a few extra function that *look* like VB6, some of them don't even behave the same. The actual computability layer is in Microsoft.VisualBasic.Compatability, It's the library that is responsible for doing the weird stuff like giving you collections that start at 1 instead of 0 and other strange stuff. Microsoft.VisualBasic follows all the standards that any other .NET library uses.

    8. Re:a bunch of questions by wtbname · · Score: 2, 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.

      So true. I use both C# and VB .Net. It blows my mind how the ignants out there blast VB.Net, while happily code away in C#, a language that at best is slightly syntactically dissimilar. Actually I guess it doesn't. Ignorance is ignorance after all.

    9. Re:a bunch of questions by Aladrin · · Score: 1

      How does that make any sense? Almost all programming languages work on Windows, so it comes right back to technical merit. There's nothing stopping a 'better' language from being more popular on Windows.

      If anything, the fact that C# didn't run on Linux and Mac for a long time (and still isn't perfect) should have reduced its usage, lending credit to the hypothesis that C#'s rise is based on its technical merit.

      Personally, I think C# is a pretty nice language to write simple programs on. If you need raw speed, or hardware interface, then it's not a good choice... But just about all desktop applications need neither. It's much easier to deal with than C++ or VB6 and combines the best of both of them. I definitely find it more responsive than Java, and it has a much better IDE. (Even the open source #develop is better than anything I've found for Java.)

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    10. Re:a bunch of questions by aproposofwhat · · Score: 1

      ...Perl ... below that you get into the obscure languages.

      Show me something more obscure than Perl!

      --
      One swallow does not a fellatrix make
    11. Re:a bunch of questions by johnlcallaway · · Score: 3, Interesting

      They can take one company off the list of users. We are rewriting all the C# (and C++) code in Java so we can gain portability. Already, our operations staff is drooling over the prospect of being able to deploy virtual Linux servers that need far less memory instead of Windoze if they want to.

      The first project converted 12 C++ programs to one, far more flexible Java program (that runs 12 times). The nightly run is now 30 minutes instead of two hours and hasn't had an abort in two months. In fact, the operations manager was very nervous for awhile because he wasn't getting paged on the weekends and kept checking the system.

      We could have done the same thing in C++ or C#, but they offered no discernible benefit and are more complicated to use for what we are doing.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    12. Re:a bunch of questions by Anonymous Coward · · Score: 0

      What impact did Java have on computing sciences?

      In the common terminology of the field, I believe the appropriate phrase is "considered harmful".

    13. Re:a bunch of questions by SquareVoid · · Score: 1

      Language structure implying the syntax. I am well aware that they both are the same underneath (with a few small annoying exceptions). I was merely implying that the syntax sucks. It is the most unfriendly syntax I have come across.

    14. Re:a bunch of questions by SQLGuru · · Score: 1

      Actually, if you are looking for the best way to do things in .NET, sometimes you have to use *ALL* of the languages. For example, the Zip libraries are only available in J# (that's Microsoft's Java wanna-be) [has to do with J++ --> J# being an implementation of Java before Sun sued them). There are things that are tons easier to accomplish in the VB.Net language than the C# language. And I guess there will be arguments for Cobol.Net, Python.Net, Fortran.Net, etc. So, while it may be punishment, sometimes, it's the best choice for the task.

      Layne

    15. Re:a bunch of questions by Wildclaw · · Score: 1

      Of course, the tiobe index is rather limited and inaccurate. Notice for example that ".NET programming" gets more than double the number of hits as "C# programming" on google. But because .NET isn't a language but a framework, it doesn't appear at all in the numbers.

    16. Re:a bunch of questions by Anonymous Coward · · Score: 0

      Since i only post anonymously in this sewer the last 5 years, I'm glad someone pointed out what should have been obvious to everyone from the get-go. C# is *not* one of the most widely used languages unless you define "widely used" as "any language used by at least one person."

    17. Re:a bunch of questions by tkdtaylor · · Score: 1

      Actually there's more to the VB namespace, it includes file system calls that aren't available anywhere else (that I could find). So if you want to open up a folder and iterate through the files in it you include the VisualBasic namespace. Again I could be wrong, I've just never found it anywhere else which didn't make much sense to me.

    18. Re:a bunch of questions by Anonymous Coward · · Score: 0

      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.

      Do you have a reference to back up this assertin? I ask, not because I doubt you, but because I'd like to take a look at the list.

      Thanks

    19. Re:a bunch of questions by Saint+Gerbil · · Score: 1

      That sounds like very old stats, source ?

    20. Re:a bunch of questions by Bright+Apollo · · Score: 2, Insightful

      Actually, COBOL is more widely used than any of those. Not sexy, but it literally pays the bills.

      -BA

    21. Re:a bunch of questions by genghisjahn · · Score: 1

      And VB.Net allows another set of "serious" developers to do the same thing.

      --
      Sorry about the mess.
    22. Re:a bunch of questions by stimuli_ii · · Score: 1
      From their site:

      The popular search engines Google, MSN, Yahoo!, and YouTube are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written

      The key here is: "TIOBE index is not about the best programming language or the language in which most lines of code have been written". - Just saying....

    23. Re:a bunch of questions by Liquidrage · · Score: 1

      Not to mention that while PHP is very commonly used on the web, there are not a lot of PHP jobs.

      At computerjobs.com C# returns 8x the number of jobs that PHP returns. Even though many C# jobs are actually hidden in the .NET keywords.

      As much as many people like Python or Ruby or PHP, the jobs just aren't there compared to Java or .NET.

    24. Re:a bunch of questions by Anonymous Coward · · Score: 0

      That's not true. In fact VB.Net is far more powerful than C# because it allows some dynamic programming. You can just declare a variable X and call X.foo(), while in C# you must give X a type *and* that type has to have a foo() method.

      The latest version (VB9) also has XML literals, which are great if you do lots of XML programming.

      dom

    25. Re:a bunch of questions by godefroi · · Score: 1

      *ahem* python

      (yes, yes, I know, mod down)

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    26. Re:a bunch of questions by girasquid · · Score: 1

      He said obscure, not obtuse. :)

    27. Re:a bunch of questions by godefroi · · Score: 2, Informative

      Where have you been? System.IO.Compression has been available since, what, the 2.0 framework? Even before that, you always had SharpZipLib.

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    28. Re:a bunch of questions by Nursie · · Score: 1

      It's not old stats - http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

      Bang up to date in fact. The thing is that the world of production quality programming is very different to either the slashdot community (always excited over the next Big Thing(TM)) or university (very forward looking, though giving a grounding in current tech).

      The world of industry is slow. It's also a hell of a lot bigger than just microsoft windows.

    29. Re:a bunch of questions by GeckoX · · Score: 1

      Er, turn on option strict and option explicit and try that. By default, there are a lot of things in the VB.Net environment to make it behave a bit more like VB6, but that doesn't make it a good idea to do so.

      Trust me, VB.Net is not more dynamic than C#, and it is not far more powerful.

      Granted, XML Literals are a cool feature in VB9. For a while there, C# and VB.Net were converging, and pretty much came perfectly in line with each other feature wise. Now they're starting to diverge again. C# appears to be trying to remain clean and concise, while VB.Net appears to be trying to extend the language a fair bit more.

      At the moment, things don't differ much. It's mostly user preference. But the tools are diverging, and in the future, just remember to pick the right tool for the job...not just your favorite tool just because.

      --
      No Comment.
    30. Re:a bunch of questions by Nursie · · Score: 1

      It may once have been, but it's sitting down at number 20 on the sources I've seen.

    31. Re:a bunch of questions by TheDreadSlashdotterD · · Score: 1
      --
      I have nothing to say.
    32. Re:a bunch of questions by Evildonald · · Score: 1

      I so COMPLETELY agree. What a waste of bytes!

    33. Re:a bunch of questions by Anonymous Coward · · Score: 0

      I love my curlies!

    34. Re:a bunch of questions by TheDreadSlashdotterD · · Score: 3, Insightful

      I mean, wow, good for you, picking the right tool for the job. And 12 C++ programs into one Java program? Isn't that an indictment of C++ rather than C#?

      --
      I have nothing to say.
    35. Re:a bunch of questions by FishWithAHammer · · Score: 1

      The reverse irks me more. I hear a lot of VB.NET programmers whining that they don't get the same pretty features are C# programmers (no doubt to keep the VB.NET learning curve lower) and that C# should be tossed because "VB was here first." Head, desk, head, desk...

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    36. Re:a bunch of questions by funkatron · · Score: 1

      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.

      So they've kept the worst part of the language. I remember in school the number of times I had to look at the help files just to close a loop. For..next makes some sense but While...Wend? What does wend even mean?

      --
      "Welcome to our world. We are the wasted youth. And we are the future too." Yes, I know these are stupid lyrics.
    37. Re:a bunch of questions by mshannon78660 · · Score: 1
      To proceed or to go along one's way

      Pretty sure that's not where it came from, but it actually does make some sense!

    38. Re:a bunch of questions by Anonymous Coward · · Score: 0

      Guess what; Vb6 is not Vb5 is not Vb4 etc.. Vb.Net is Vb7. That's pretty clear to anyone. VB.Net still retains the spirit of VB, so it's a bit more then just a cosmetic syntax issue.

    39. Re:a bunch of questions by eggoeater · · Score: 1

      I use both C# and VB .Net. It blows my mind how the ignants out there blast VB.Net, while happily code away in C#, a language that at best is slightly syntactically dissimilar.

      The difference is readability (and thus debugging). Reading VB gives me a headache. All those Begin..Ends..ugh. I can read c# much faster because it's easier to format. eg. I put open braces on the same line as an if or while statement. Putting a Begin on the same line as a statement looks weird; putting it on the next line takes up space. Don't get me started on assigning/handling events with VB. ugh.

      Syntactically they are very far apart. (I believe you meant slightly semantically dissimilar.)

    40. Re:a bunch of questions by gbjbaanb · · Score: 1

      no, he meant similar. Where VB uses the word Begin , C# uses the character {. That's practically no difference whatsoever.

      There is a point for MS making VB only, in that they wouldn't have to create 2 of everything - code samples, documentation, etc. But then I guess C# devs wouldn't feel so superior....

    41. Re:a bunch of questions by afabbro · · Score: 1

      There's nothing stopping a 'better' language from being more popular on Windows.

      Technically true, but practically, everyone wants to use the language endorsed by the O/S vendor, which is the .NET family, chiefly C#. With Microsoft products, you're reasonably sure (jokes, jokes) that the development tools will stay in step with the O/S...with a different vendor, you're relying on them to stay in step, which is no trivial matter.

      --
      Advice: on VPS providers
    42. Re:a bunch of questions by InsertCleverUsername · · Score: 1

      So true. I use both C# and VB .Net. It blows my mind how the ignants out there blast VB.Net, while happily code away in C#, a language that at best is slightly syntactically dissimilar. Actually I guess it doesn't. Ignorance is ignorance after all.

      Actually, there's some divergence there. VB.net has quite a few nice syntactic shortcuts in the "My" namespace, optional type safety, XML literals, and other features to speed up development. However, I think for those coming from a VB6 or VBscript background there's the danger of staying mired in the old ways rather than really internalizing OOP. I made the switch to C# several years back and have to say, it really made me approach problems in an OO way that I hadn't done before (with the exception of a couple awkward semesters of Java in undergrad). No offense to VB fans out there, but I think using C# has actually made me a better developer. It's elegant, succinct and, now that I'm used to it, seems to work better with Visual Studio, IMHO.

      --
      Ask me about my sig!
    43. Re:a bunch of questions by gbjbaanb · · Score: 1

      isn't that an indictment of their legacy development practices. If I look at all the projects I have here, I reckon I could consolidate a dozen into 1 very easily. I might, one day, get to merge the 3 almost-identical extract applications into just 1.

      Now his app runs in 2 hours, if he'd refactored all that C++ code into a single C++ app, it'd probably run in 10 minutes :-)

    44. Re:a bunch of questions by ozphx · · Score: 1

      VB.Net is missing some of the newer features of C#, and theres no bloody ternery operator.

      --
      3laws: No freebies, no backsies, GTFO.
    45. Re:a bunch of questions by ozphx · · Score: 1

      Good call. Or you could... say... use Mono.

      Presumably your codebase is well designed so any Windows specific services you use can be swapped out. There ya go, now you only have to rewrite a small percentage!

      Or you could go with trolling and rewriting the entire damn thing...

      --
      3laws: No freebies, no backsies, GTFO.
    46. Re:a bunch of questions by Anonymous Coward · · Score: 0

      "The ratings are based on the number of skilled engineers world-wide, courses and third party vendors." I've professionally used Java, C, C++, Perl, C#, Delphi, Ruby, Lisp, Pascal, and some others not in their top 20, so I assume I'm counted in the "number of skilled engineers" for each of those languages. My first choice is C# or C++ when appropriate, and certainly Ruby over Perl. I'm not sure that this list actually reflects anything useful. I have much more experience in Perl than Ruby, but I prefer Ruby over Perl and believe it is a much more powerful language. But this list doesn't reflect that.

    47. Re:a bunch of questions by eggoeater · · Score: 1

      Where VB uses the word Begin , C# uses the character {. That's practically no difference whatsoever.

      That's a poor example. There are other ways (like events I mentioned above, and static methods/variables) in which they are NOTHING alike, either syntactically or semantically. In these cases functionality was compromised or dropped to fit the VB model and make it "feel" like VB6. ie. The language designers had to compromise to make the transition as easy as possible for all the VB6 programmers out there to move to .net.
      Now that developers are use to VB, they've stopped trying to shoe-horn new features into the VB mold. eg The syntax for LINQ is almost identical from VB to C#.

      But then I guess C# devs wouldn't feel so superior....

      No, I'd still feel superior. :)

    48. Re:a bunch of questions by DragonWriter · · Score: 1

      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?

      Close, but I think the real reason is lots of development shops, particularly corporate/government "in house" shops, standardize on "whatever Microsoft is currently pushing", which is currently .Net & C#.

    49. Re:a bunch of questions by street+struttin' · · Score: 1

      I agree that it depends on your background. C# syntax is very similar to Java and VB.net syntax is similar to VB6, but they are different from those languages in ways that make them similar to each other. .NET is .NET. look at the example code in the msdn library sometime. They show the same example in multiple .net languages and it's amazing how similar they all are.

    50. Re:a bunch of questions by Shados · · Score: 1

      There is a chance, but it would literally kill .NET in the process. If you read a lot on the top dogs of the .NET teams (the project managers and architects, the core devs, etc, on forums, through their blogs, or meeting them at conventions), you'll see they are very friendly to open source, they push Firefox like crazy, they talk about Mono left and right, want to help Miguel, and some even get pretty pissed when MS do something retarded when it comes to .NET and it usually gets pushed back (like JQuery being bundled in the future instead of redoing the same damn thing from scratch with ASP.NET AJAX)

      If MS said "No more!" to Mono, the next day half of those guys would quit (since a lot of them accepted jobs at MS to help fix it from the inside), and .NET would die at the same time.

      MS wouldn't dare =P

    51. Re:a bunch of questions by ahsile · · Score: 1

      iLikeTheTernaryOperator ? Cake : Liver

    52. Re:a bunch of questions by avandesande · · Score: 1

      Spend 10 of thousands of dollars to port code to save on a couple hundred dollars of ram.
      Brilliant!

      --
      love is just extroverted narcissism
    53. Re:a bunch of questions by avandesande · · Score: 1

      The alternate names of OO specifiers in VB.NET made me want to gouge my eyes out. Hopefully I will never again have to use VB.

      --
      love is just extroverted narcissism
    54. Re:a bunch of questions by heffrey · · Score: 1

      What is windoze?

    55. Re:a bunch of questions by ByteSlicer · · Score: 1

      How about this one or this one?

    56. Re:a bunch of questions by eulernet · · Score: 1

      The only difference is the unsigned type, which is unavailable in VB.Net.

    57. Re:a bunch of questions by Anonymous Coward · · Score: 0

      private int blah = 0;

      public int Blah
      {
              get { return blah; }
              set { blah = value; }
      }

      Do that in VB, and I'll give you a cookie.

      There's a reason they made [CLSCompliant(true)]. Mostly just to smooth over VB's brokenness.

    58. Re:a bunch of questions by johnlcallaway · · Score: 1

      It's what happens when you let a development staff run without any standards or experienced oversight. When everyone codes the way they want to, programs are duplicated with minor changes instead of enhancing existing ones that do the same thing, just differently.

      It runs in 20 minutes because the original coder for some bizarre reason felt it was necessary encapsulate EVERYTHING and had gone as far as to enapsulate standard database calls with their own, further increasing inefficiencies.

      It has nothing to do with the language, only the coders.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    59. Re:a bunch of questions by Jugalator · · Score: 1

      IMHO, C# also has great developer support in terms of developer environments and e.g. all those dozens and dozens of Channel9 videos, MSDN, their official forums, their newsgroups, etc.

      Yes, yes, e.g. Java has too, but I'm not claiming Java isn't a major language. ;-)

      --
      Beware: In C++, your friends can see your privates!
    60. Re:a bunch of questions by gbjbaanb · · Score: 1

      no, if MS said No to Mono, those guys would bitch (quietly) about it and then start blogging about how dangerous it was to use an unsupported platform on an unstable operating system that did not have the quality integration of a well-tested stack of applications that only Microsoft can provide.

      They'll do it to save you from yourself.

      MS wouldn't care.

      (from TFA: "It is possible to build alternate implementations. We are not building .NET for Linux, because the value proposition that we can deliver to our customers is a complete unified and thoroughly tested package, from the OS framework to databases to Web servers etc.")

    61. Re:a bunch of questions by johnlcallaway · · Score: 1

      Spend the dollars to rewrite code that has major design flaws because the coder thought new, cutting edge tech were 'cool' and wrote important systems without any experience in the tech they were using.

      Spend the dollars to rewrite code that causes hours of downtime because it doesn't understand things like 'error detection' or 'restart'. Spend the dollars to put in intelligent error messages instead of 'program aborted at 13cs35213' so the time spent figuring out the cause it drastically reduced.

      These costs are for more expensive and usually not even tallied when rewriting code. I don't know how many projects I've been on when the rewrite was 'just copy everything the way it is, don't reengineer it, we don't have the time'. So garbage in COBOL becomes garbage in C++ with all the same problems.

      Reducing servers is a side-effect and had nothing to do with the original need. But, if one is going to rewrite code, why not?? Fewer servers mean less hardware costs, fewer failures, lower facility costs, cheaper upgrades, etc. The servers all run in virtual engines, hardware failure is an inconvenience when the new program's restart procedures are simply 'rerun from the step that failed'. No data restores, no issuing SQL to reset counters or dates. Just rerun.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    62. Re:a bunch of questions by ClosedSource · · Score: 1

      "They can take one company off the list of users. We are rewriting all the C# (and C++) code in Java so we can gain portability. Already, our operations staff is drooling over the prospect of being able to deploy virtual Linux servers that need far less memory instead of Windoze if they want to. "

      It sounds like your company is a bit conflicted or confused. Why program an application in C# if you're "drooling" over having it run on Linux? Choose a platform and use the best tool for the job - if you think Java is the best choice for Linux use it, but don't choose Java for it's theoretical ability to run on a platform that you don't want to use.

      Or perhaps this is just a case of wasting company money on a rewrite because you hate "Windoze".

    63. Re:a bunch of questions by rabbit994 · · Score: 1

      Probably because PHP has alot of hidden costs despite being free. Decent IDE cost money, database is uses (MySQL) doesn't scale as easily in the sense any monkey can setup MSSQL cluster. While there is Zend, there isn't one company to turn to and ask "Why isn't this working?". With ASPX, you can ask Microsoft and they can fix it regardless if it's OS, Web server or how language interacts with Web Server.

      Also, C# is used to build alot of desktop apps along with web apps and PHP is strictly web only.

    64. Re:a bunch of questions by ozphx · · Score: 1

      VB has a "fake" operator, which works like a method IIf(iLikeTheTernaryOperator, Cake, Liver).

      That works fine.

      IIf(someShit = Nothing, "Lol its fkn null", someShit.Foo) ..breaks. someShit gets dereferenced as you would expect for a method call. Thats probably the most common use of a ternary operator too.... so it makes it shit-useless.

      --
      3laws: No freebies, no backsies, GTFO.
    65. Re:a bunch of questions by shutdown+-p+now · · Score: 1
      For cross-platform GUI apps, you don't want to be anywhere near .NET. Trust me on this.

      .NET is a wonderful platform to develop for if you target Windows - a slew of different languages, solid class library, good tools, and, as usual for MS, tight integration with their other offerings. But if you don't want to take the MS pill all the way, and want portability, forget about it. Mono is nowhere near close. You'll have much better chances with Java.

    66. Re:a bunch of questions by BitZtream · · Score: 2, Interesting

      I had a hard time conviencing a Microsoft Developer, who writes in C# that VB.NET and C# are practically identical. Until I pulled out the URL to the MSDN documentation that uses XML and XSLT to show example code in the browser and allows the browser to switch between showing C# and VB examples with a javascript call.

      Its amazing how hard it is for some people to pick up on the obvious. Thats the POINT of .NET, to make a lot of the differences between languages and their output (libraries and executables) go away so you can use whatever suits you or the project best, including multiple languages in the same library/executable.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    67. Re:a bunch of questions by BitZtream · · Score: 1

      While I'm happy to agree with you in principle, Mono isn't there yet.

      For long running applications that do a lot of operations on small chunks of memory, the Mono memory management gets killed. The GC doesn't defragment along the way, which means you can do some pretty simple things in your code that cause the GC to not really free up as much memory as you would hope. Or rather, as typical with heap fragmentation, its free, but not in big enough chunks to do anything useful.

      A system I'm working on uses C# for the web interface. Works great on the Microsoft implementation, put it on Mono, throw are 'light' test load at it and it doesn't take long before the web server is 'out of memory'.

      We can fix the app, but we can also just use the MS implementation which is far less costly overall. Eventually however, Mono will take care of the problem I'm sure. Their current solution is to 'fix your application' which one code argue is the right thing to do as there are other benifits.

      My point however is that, Windows specific code isn't the only reason why you don't use Mono for everything.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    68. Re:a bunch of questions by Your.Master · · Score: 1

      ...or if you define "widely used" to mean "in the top X" where X >= 8 (to the extent that TIOBE actually measures how widely something is used).

    69. Re:a bunch of questions by LoztInSpace · · Score: 1

      I'm fairly sure it is short for While End. It's certainly been around for a long time (when line numbers were in use and there was no such thing as "End If" before anyone brings up the fact it's "the wrong way round").

    70. Re:a bunch of questions by ahsile · · Score: 1

      While it is the next day... so I doubt the possibility of a reply, but I was under the assumption that IIF would evaluate results for both true and false, making it very cpu intesive and possibly giving unintended side effects.

    71. Re:a bunch of questions by ByOhTek · · Score: 0

      Except I have used both, and .NET has had *NO* issues cross platform so far.

      I can't say that about java.

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

      What, because VB doesn't allow two members to share the same name even if one is capitalized and the other not? That's the only difference and is arguably not a bad feature.


      Private _blah As Integer
      Public Property Blah() As Integer
              Get
                      Return _blah
              End Get
              Set(ByVal value As Integer)
                      _blah = value
              End Set
      End Property

      So, where's my cookie?

      --
      No Comment.
    73. Re:a bunch of questions by ozphx · · Score: 1

      Yeah you are correct. Its a method call masquerading as a ternery operator. Its especially annoying because of the common use of the ternery operator is someObject == null ? default : someObject.Property

      Can't do that in VB.

      At least VB10 is going to have nullable support in the language rather than the clumsy Nullable(Of T) syntax. Should get the null coealesing operator too (fuck, can never spell that) (?? in C#).

      --
      3laws: No freebies, no backsies, GTFO.
    74. Re:a bunch of questions by ahsile · · Score: 1

      Thanks for the reply. That's what I thought :)

    75. Re:a bunch of questions by Ngarrang · · Score: 1

      Actually, COBOL is more widely used than any of those. Not sexy, but it literally pays the bills.

      -BA

      Or least processes them for us.

      --
      Bearded Dragon
    76. Re:a bunch of questions by Curmudgeonlyoldbloke · · Score: 1

      Of course, the tiobe index is rather limited and inaccurate

      I certainly hadn't noticed the large increase in demand for Delphi...

    77. Re:a bunch of questions by Anonymous Coward · · Score: 0

      You're so full of it.

      Sun doesn't have a HPUX implementation. So your problem is presumably with HP's implementation.

      If you have had one problem, that is, cuz your description is somewhat obscure. There is no "String library", there's a String class, that doesn't support regexes. Regexes are in the java.util.regex package. Always worked fine for me on Linux, Solaris and MacOSX, but what do I know?

  6. amazing what doesnt get asked by Ancient_Hacker · · Score: 0, Flamebait

    Talk about softballs, some of us would like the answers to these questions:

    (1) How much did Microsoft have to pay you to switch from the side of the angels to their side?

    (2) Who decided to make C# just enough like Java to fragment and muddle the whole programming scene?

    (3) How can you consider C# to be a success when Microsoft tried using it to replace large parts of Windows and ended up throwing the whole mess away?

    1. 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?

    2. Re:amazing what doesnt get asked by rzei · · Score: 3, Interesting

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

      You currently cannot say C# replaces C++ on Windows platform as using any DirectX components for example is nightmare through C#. Which I think is a rather major obstacle if you have an application that would like to use something other than simple sound output facilities. (Reasons for this might be as simple as choosing a sound output device, on at least .NET 2.0.)

      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. This is a very sad "feature" that has been bugging as even with very simple applications. (Side note: We have tried to code using all the best practices you can find from MSDN.)

      Also, GP's point 3 sounds very interesting. Can it be a success when it cannot be used to produce major parts of their own operating system. (No, I'm not talking about writing their kernel with C#).

      Though, the GP doesn't list any sources for point 3, which at least I would be very interested to read as I seem to have missed those articles.

    3. Re:amazing what doesnt get asked by Anonymous Coward · · Score: 0

      "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."

      You mean, the crappy sharewares and freewares are using C# as the client side language. Professional apps like Adobe, Autodesk, Microsoft Office or Digidesign all use C++, no fcsking c# or java.
      The only major app I know that makes use of C# and the latest WPF framework are Microsoft Expression apps (what a surprise!) and the bloatware Yahoo Messenger.

    4. Re:amazing what doesnt get asked by claytonjr · · Score: 1

      (2) Who decided to make C# just enough like Java to fragment and muddle the whole programming scene?

      http://en.wikipedia.org/wiki/Anders_Hejlsberg

      He was/is the lead architect behind c-sharp.

    5. 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.

    6. Re:amazing what doesnt get asked by Anonymous Coward · · Score: 0

      C# replaced C++ on the Windows client side??

      I will consider agreeing when Microsoft themselves start shipping serious software written in it...

    7. Re:amazing what doesnt get asked by Veretax · · Score: 1

      Curious....

      Is the issue you mention between Vista and XP a C# issue? Or an issue of the XP user not being on the latest and greatest release of .net (3.5 right now) ? I believe you can download the current framework for use on XP if that is the case.

      Besides, this is slashdot, why would anyone on slashdot be promoting MS Vista?

    8. Re:amazing what doesnt get asked by hunangarden · · Score: 1

      I think the fragmentation is mostly on the Web application side. Prior to C# and .NET if you wanted to develop a web app with Microsoft technologies you were probably using the pre-.Net version of ASP, which has various drawbacks.

      Microsoft smartly realized that they needed a framework for Web applications that included object oriented programming. They also realized that Java was very successful with its use in J2EE Web Development (Servlets, JSP, EJB).

      So for their push into the Web world, they "copied" Java to some extent, thereby luring some Java programmers into their world, and also providing argument that .Net was as good as J2EE.

    9. Re:amazing what doesnt get asked by rzei · · Score: 1

      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. :)

      Correct, but I was trying to write this as my position of part-time Windows application programmer. The point that I was trying to make was Microsoft could had just attempted to follow the latest and greatest with C++, not create fragmentation.

      I believe that the issues with C++ are there but could had been fixed. Many people are/have been fixing those issues. To name a few the guys from Boost and Trolltech.

      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#.

      Correct again, off-point and all that, but when you have to implement this part of your "solution" with C++ and that over there with C# I'd call that fragmentation.

      For writing programs with GUI's the sad thing for ISV's is that you really cannot do it in many other ways. With C# anyone can do it (I guess opposed to C++) meaning it's as simple as Java. But Java cannot use because customer does not want to install JRE on every desktop.

      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.

      Well last time I checked I use some kind of mix between GTK and Java GUI on simple thin-clients at my University, which are backed by large SUN server doing all the hard lifting. I'd call that writing at least some of the operating system components with Java, GTK running as the painter for the UI. Then again I might be wrong on this one too.

    10. Re:amazing what doesnt get asked by Abcd1234 · · Score: 1

      I think the fragmentation is mostly on the Web application side.

      I disagree. I think those that have chosen C# and .NET would've chosen a pre-.NET version of ASP, anyway, because they're already married to the Windows development stack and ecosystem. And those that would've chosen Java are still choosing Java because, in the end, it's a proven enterprise platform.

      Meanwhile, there was *always* ASP versus Java... now there's ASP.NET versus Java. I'm not sure I see where that introduces fragmentation that wasn't already present in the marketplace.

    11. Re:amazing what doesnt get asked by eimsand · · Score: 1

      Excellent point.

      I have to wonder where C# would fall on a "popularity list" if you were to exclude maintenance activities. In other words, look only at new development projects when assessing its popularity.

      Forgive me for saying so, but much of the "C# SUX TEH BIG ON3" sentiment strikes me as being from the anti-microsoft crowd. The group of people who would bash Microsoft, even if they cured cancer. The fact of the matter is, if you're writing a Windows application, you're probably using .NET. And if you're using .NET, you're probably using C#.

    12. Re:amazing what doesnt get asked by rzei · · Score: 1

      I was not going to reply to this until I saw the sentence on the but lets clear this up (while it was rather off-topic).

      Is the issue you mention between Vista and XP a C# issue? Or an issue of the XP user not being on the latest and greatest release of .net (3.5 right now) ? I believe you can download the current framework for use on XP if that is the case.

      The issue were with .NET 2.0, on both workstations. I believe Microsoft is calling those .NET 1.0, 2.0, 3.5, so that when I write code that depends on .NET 2.0 it will work on my friends computer that has .NET 2.0, regardless of the operating system..

      Besides, this is slashdot, why would anyone on slashdot be promoting MS Vista?

      Heh... As not everyone here does all their coding just for fun they do it because they have to – in order to get payed.

      I'm happy that the most I've been doing lately have involved more server side Java than anything related to .NET.

    13. Re:amazing what doesnt get asked by sorak · · Score: 1

      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?

      Well, C# is being used for ASP.Net development. It may be pulling attention away from J2EE by providing an alternative for the "ewww...basic" crowd.

    14. Re:amazing what doesnt get asked by Abcd1234 · · Score: 1

      Forgive me for saying so, but much of the "C# SUX TEH BIG ON3" sentiment strikes me as being from the anti-microsoft crowd.

      Agreed. And you know what? Traditionally, I've been one of those people. I say this up front because what follows is gonna seem sycophantic... but my background is Unix development, and I've had to grudgingly admit a few things about .NET and C#.

      First, he simple fact is, compared to writing Windows apps in C++, C# is a *godsend*. 'course, that's really an indictment of MS's C++ APIs, but the reality is that C# did exactly what they wanted: it allowed them to make a clean break from their old APIs, allowing them to replace them with new, cleaner (though still decidedly crufty and poorly designed in a *lot* of places) APIs. 'course, it sure ain't perfect (.NET's timezone support is, frankly, embarassingly bad), but it's lightyears ahead of what came before.

      Second, C# is, I must grudgingly admit, a nice language. Is it incredibly derivative? Yup. But it does bring together, in a single package, a very nice feature set, over and above the stuff they copied wholesale from Java. Native generics, closures, real annotations... C# has got some very nice stuff in it.

      Lastly, the very fact that C# is so feature-rich has forced Sun to really kickstart the Java development process once more. And that demonstrates that, rather than fragmenting the development community in a negative way, C# has actually improved the situation by providing competition and contrast (though I maintain that C# and Java don't *actually* operate in the same niches, so that competition is more in the realm of bragging rights).

    15. Re:amazing what doesnt get asked by Abcd1234 · · Score: 1

      I *really* doubt that. I strongly suspect that the people choosing ASP.NET would've never considered Java, as odds are they're already invested in MS kit, while those choosing Java would've never considered ASP.NET as the former is a proven enterprise platform, while the latter is not.

    16. Re:amazing what doesnt get asked by sanosuke001 · · Score: 1

      I took a 2D and 3D graphics class at college using DirectX. My 2D group decided to use C++. My 3D group used C#. C# was by far easier to implement. So I don't know where you got your "using any DirectX components for example is nightmare through C#" statement.

      --
      -SaNo
    17. Re:amazing what doesnt get asked by ckaminski · · Score: 1

      .Net is just yet more churn in the Microsoft shit-factory of APIs and languages.

      If the whole comctl32 debacle isn't fresh enough in any of your memories, give it a quick google. If SQL Server 2005 Enterprise Manager is any good representation of C++ vs. .Net, I'll stay away from .Net. They took a great tool, MMC-based Enterprise Manager, and ruined it.

      Ultimately, I think you're right, but I think I'll be happy sticking to C++ and one of the myriad of really good windowing frameworks available.

    18. Re:amazing what doesnt get asked by FishWithAHammer · · Score: 1

      This just in: preexisting apps with huge established codebases didn't switch to a new programming language! Film at 11.

      Idiot.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    19. Re:amazing what doesnt get asked by clodney · · Score: 1

      I agree with you (though I've been in the Windows world for years and not an MS basher), and I'll even throw in some specifics.

      The Win32 APIs reflect the fact that C/C++ have no built in string type. Anytime string data has to be returned to the caller, you had to answer questions about who allocated the data, how it was terminated, how long it needed to be, etc. The most common method of handling this (and yes, not all APIs do it the same way) required two API calls - once to ask how big the data is, and a second one to actually get the data. And of course the caller still had to allocate and free the data.

      Compare that with .Net - it has a built in string type, so no confusion over how the data is represented. And with a single garbage collected allocator, the API can allocate the needed data and return it to you. So instead of multiple calls and an allocate/free, you can just call an API that returns you an object of type string.

      Even better, since .Net has built in collections, the APIs are free to return things like arrays or lists of strings or objects. In Win32 that was exceedingly cumbersome.

      WinForms and WPF are both dramatic improvements over the Win32 dialog resources, which is still the defacto standard for Windows C++ applications.

      Defining event callbacks/handlers is simple and expressive in the .Net language, compared to the huge preprocessor macros for things like BEGIN_MESSAGE_MAP ON_WMHSCROLL, ON_COMMAND, etc.

      Back to strings: strings in .Net are immutable, and string.Format is a static member of the string class, that returns a string. So instead of declaring a char buffer or a CString or std::string and then initializing it, you can do it all inline: MessageBox( string.Format( "Enter %0 password", "Bill's" ) ); That expressiveness makes it simpler to write code without having to stop and backup when you realize you need to create a string object somewhere.

      Little tiny things in C# (and Java I believe) like the fact that when using enumerations they are prefaced with enumeration name. Not only does this cut down on errors, it makes it much easier for the IDE to autocomplete for you.

    20. Re:amazing what doesnt get asked by thelawal · · Score: 1

      I agree. The way I see it Microsoft is actually promoting competition. The real battle isn't Java vs C# but JVM vs CLR. One of the things that is interesting is the fact that the flexibility of CIL and the CLR has allowed not only the native OO languages to be developed but also functional and dynamic languages. The JVM has similar capabilities but some things like tail recursion optimization are not as good. But because of the competition I suspect that the JVM team will not surpass what MS has as they already do in certain aspects.

    21. Re:amazing what doesnt get asked by OdinOdin_ · · Score: 1

      > Last I checked Java wasn't being used to write operating system components .....

      Everyone accept the Kernel of the OS is best written in C/asm even C++ if appropriate higher level stuff to get raw performance from optimization and a consistent scheduling requirement (which garbage collection language's don't provide - hence Sun's warning not to use Java in life critical environments like nuclear power stations)

      However the GUI and tooling parts of the OS are and have been written using Java for Sun Solaris and Sun's Desktop also much of HP and Oracle's tooling is also Java. So this really is a care of eating their own food, but I agree I don't see much of XP SP3 or Vista based on DotNET.

      So maybe "last I checked" you were talking of Windows, I can only suggest you go out and see the world a little more.

    22. Re:amazing what doesnt get asked by Richard_at_work · · Score: 1

      .Net 2.0, 3.0 and 3.5 all share the exact same runtime - 2.0.50727. The additions in .Net 3.0 and 3.5 are either just parts of the Framework, or updates that the compilers handle so it still runs on the same runtime.

    23. Re:amazing what doesnt get asked by hunangarden · · Score: 1

      Before .NET large companies would probably go with J2EE for a web application. Pre-.NET ASP was never a great solution.

      Now with .NET and C#, many companies that were potential J2EE candidates ended up going with the Microsoft stack (where they probably would not have gone with pre-.NET technologies). Thus continuing and exacerbating the fragmentation that existed before .NET.

      My company for instance merged with another company. The parent company was .NET and the company they merged with was J2EE. So now our programmers and even managers are sort of at odds with each other. Do we build the next app in .NET or Java ??

      Without .NET and C# I don't think that kind of fragmentation would be as common.

    24. Re:amazing what doesnt get asked by Abcd1234 · · Score: 1

      Without .NET and C# I don't think that kind of fragmentation would be as common.

      That's just it. I really don't think it is. *shrug* I'm sure there are a few cases here and there, but I really don't think the market fragmentation issue is so large as to overwhelm the enormous advantages caused by increased competition in the space (just look at how Sun has reacted, added new features to Java at a record pace relative to their previously essentially stagnant progress).

      But, fair enough, I'll concede that, yes, .NET may have contributed to some additional fragmentation on the enterprise side of things (although, as you yourself point out, the space was already crowded). I just don't think the effect is that great.

    25. Re:amazing what doesnt get asked by Abcd1234 · · Score: 1

      So maybe "last I checked" you were talking of Windows

      Yeah, you're right, that tiny fraction of Java tools that Sun, HP, and Oracle have written completely defeats my point.

      Last I checked, neither Windows, nor Linux, nor MacOS, the dominant desktop OSs out there, had a large population of Java applications. And the number of tools on the Sun, HP, and Oracle side written in Java is vanishingly small relative to their native applications. Hell, in all my work on Sun boxes, I don't think I've *ever* used a Java app.

      So, yeah, just like there are the odd Windows apps out (like, say, Azureus) that are written in Java, the reality is that number is *incredibly* small. The fact is, Java has made it's name in the enterprise web application space, not on the desktop or in the OS, and I've met no one who's credibly attempted to challenge that fact. And that includes you.

      Thus, I believe my original point still stands. Just because MS hasn't migrated SQL Server or Office to .NET doesn't make it a failure, any more than Java is a failure because Sun hasn't rewritten their Unix userland in Java. It just means that they're smart enough not to rewrite multi-million-LOC projects in another language just to prove they can.

    26. Re:amazing what doesnt get asked by Jugalator · · Score: 1

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

      Meh.. As for Windows development, I think .NET did a lot of good things. Most importantly, made a .NET developer easily understand and switch between C#, VB .NET or heck even something else .NET based that would come up later. The difficulty in a new language lies usually not in the syntax, but in learning the API. .NET was a great gift for the Windows developers in that regard. No more.. "Uhmm, MFC if you do C++ or VB6 if you want VB"... As for Microsoft's offerings. Eek. Things were *ugly* in the past. And hell of a lot more fragmented.

      --
      Beware: In C++, your friends can see your privates!
    27. Re:amazing what doesnt get asked by Weedlekin · · Score: 1

      "C# has really just replaced C++ on the Windows client side, where Java never had a foothold to begin with."

      It's actually replaced VB, Delphi, and a bunch of proprietary 4GLs that were previously used for corporate development and specialist low volume third-party stuff -- shrink-wrap software (including Microsoft's offerings) is still written in C++ or one of the now very small number of other compiled languages for Windows.

      --
      I'm not going to change your sheets again, Mr. Hastings.
  7. 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.

    1. Re:C# is not the most widely used comp language by Anonymous Coward · · Score: 2, Insightful

      The author used the words "one of", meaning *not* THE most widely used language. It is pretty common, so it's not really an arguable assertion.

    2. Re:C# is not the most widely used comp language by ByOhTek · · Score: 1, Informative

      note it says "one of computer programmings ..." not "the..."

      That means it's not necessarily THE most widely used language, but in a subset of the most widely languages...

      In the top 75%? probably
      In the top 50%? probably
      In the top 10%? maybe...

       

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    3. Re:C# is not the most widely used comp language by Nursie · · Score: 2, Informative

      Apparently Java is the top dog today.

      My personal favourite, good 'ol C is in second place. C# was in at number 8, and seems actually to be on the decline.

    4. Re:C# is not the most widely used comp language by Anonymous Coward · · Score: 0

      The summary also talks of "the new language F#", but F# has been around for years. In other words, the slashdot summary is bunk. Are either of us really surprised?

    5. Re:C# is not the most widely used comp language by DahGhostfacedFiddlah · · Score: 1

      I took a look at the chart - it's on decline in the standings, but that's only because Python shot up by a huge margin. C# actually increased its mindshare by .75%, which was a pretty big step compared to other languages on the list.

  8. One of the most widely used languages? by novalis112 · · Score: 2, Interesting

    Really? Is that actually true? I thought it was still relatively obscure. I'm not sure I've ever even met more then a handful of people who have done any real work with it. Am I just totally out of the loop? Has C# truly surpassed C, C++ and Java?

    1. Re:One of the most widely used languages? by Dystopian+Rebel · · Score: 3, Funny

      Yes, it must be one of the most widely used, because it seems that every day I hear of .NET failing to scale somewhere.

      --
      Rich And Stupid is not so bad as Working For Rich And Stupid.
    2. Re:One of the most widely used languages? by Anonymous Coward · · Score: 2, Insightful

      Yes you must be out of the loop to some degree if you have only met a handful of people developing in it. It certainly is not obscure. Where I am there is more C# work going on than any other single language.

    3. Re:One of the most widely used languages? by novalis112 · · Score: 1

      Oh I see! Chuckle...

    4. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      Depends.

      For the kind of applications you might expect to find on a typical Windows desktop PC, no. It's still pretty much C++ all the way, with a sprinkling of other languages.

      Bear in mind that most development for Windows is internal business apps, and software sold to other businesses. In fact, most software developed in general falls into that category.

      In those categories, C# is getting pretty common, but it's not replacing C++. It's replacing the previous incumbent, Visual Basic.

      It's also making a dent in Java's niche (business server applications) - organizations with all-Microsoft IT infrastructure, or with developers with no programming experience outside of Microsoft's environment tend to choose C# instead of Java.

    5. 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
    6. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      Yes you must be out of the loop to some degree if you have only met a handful of people developing in it. It certainly is not obscure.

      It is outside of Microsoft shops!

    7. Re:One of the most widely used languages? by nschubach · · Score: 2, Insightful

      Could that be partly due to the fact that a literal monkey could code it? Hell, most of the code you'd ever need for any program has been posted by some Microsoft programmer on MSDN so the only skill developers have to know is cut and paste. I don't know how many times I've looked through code with myObject and myHttpWebRequest because the developer was too lazy to even change the variable names to fit the purpose.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    8. Re:One of the most widely used languages? by ray-auch · · Score: 1

      > Has C# truly surpassed C, C++ and Java?

      No, but it is up there with them - which is what the quote said "ONE OF the most widely used..."

      Where exactly it is will depend on which survey you read. Evans data reported something like 1/3 using C# I think. Or looking at current job vacancies, this site puts it third in the skills list: http://www.salaryservices.co.uk/topskills?expand=topskills&cboIndustry=-1/

      Of course, YMMV and depend on location and industry segment. If you are doing eg. embedded development, or primarily targeting Unix platforms, then you will see very little C# - but then if you were working mostly on Windows develeopment you'd think C and C++ were mostly dead...

    9. Re:One of the most widely used languages? by novalis112 · · Score: 1

      So... You work at Microsoft? ;)

    10. Re:One of the most widely used languages? by Nursie · · Score: 1

      "No, but it is up there with them "

      I'm afraid it's not really. They are the top three languages. C# comes in at number 8, after Perl, PHP, Python and VB

    11. Re:One of the most widely used languages? by afidel · · Score: 1

      Yep, I just did a quick Monster search for 200 miles from my zip, Java comes in a 525, C# at 342, and C++ at 300.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    12. Re:One of the most widely used languages? by Anonymous Coward · · Score: 1, Insightful

      Behold, the "coding standards company" whose web site requires javascript.

      What a bunch of clowns!

    13. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      Then you are obviously coding exclusively for windows.

    14. Re:One of the most widely used languages? by greenkite71 · · Score: 1

      Maybe you just don't know how to design scalable applications. I work for a mostly Microsoft-only shop (some PHP), and our ASP.NET sites (SQL Server backend) will generate 300+ million in revenue this year (and yes, we are very profitable). Scalability is often an application design issue, not a development environment problem. A good carpenter never blames his tools.

    15. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      try using ASP.Net MVC framework.

      Try dotnetNuke.

    16. Re:One of the most widely used languages? by daem0n1x · · Score: 1

      Come to Portugal, the Micro$oft paradise. Here most developers code in VB (oh, the horror) or C#, over a full M$ stack, top to bottom. They don't say "database", they say "SQL Server", they don't say "web server", they say "IIS".

    17. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      so now all of a sudden, code reuse and a robust platform that does a lot of the common work for you is bad?

    18. Re:One of the most widely used languages? by ray-auch · · Score: 1

      Depending on which survey you read - as I said. If you follow the links I quoted it is number 3.

      If you want to know which languages are in demand for real _jobs_ (whereas Tiobe seems to look at what is being discussed most on the net, at least in part) then use surveys like the one I referred you to (where C# = #3).

      A quick jobs search for my local area on a major jobs site showed 43 for Java, 79 for C#, 71 for VB, 194 for SQL, and 29 for C++. Perl and Python are down in single figures. YMMV.

    19. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      > A good carpenter never blames his tools.

      That should be a "bad carpenter...". GP has said he works in defense, they're only allowed to use approved software and the red tape to getting something approved is considerable in these environments.

      You're also mistaken. Profitable web based companies can throw resources at scaliability problems, other lack that luxury and have to design apps to scale on limited harware resources from the outset.

    20. Re:One of the most widely used languages? by jalet · · Score: 1

      > Where I am there is more C# work going on than any other single language.

      Are you in Wall Street, by chance ?

      --
      Votez ecolo : Chiez dans l'urne !
    21. Re:One of the most widely used languages? by EastCoastSurfer · · Score: 1

      Can you elaborate on your scaling issues with MSSQL? I've worked with various size MSSQL databases for years and I've always found scaling was more of an application design issue than the database itself. Of course some designs might work better/worse on different RDMS, but I would think that you would have done research on how to scale MSSQL applications.

    22. Re:One of the most widely used languages? by EastCoastSurfer · · Score: 1

      ROFL...if the javadocs actually contained much sample code I'm sure you would see the same thing.

      A tool is just a tool. C# is a great tool for windows development. Saying that c# is easy when you need to code for windows is actually a plus for c# and not a negative.

    23. Re:One of the most widely used languages? by FishWithAHammer · · Score: 0, Troll

      I work for a router company that's building Linux-based embedded solutions and using Mono for the high-level parts of its firmware. On Linux. Using C#.

      Good job not having a clue about how what you're talking about works, though.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    24. Re:One of the most widely used languages? by Nursie · · Score: 1

      Have you noticed it's really difficult to search for jobs in plain old C?

    25. Re:One of the most widely used languages? by gbjbaanb · · Score: 1

      apart from the dodgy replication (new '911' ambulance customer, 2 sites, SQL 2005, clustered DB... support engineer called out at 2am because 1 DB had fallen over and the other one couldn't be bothered to take over)

      Microsoft later shipped us a patch, which was nice of them, its just a pity that the latest rollup (v6) didn't contain the patches contained in patch v5.

      Usually SQL Server problems are down to its locking strategy. Anyone coming from an Oracle background to work with SQL Server can easily get a totally unscalable DB. Our old product had to be extensively redesigned to work with SQLServer because of this 1 issue. 2008 apparently supports row-level locking much better so perhaps that's what he means by "getting it right" at last.

    26. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      I work for a router company that's building Linux-based embedded solutions and using Mono for the high-level parts of its firmware. On Linux. Using C#.

      Oh dear.

    27. Re:One of the most widely used languages? by ozphx · · Score: 1

      Which is exactly why the platform gets a bad rep.

      Fortunately I make a lot of money fixing up when a bunch of code monkeys come fresh out of making "Pops Online Store" and decide they can take on a major industrial automation project with a bit of extra copy-pasta.

      --
      3laws: No freebies, no backsies, GTFO.
    28. Re:One of the most widely used languages? by ray-auch · · Score: 1

      Yep - that is why it was missing from my list :-)

    29. Re:One of the most widely used languages? by Shados · · Score: 1

      SQL Server 2000 has shit locking. SQL Server 2005 and up has locking strategies similar to Oracle (snapshots-based), but they're not enabled by default to avoid screwing over people who upgrade (not sure I agree with that, especially for new databases, but whatever), so that solves that.

    30. Re:One of the most widely used languages? by nschubach · · Score: 1

      "Code re-use" and "Cut/Paste code" are two different things.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    31. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      .NET has shown to scale extremely well (many sites in the top 200 do so very successfully). Some of these did so with SQL2K a few years ago (not to say that Oracle, for example, didn't scale better at the time). No offense, but I think you probably need to look at your design instead of pointing fingers at the platform.

    32. Re:One of the most widely used languages? by greenkite71 · · Score: 1

      Our company is PCI compliant, which significantly restricts the hardware/software configurations we can use as well because of strict security requirements. We don't throw hardware at problems because hardware can't solve every problem. If you write code (whether it is C# or Transact-SQL or whatever) that uses shared resources (e.g., a database or cache) and aren't smart about it, no amount of hardware is going to help.

    33. Re:One of the most widely used languages? by jlechem · · Score: 1

      The locking is our issue as well. IANADB but from what our DBA says SQL 2000 does whole table locking and unless your queries are ultra fast you get race conditions and timeouts left and right.

      --
      Hold up, wait a minute, let me put some pimpin in it
    34. Re:One of the most widely used languages? by jlechem · · Score: 1

      I kind of responded to this below but yeah that was the point. I came from an Oracle background in a previous job and was dumbfounded by the SQL Server 2000 locking mechanisms. We had to re-code an entire application framework to deal with this issue. Upgrading simply wasn't available since the DoD wouldn't allow SQL Server 2005 on high side classified systems. Next time I'll make a bit better posting and not hit submit so fast ;)

      --
      Hold up, wait a minute, let me put some pimpin in it
    35. Re:One of the most widely used languages? by Doctor+Faustus · · Score: 1

      Anyone coming from an Oracle background to work with SQL Server can easily get a totally unscalable DB.
      The reverse can be true, as well. PL/SQL code generally needs to be much more procedural, where T-SQL is both faster and easier if you try to stick to working in sets.

      Oracle's locking is unreservedly better, but I always wonder how much of a price I'm paying for it. It can't be easy for the server to maintain multiple versions of data and remember which one to serve up for each connection.

    36. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      If your DBA said MSSQL2K does table locks on all longer queries, fire him, every hobo would be better DBA than him.

    37. Re:One of the most widely used languages? by Shados · · Score: 1

      DBAs are probably the worse people to ask these kind of questions to. The kind of shit ALL DBAs I've talked to have told me is just...stupidly amusing. "Stored procedures are faster than SQL dynamically generated by an ORM framework!". "Stored procedures are precompiled!" Just... rofl.

    38. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      I write enterprise level code in C# every day. If you are finding you can't get .NET apps or ASP.NET to scale then I can asure you the issue is with your devs. Current system I am working on has 30,000 concurrent users all hammering away, The scalability both vertically and horizontally is one of the main reasons we use .NET. incidently when we first started we had clueless programmers that had similar claims about its scalability as the app required 4 times as many web servers and app servers as expected. But once we weeded out the incompetant programmers and fixed there code we are running on 25% less hardware than we even expected was possible for the 40 million transactions a day the system does.

    39. Re:One of the most widely used languages? by Anonymous Coward · · Score: 0

      Nuke that place from orbit...

      It's the only way to be sure.

    40. Re:One of the most widely used languages? by shutdown+-p+now · · Score: 1

      Could that be partly due to the fact that a literal monkey could code it?

      Doubtful, since it's not really much different from Java in that respect. If anything, C# 2.0+ is trickier because it has some language features that can easily drive a "code monkey" nuts (such as proper closures).

  9. Why F#? by LSD-OBS · · Score: 1

    They should really have called the successor E#

    --
    Today's weirdness is tomorrow's reason why. -- Hunter S. Thompson
    1. Re:Why F#? by xouumalperxe · · Score: 2, Funny

      Well, F# is a perfect fourth up from C#, which offers better resolution than moving to E#, a major third up. At least they didn't go for G, at which point they'd have you begging for G#.

    2. Re:Why F#? by Anonymous Coward · · Score: 0

      They should really have called the successor E#

      They wanted to move from the key of 'C' to the key of 'D' - unless, they're thinking in an entirely different mode. Makes me kind'a want to sing da Blues.

    3. Re:Why F#? by LSD-OBS · · Score: 1

      So what, you recommend all programming langauges be named on the minor pentatonic scale? WIN!

      --
      Today's weirdness is tomorrow's reason why. -- Hunter S. Thompson
    4. Re:Why F#? by DannyO152 · · Score: 1

      F for functional.

      Though here, C# is to java as F# is to OCaml, and one wonders if the selection of OCaml as the syntactic base had to do with merits or license. As to Hjelsberg, who is legitimately a language superstar, I've been reading suggestions that some of the major elements of .net 2 and greater were necessitated by the desire to get a functional language into the .net universe and the F# developers did the major work in extending the platform. C# is now tilting towards functional. Though as I have been reading up on how to use scala (java meets functional) I'm coming to a point of view that bolting functional paradigms to an existing C-esque language means a lot of developers for a decade will be writing imperativonal code as the familiar syntax lulls one into using the familiar imperative techniques.

    5. Re:Why F#? by Anonymous Coward · · Score: 0

      Not a music geek then? :)

    6. Re:Why F#? by Anonymous Coward · · Score: 0

      F of Functional

    7. Re:Why F#? by AdamHaun · · Score: 1

      It lets you do functional programming. Hence, F#.

      --
      Visit the
    8. Re:Why F#? by daem0n1x · · Score: 1

      They make a perfect cadence, which means F# is the tonic and will be the definitive language that everyone will use for the end of times.

      C# was just making us hungry.

    9. Re:Why F#? by HTH+NE1 · · Score: 1

      It lets you do functional programming. Hence, F#.

      Oh, I thought they just made the strings tighter.

      --
      Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
    10. Re:Why F#? by xouumalperxe · · Score: 1

      Or thinner.

    11. Re:Why F#? by LSD-OBS · · Score: 1

      E# == F

      --
      Today's weirdness is tomorrow's reason why. -- Hunter S. Thompson
    12. Re:Why F#? by DannyO152 · · Score: 1

      What constitutes music geek bona fides? I know my way around guitars, keyboards, and the clarinet, I've written songs, recorded, and played out. While the names C# and F# are musical puns I think the C does double duty as an allusion to, well, C and C++, and I think the F refers to functional, which is why, I guess, the .net hooked in OCaml fork got that musical note. Maybe D# will be the name of the declarative .net language. Build it around mozart and there some real musical punnerage.

  10. Oh, well, that explains everything... by argent · · Score: 1

    "Microsoft's leader of C# development, writer of the Turbo Pascal system, and lead architect on the Delphi language..."

    Well, that explains everything. Turbo Pascal was the source of endless problems on the PC, and not just because it was really "Turbo Something Kind Of Like Pascal". It seemed like 90% of the time when I came across a badly behaved application that ignored command line redirects because it went straight to the BIOS just to write its copyright banner, and wouldn't run on anything but a perfect clone, or wouldn't run under DoubleDOS, or (later) required the most stringent DOS emulation under Windows, it was in Turbo Pascal.

    Why anyone thought that was a good thing to happen by default, I don't know, but it drove me bonkers. No wonder C# and .NET is its own little universe that only deals with other software at the end of a ten foot pole.

    1. Re:Oh, well, that explains everything... by SimonGhent · · Score: 1

      Turbo Pascal and Delphi were popular because 20 or so years ago universities taught Pascal to their computer science students. About the time Delphi came out, things moved on and they began teaching C++ which pretty much killed Delphi off.

      That and MS's development tools got much better.

      --
      simon
    2. 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!
    3. Re:Oh, well, that explains everything... by Anonymous Coward · · Score: 0

      Turbo Pascal was popular for a couple of other reasons also:

      1) Price : 80 bucks when other PC commercial compilers were going for hundreds of dollars at least.

      2) Speed : TP was written in assembler as a one pass compiler whereas other PC commercial compilers were multiple pass (MS compilers did 3 passes as I recall and could take minutes to build an app on an old PC)

    4. Re:Oh, well, that explains everything... by morgan_greywolf · · Score: 2, Funny

      It seemed like 90% of the time when I came across a badly behaved application that ignored command line redirects because it went straight to the BIOS just to write its copyright banner, and wouldn't run on anything but a perfect clone, or wouldn't run under DoubleDOS, or (later) required the most stringent DOS emulation under Windows, it was in Turbo Pascal.

      Hey! I wrote some of those applications, you insensitive clod!

      (Whaddya want? I was a 15-year old kid with a copy of Turbo Pascal. A very dangerous thing back then. ;)

    5. Re:Oh, well, that explains everything... by morgan_greywolf · · Score: 1

      That and MS's development tools got better.

      There fixed it for you.

    6. Re:Oh, well, that explains everything... by Anonymous Coward · · Score: 0

      The first IDE ? you don't know anything about Lisp or Smalltalk, do you ? The FIRST graphical user interface was made at Xerox PARC with the Smalltalk programming language. They both had IDEs, in fact everything lived inside an image so it's not even comparable to the traditional concept of compilation. You see, you can modify a smalltalk program while it's running. It's dynamic.

      Then, you compare the OOP model of pascal to C++. WTF ? It's like comparing two diseases and saying one is worse than the other. Jesus fucking christ, the creator of Smalltalk actually coined the Object Oriented term at a time there was no way to talk about the practice.

    7. Re:Oh, well, that explains everything... by Anonymous Coward · · Score: 0

      "The demise of Borland"

      Here's a good Borland story. At their peak, rocking with the Turbo languages and SideKick, they needed more space, a new campus. When asked what he wanted, top dog Phillipe Kahn said "make it better than Microsoft's". That'll tempt the gods to smack you.

      Oh, here's another. They had a spreadsheet, fighting with 1-2-3 and Excel. They're working on a new version, almost done, almost done, and Kahn announces they've thrown the whole thing out, they're starting from scratch, writing it to be object oriented. Man, what a buzzphrase that was back then, and he drank long and deep. Kahn was giddy with anticipation over how much better the product would be, their dev time would shrink, more than make up for the delay, they'd be way out in front, new architecture, own the market.

      I'll admit Kahn was a colorful character (still is, I hope), but Borland's fall was of his making, not Microsoft's.

    8. Re:Oh, well, that explains everything... by dwye · · Score: 2, Insightful

      > Turbo Pascal and Delphi were popular because 20 or so years
      > ago universities taught Pascal to their computer science students.

      False, or else MS-Pascal would have become equally popular. Turbo Pascal was popular because it only cost $44.95, thus falling into the "buy it for a lark, try it, and toss it if it isn't good" buying space. Turbo C and Delphi, in their first versions, were equally under-priced, compared with $250 or so for MS compilers, and over $500 for some of the really good C compilers.

      The really good, independently produced, compilers died away as Borland's cheapness and MS's standardness (not real standards, THEIR standards, but they wrote the OS, so *surely* they had the best tools? NOT) gradually undercut their niches. The first Turbo versions were crippled from the POV of professional programmers, but were good enough for students, amateurs, etc., and Borland then introduced better compilers for higher prices, until the best version was about as expensive as MS C, but slightly better (following the old GM strategy of cannibalizing yourself, rather than letting competitors do it, by covering all the price points). GNU C also helped kill them, as it was also good enough to make the other compiler companies' offerings redundant.

      > About the time Delphi came out, things moved on
      > and they began teaching C++ which pretty much
      > killed Delphi off.

      Actually, the programming market had only moved from Pascal to C, but Delphi was very wed to Pascal and its idioms. It also ran into the wall, in that the REALLY complicated stuff that professionals did was beyond it, and Borland didn't have a follow-on product.

    9. Re:Oh, well, that explains everything... by sheldon · · Score: 1

      Turbo Pascal's claim to fame was that you could buy it for about $50.

      I seem to recall the first IDE I worked with was UCSD Pascal on an Apple II circa 1980 or so. Although in that case, it was more of an emulator, as UCSD used a virtual machine concept to run your code, similar to what Java does.

    10. Re:Oh, well, that explains everything... by Anonymous Coward · · Score: 0

      I dunno, the pascal vs c++ comparisons in your post don't ring true. Yeah, borland did it first and in many ways did it better, but "it" was mainly interface, gui, and not guts. I agree that the vb-ification and .net-ification of the world was an evil anticompetitive kneejerk ploy intended to squash java and rule the universe. But I do not agree that the oop model was superior to anything before it or after it. Nor do I think that the ms-borland union failed to deliver some actual good things to the heart of the beast. Rather, the rest of the world caught up and surpassed the level of quality and stability that m$ was able to deliver. I actually think the same thing would have happened to the "borland model" even if Anders hadn't gone to ms. You're hard on him just to be hard... you have to admit that c# did increase productivity in the ms environment over what came before in the ms environments.

    11. Re:Oh, well, that explains everything... by Anonymous Coward · · Score: 0

      Agreed, 110%, on ALL accounts you noted... great post, great points, & you've obviously been there (comp. sci.), for QUITE a while.

      I.E.-> Longer than myself it seems, since I started out w/ Turbo Pascal 5.0... but, it's good to see someone here seconding my points (which I've noted here on this website, & others, more than a few times) on A.H.'s contributions to this field.

      I agree, Mr. H. is one of my "intellectual/technical heroes" in this art & science, FOR the reasons you note in fact.

      APK

      P.S.=> Personally, I could care less WHERE he works, & whom for (though the "anti-MS coalition" here @ /. will no doubt state otherwise of course)... as long as he keeps up the great work (& his trackrecord over time is excellent, no questions asked)... plus, the man's very cool, & VERY humble imo - I watched him in a video once, & he said this:

      "We all stand on the shoulders of giants"

      Meaning no doubt, that he could NOT have gotten to where he is, & produced what he has, without the work of those before him... that? That's class! apk

    12. Re:Oh, well, that explains everything... by master_p · · Score: 1

      But the OOP model in Object Pascal/Delphi is exactly the same as in C++. In fact, Borland's GUI framework is used in C++ and in Delphi as is. The C++ code's functions are linked with stdcall calling convention.

      Perhaps you meant to say that the VCL is superior to MFC?

    13. Re:Oh, well, that explains everything... by argent · · Score: 2, Insightful

      I was a 15-year old kid with a copy of Turbo Pascal. A very dangerous thing back then.

      Aha! "Turbo Pascal, the PHP of the '80s."

    14. Re:Oh, well, that explains everything... by EastCoastSurfer · · Score: 1

      Turbo Pascal is what I used to learn OOP programming. Your post just brought me back lol...

    15. Re:Oh, well, that explains everything... by morgan_greywolf · · Score: 1

      Yeah. All you had to do get your application to go directly the video card instead of stdout was to put a:

      uses crt;

      at the beginning of your source file. You needed to do that if you wanted to do anything fancy, like change colors, unless you could be sure that your programs' users were using ANSI.SYS or 'fansi console' or something similar.

    16. Re:Oh, well, that explains everything... by Anonymous Coward · · Score: 0

      ever disassemble delphi code? it produces a _mess_ of recursive calling and leaf functions. very very unoptimized and "ugly" language beneath the surface...

    17. Re:Oh, well, that explains everything... by argent · · Score: 1

      You needed to do that if you wanted to do anything fancy, like change colors, unless you could be sure that your programs' users were using ANSI.SYS or 'fansi console' or something similar.

      ORLY? They didn't have a "uses bios;" option? I always used BIOS or ANSI.SYS. BIOS was kind of pokey but it was plenty good enough for putting up a banner.

      Ironically, within a few years ANSI.SYS was faster than most of the programs that (originally) directly wrote to the video card. I assumed that the video cards or (even later) Windows were emulating the behavior of the original frame buffer, and ANSI.SYS bypassed that emulation.

    18. Re:Oh, well, that explains everything... by Anonymous Coward · · Score: 0

      UCSD pascal on Terek systems predated Turbopascal and was also an earlier IDE.

    19. Re:Oh, well, that explains everything... by Anonymous Coward · · Score: 0

      Why do you think that Microsoft was responsible for the demise of Borland? Honestly, I want to know.

      From my seat it appeared that the fall of Borland was the fault of Borland alone. They enjoyed a long reign of fantastic tools and fantastic market share, but they got lazy and the products stagnated. Their products were good, but not easy enough to appeal to the lowest denominators, which were attracted in droves to Visual Basic. Microsoft didn't really have a comparable IDE until 2002. Borland's response was half-hearted at best.

      I think Borland stopped caring about their development line a long time ago. That is why Anders left, to find excitement and passion, and he was given all of the latitude he wanted to express that at Microsoft which resulted in C# and Visual Studio .NET. I don't think Borland even understood what they lost until they realized that nobody was willing to buy their IDE division from them.

    20. Re:Oh, well, that explains everything... by argent · · Score: 1

      Terak.

      Also, UCSD Pascal on the Apple II.

      "Daddy's playing Pascal. That's where he tries to get as many dots on the screen as he can before he starts swearing."

    21. Re:Oh, well, that explains everything... by Anonymous Coward · · Score: 0

      It's called "brain-drain"...

      Ms has successfully lured away many a dev. from Borland over the past decade++ or so (inclusive of Mr. H's partner, Mr. Chuck Andrejewski (sp?) as well, the co-designer of Delphi, & fairly recently (after Mr. H. that is)).

      Fact is? This is a regular practice by MS, as far as Borland is concerned.

      Ms is great @ this, they recognize talent, & scoop it up, with superior monetary offers/contracts + other incentives, apparently (& the fact that nothing is going to displace MS as #1 out there in the PC-to-Server world, except MS itself, if you ask me! I.E.-> The ONLY THING that can destroy MS, is MS, period.).

      If you haven't heard the term before, in "brain-drain"? Look it up, especially while querying it with Microsoft & Borland (as the second + more quoted search terms in your search query)...

      Try it - you'll see plenty of answers in this regards, & on the same thing I am telling you here now:

      Borland sues Microsoft over brain drain:

      http://news.cnet.com/2100-1023-279561.html

      Just 1 single example that... from May, 1997 in fact (so it goes back, quite a ways) but, it's "just business", & a developer is free to work wherever he likes... & if MS pays more? Who can blame a guy for chasing a buck - especially considering most companies treat their devs like replaceable spark plugs, & once they "burn out" for 70-80 hour work weeks, or their work is done? They're gone...

      ALL, while some "executive" (that doesn't know his head from his behind in this art & science, no less) keeps HIS job, AND gets a raise for "spearheading a project", as well as being the person featured in the trade rags for its success - on which he did JACK SHIT to be blunt about it (especially by way of comparison to the folks in devs that do the actual work involved, which actually takes technical skills, not just "mastery of b.s.", babysitting, & "managing people", give us a break (yes, I have been on both ends professionally, mgt. to dev., & am just telling it how it REALLY is))!

      Man - go figure that last one out, because it truly boggles the mind imo, and goes on all the time in this field... this, is life though, in "KORPORATE AMERIKA", the no longer beautiful, unfortunately, due to the very type of "fake-it-till-you-make-it" types, that use folks that actually know what they're about (where mgt. types usually do not, & have never even done the jobs of their "subordinates", & yet, are considered their "superiors", lol) @ the helm of things nowadays in both 'politiks'. & business.

      APK

      P.S.=> Personally, I think they LOVE "Open Sores" too, & mainly because it establishes an online code database... one that allows them to hire less experienced devs, who merely "bite code" off others projects & call it their own too. Yes, it happens boys. Couple that with ISO documentation of every phase of every employees' job & you see the mechanics for turning us ALL into "replaceable, expendeable assets", even moreso, over time... apk

    22. Re:Oh, well, that explains everything... by Weedlekin · · Score: 1

      "the OOP model in Object Pascal/Delphi is exactly the same as in C++"

      It's the same in _Borland's C++_, which has language extensions (__property, __published, and __closure) to handle the fact that Delphi's object model isn't the same as the standard C++ one.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    23. Re:Oh, well, that explains everything... by master_p · · Score: 1

      No, it's the same as in C++.

      __property is just syntax sugar for get/set.

      __published is just for the IDE; it could be a macro. It does not compile to anything.

      __closure is a functor that encloses a pointer to an object and a pointer to a member function.

    24. Re:Oh, well, that explains everything... by morgan_greywolf · · Score: 1

      There was no 'uses bios'. 'uses crt;' would, by default, make the video go through the video card directly, but you could override this behavior with a 'directvideo := false;' statement. I often did for my BBS utilities, which were pretty much guaranteed to go on systems whose users were using ANSI.SYS or FANSI Console. (FANSI Console is what was faster. ANSI.SYS never improved anything, IIRC)

    25. Re:Oh, well, that explains everything... by FlyingGuy · · Score: 1

      The other reply to your post, has it mostly correct. It was Brain-Drain, I know I watched it happen. MS literally rented a hotel suite and brought their checkbook. They would write checks for amounts they knew that Borland would have a very difficult time matching, and even when they could MS would just add zero's.

      MS could not compete with the talent pool that Borland had put together, and when they realized this they just started writing checks. If you can't beat them fair and square, just hire away their engineers, since money was and is pretty much no object to MS, it was a no brainer for them.

      As I have said before, MS does not want to compete with anyone, they just want to buy the market and then just keep feeding everyone their broken crap

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    26. Re:Oh, well, that explains everything... by FlyingGuy · · Score: 1

      In its assembled state, it could be in ANY order. It is HIGHLY optimized. Un-Assemble just about any executable that is generated by a highly optimizing compiler and it is just about unreadable.

      Compiled code is not for human consumption, it is for machine consumption. The guys that write these things spend HUGE amounts of time pouring over the instruction sets, figuring out the best way to combine them for the fastest computational result. It that looks like total gibberish, with recursive calls and leaf objects and it bears absolutely no semblance to to what it looked like in ANY hi level language, are you really that surprised?

      Every instruction has a cost in terms of resources. The way you generate the fasted, tightest, least memory footprint code is to optimize those costs, and if that means you to some very very strange and seemingly illogical things with the final code that gets generated and it runs well, what do you care? It looks like well laid out C, or Pascal, or C++ or whatever the language and you can maintain it, then the rest is moot.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
  11. er.. wasn't vista V1 dumped because of C sharp ? by Anonymous Coward · · Score: 0

    wasn't vista being written in C# + .net for 2.5 yeats before they gave up and went back to C++ ?

    if thats the case , why the hell would anyone want to use a platform that M$ can't use themselves ?

  12. oh goody.-Mono by Anonymous Coward · · Score: 0

    More like Java. Plus has has been pointed out time and again. The CLR is a standard.

  13. C# is a good language by s6135 · · Score: 2, Funny

    I think C# is one of the better languages I have used. I think M$ has done a good job (as they usually do) of stealing the concept and making it easier for the user (in this case, developer). I do understand that as far as M$ is concerned, it is only meant for Windows. However, that does not diminish the fact that it is a good language. I have friend who work solely on Java. Their target deployment servers are linux. But they do all their development on Windows.

    1. Re:C# is a good language by bigfam · · Score: 1

      Their target is Linux and they develop on Windows? I don't hear of that much...

      In my opinion C# is not that great a language, but my background is C/C++/Objective-C, not Java. As I come across more of the strange constructs in the language, my opinion is that it is not really "designed" anymore as it is trying to add "let's make this one thing look more simple" at the expense of consistency.

      I guess many people use it and like it, but I am not all that impressed with it...

    2. Re:C# is a good language by s6135 · · Score: 1

      What part of C# do you not like?

    3. Re:C# is a good language by SimonGhent · · Score: 0, Troll

      What part of C# do you not like?

      With most folks on /. the name on the box!

      No need to actually try it, they already have an opinion.

      Real world is that businesses use Windows, for good or bad.

      If you have an IT career you pretty much have to use Windows. If you're a professional coder 98% chance that you'll be using Microsoft development tools and some of them are pretty good.

      --
      simon
    4. Re:C# is a good language by bigfam · · Score: 1

      Actually, I don't remember off the top if my head. Most of the items are new with 3.0, though some were in the prior version. They were little things, but having studied programming languages in my past they struck me as being out of place and/or redundant.

      I just remember getting the impression that it was designed with a purpose to start and that as time goes on there are people at MS saying "hey, this would be a more cool way to do this than the way we already have to do it." and getting the language changed to add the coolness to it.

      The items were small enough that they don't stand out in my mind and I didn't really feel like looking them up... :)

    5. Re:C# is a good language by Anonymous Coward · · Score: 0
      • No checked exceptions.
      • No multiple inheritance. See Eiffel for the right way to do inheritance.
      • No bounded arithmetic (unless your bounds are certain powers of two). See Ada for the right way to do math.
      • Delegates are an error-prone solution to the "support many simple interfaces" problem.
      • Character should not be a type. Strings should normally be handled as combining character sequences, because almost nobody is enough of a Unicode nerd to avoid making bogus substrings that break the rules.
  14. One way of looking at it by Anonymous Coward · · Score: 0

    one of computer programming's most widely used languages

    C, C++, Java, javascript, python, perl and PHP are widely used languages. Pascal was an also ran back in the day, C# is the modern day equivelent of visual basic and unlikely to gain serious traction outside Windows development. The world wasn't exactly crying out for a Java clone.

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

    The Roctothorpe!

    *insert headbanging graphic here*

    1. Re:You're missing the most radical language of all by allacds · · Score: 1

      [offtopic]
      Reminds me of a type of cymbal that was devised by one of the drum/cymbal companies, Sabian, a number of years ago. It's called a "Rocktagon".

      It was actually an octagonal piece of cast metal. Sounded like utter garbage. I don't play drums regularly anymore, but I hope to God they stopped making it...
      [/offtopic]

    2. Re:You're missing the most radical language of all by ichthyoboy · · Score: 1

      \m/

    3. Re:You're missing the most radical language of all by JamesP · · Score: 1

      Let me be the first to invent then O# or Ooctothorpe, you see the Oo, this means it's object oriented :D

      --
      how long until /. fixes commenting on Chrome?
  16. c# by Pants75 · · Score: 1

    and a very nice language it is too! (coming from someone who pays the bills using it) I've still got a soft spot for c++ but I haven't had to use it in an age, and probably wouldn't unless I needed absolute technical control over a project, for perf reasons.

    1. Re:c# by Is0m0rph · · Score: 1

      Same here. I've been doing a large project over the last 14 months in C#. I really like it.

    2. Re:c# by Seakip18 · · Score: 1

      What was the best way you learned to use it? I'm working through an O'Reilly book updated with 3.0 but would be much more open to listening someone who uses it to feed the family.

      --
      import system.cool.Sig;
    3. Re:c# by Pants75 · · Score: 1

      Just picked it up and ran with it. The language itself is not so different that it requires actual learning, unless you are a novice programmer. In that case I would suggest that you read and do read and do read and do until the concepts are familiar, or get enroled in a entry level college course. The only thing in c# 3.0 that was a bit different was linq, which I love when its used as linq-to-objects and linq-to-xml but abhore when it's linq-to-sql! WRONG WRONG WRONG! Sql belongs in the database, packaged up behind an sp, not scattered through your code. *Shudder* What level of experience do you have, that really determines how I would sugest you go forward. Saying that, there is a lot to say for just getting your hands dirty on some toy projects.

    4. Re:c# by Seakip18 · · Score: 1

      Sounds good. I graduated recently but have been programming full-time for a little over a year now. I'm pretty familiar with Java and C++. C#, so far, is pretty easy on the eye to learn and does a couple of nifty things that Java doesn't.

      I just figure the only reason you would get paid for it is doing .NET development, which I've never dealt with before.

      --
      import system.cool.Sig;
    5. Re:c# by Pants75 · · Score: 1

      Yeah, I'm a full time .net developer, mainly asp.net but some desktop stuff as well. I don't know what to tell you, you've got the education already. Learning the language is the almost trivial compared to learning how to build systems that don't stink. Thats where the money is too. But there are books for that too I guess.

  17. 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);
    1. Re:C# Usage by andy19 · · Score: 2

      It also says that SQL is a programming language.

    2. Re:C# Usage by Anonymous Coward · · Score: 0

      The "9th most popular" result you quote above is only according to langpop.com's interpretation of "Yahoo Search Results". It all comes down to how you define how "popular" a language is.

      If you scroll down the page a bit, langpop.com have a "Normalized Comparison" of all the other result sets, which shows that Coctothorp (I hope this catches on!) is more like 11th that 9th.

    3. Re:C# Usage by Liquidrage · · Score: 1

      And yet when you look at actual jobs, it's at or near the very top well ahead of at least 6 "languages" on your list.

      Oh noes!

    4. Re:C# Usage by Abcd1234 · · Score: 1

      Umm... it *is* a programming language. Or were you not aware of that fact?

    5. Re:C# Usage by Liquidrage · · Score: 1

      Wow, that list uses /. as far as it's rankings. Odd considering /. has an agenda and pushes far more Ruby and Python information then the market would normally dictate.

    6. Re:C# Usage by andy19 · · Score: 1

      SQL...Structured Query Language.
      Or were you not aware of that fact?

    7. Re:C# Usage by sheldon · · Score: 1

      I just did the all important Monster.com search in my state. There's overlap in results, as a search for Java also yields Javascript results. If one subtracts those, Java jobs are about equal with C#.

      Java: 178
      C#: 91
      ASP: 102
      JavaScript: 85
      VB: 83
      ASP.NET: 75
      C++: 63
      VB.NET: 63
      C: 54
      Perl: 37
      Flash: 17
      PHP: 15
      Cobol: 8
      Python: 7
      Ruby: 4
      Silverlight: 4
      Delphi: 1

    8. Re:C# Usage by Abcd1234 · · Score: 1

      SQL...Structured Query Language.

      Ahh... so then Java must therefore be a branch of coffee?

    9. Re:C# Usage by Dun+Malg · · Score: 1

      Umm... it *is* a programming language. Or were you not aware of that fact?

      I'd say that's highly debatable. One can, in theory, write "programs" in SQL, but no one ever really does. It's more like a scripting language that gives people programming in real programming languages a common interface for retrieving database contents.

      --
      If a job's not worth doing, it's not worth doing right.
    10. Re:C# Usage by Abcd1234 · · Score: 1

      Can you execute expressions that consume data (inputs) and generate results (outputs)? Then it's a programming language. Is it turing complete? No. But I wasn't aware that was a requirement of being classified a "programming language".

    11. Re:C# Usage by Dun+Malg · · Score: 1

      Can you execute expressions that consume data (inputs) and generate results (outputs)? Then it's a programming language. Is it turing complete? No. But I wasn't aware that was a requirement of being classified a "programming language".

      Come on, that's a serious weaselly "yeah, well technically..." answer. Granted, it's not, by the very literal meaning of the words "programming language", necessary for a language to do anything other than tell a [machine|software] how to do something. Not being Turing Complete is a pretty serious strike against it, however, for the category of "Languages People Who Can Program Consider Programming Languages"*

      * three categories:

      1) those who include every language under the sun, even when you couldn't (or reasonably wouldn't) write a stand-alone application with it (SQL, the scripting language for my programmable TV remote, etc)

      2) those who draw the line at being able to implement a ROT-13 encoder with no unreasonable hoop-jumping, Turing-Completeness, etc.

      3) those that say that if it can't be used to write and compile its own compiler it's Not A Real Programming Language, and other similar nuts.

      1) and 3) represent the ends of the bell curve. Come join the rest of us at 2) where the actual discussion is happening.

      --
      If a job's not worth doing, it's not worth doing right.
    12. Re:C# Usage by Abcd1234 · · Score: 1

      Come on, that's a serious weaselly "yeah, well technically..." answer.

      Weasely my ass. It's explicit and precise, not to mention extremely natural. Just because it's broader than you'd like, doesn't make it invalid.

      Not being Turing Complete is a pretty serious strike against it,

      Umm... why?

      * three categories:

      Ah, I see you've invented three arbitrary groupings based on your own prejudices. How nice for you. Unfortunately, you still haven't justified your position.

      What is a programming language but a method by which humans instruct computers to perform tasks? And, gee wiz, what do you do with SQL? Instruct a computer, specifically a database, to perform tasks, specifically extract data from said database based on a set of criteria, and perform calculations on that data. Sounds pretty "programmy" to me.

  18. Re:er.. wasn't vista V1 dumped because of C sharp by nschubach · · Score: 1
    --
    Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
  19. Meh. It's alright. Not great yet. by Seakip18 · · Score: 2, Funny

    I'm a little surprised at the ease to attack C# but not much. It actually does a few of the things that C++ folk would like over Java, but I can understand the comparisons with Java.

    Anyways, I've been fooling around with it for a while via an O'Reilly book and so far it's not too bad. That said, I don't see it much use beyond the Windows .Net Framework. Then again, that's all employers seem to want to see on the resume nowadays when it comes to development. And who can blame them?

    I do have a cause for concern though....

    Now, you can argue that we're not obviously open source or anything, but the language is standardized, and the entire specification is available for anyone to go replicate. Mono has done so, and I think Mono is a fantastic thing. I don't know [if] you're familiar with Mono, but it's an implementation of the C# standard and the CLI standard (which is effectively the .NET standard) on Linux, built as an open source project. And they're doing great work and we talk to them a lot and I think it's a super thing.

    The fact it feels like he's faking the enthusiasm, as he did for most of this dumb interview, is slightly scary. The followup question confirms that

    And I guess they couldn't have done that had you not put the specifications out there?

    Well, they could have but it would have been a heck of a lot harder and it would probably not be as good a product. You can go reverse engineer it... they have reverse engineered a lot of the .NET platform... but all of the core semantics of the language, they were part of the standardization process.

    You know most recently we've created Silverlight, which is our browser hosted .NET runtime environment, and the Mono guys have built a project called Moonlight which is an implementation of Silverlight that is officially sanctioned by Microsoft that runs on Linux and other browsers. It's a good thing.

    Lastly...

    It is possible to build alternate implementations. We are not building .NET for Linux, because the value proposition that we can deliver to our customers is a complete unified and thoroughly tested package, from the OS framework to databases to Web servers etc.

    Ummm....just because it's possible to build an alternate implementation doesn't mean it will work the same way. It would absolutely kill me to use a language that implements two things differently because MS wants to hold back special class $VERY_IMPORTANT_FUNCTION that is the paramount to the language, such as database or socket connectivity.

    I seriously hope that Java being opened helps chop block this. With open code, my hope is more places will buy into the language, showing MS that a "industrial-strength" language can be free.

    --
    import system.cool.Sig;
    1. Re:Meh. It's alright. Not great yet. by cryptoluddite · · Score: 2, Interesting

      The fact it feels like he's faking the enthusiasm, as he did for most of this dumb interview, is slightly scary.

      Of course Anders Hejlsberg is faking enthusiasm... just like for instance Bjarne Stroustrup about C++ and C++0x.

      In both cases the language features they chose to include cause incredible amounts of complexity. At first they are all excited about all these cool features... but then when they get to the gritty, like for instance getting C# to beat Java in performance (it doesn't come close), they start tearing their hair out.

      For instance, one big reason Java did not include 'real' generics is because it had never been done before in a major statically-typed virtual machine and the interaction with other parts was not understood or simple. C# just threw it in, and now they have problems like not being able to inline more than one method deep, and only ridiculously simple methods (less than 32 bytecodes, no branches, etc). Another reason was backward compatibility, but see discussions with Bracha for instance about implementation if you think that was the main reason.

      Designers of languages like Smalltalk are enthusiastic forever. Designers of languages like Java are workers, they get the job done and done well but aren't crazy excited about it. Designers of languages like C++, C# go mad and in their warped minds 'complexity is simplicity' and they have to feign enthusiasm so they don't have to admit their mistakes.

    2. Re:Meh. It's alright. Not great yet. by ozphx · · Score: 2, Funny

      So if something is useful, but has a performance hit when used, it should be left out?

      Dang. There goes my bright idea about "methods" with all their wasteful pushing and popping before jmps...

      --
      3laws: No freebies, no backsies, GTFO.
    3. Re:Meh. It's alright. Not great yet. by beeradg · · Score: 1

      Yeah, last time I checked more companies already bought into Java. As a few people have pointed out in this article alone, Java is either the number one or a close second.

    4. Re:Meh. It's alright. Not great yet. by shutdown+-p+now · · Score: 2, Interesting

      In both cases the language features they chose to include cause incredible amounts of complexity. At first they are all excited about all these cool features... but then when they get to the gritty, like for instance getting C# to beat Java in performance (it doesn't come close), they start tearing their hair out.

      References? I don't see anything about C#-the-language that would cause it to be slower than Java in any reasonable implementation. If anything, value types and methods being non-virtual by default gives it an edge. Delegates are significantly faster that anonymous classes when it comes to implementing the Observer pattern (because implementation of delegates works directly with raw function pointers). And as far as runtimes go, .NET GC has always favored better in my tests than Java GC, by about 15-20%.

      For instance, one big reason Java did not include 'real' generics is because it had never been done before in a major statically-typed virtual machine and the interaction with other parts was not understood or simple. C# just threw it in, and now they have problems like not being able to inline more than one method deep, and only ridiculously simple methods (less than 32 bytecodes, no branches, etc).

      Inlining limitations in .NET have nothing to do with generics at all - they are just thrown in "for good measure", and are often conscious design decisions (because, you know, sometimes inlining decreases performance). Most of them were in place before generics, in fact. Some (such as no inlining for methods taking structs as argument) were just silly, but gladly they finally fixed it in 3.5 SP1.

      Meanwhile, if we're still talking about performance, try comparing the one of java.util.ArrayList<Integer> vs System.Collections.Generic.List<int>. And then come tell us why .NET generics suck because they are slow...

    5. Re:Meh. It's alright. Not great yet. by cryptoluddite · · Score: 1

      Inlining limitations in .NET have nothing to do with generics at all - they are just thrown in "for good measure", and are often conscious design decisions (because, you know, sometimes inlining decreases performance).

      On the contrary, CLR's bytecode is polymorphic. For instance, 'add' can add any type of objects so the VM has to maintain complete knowledge of the types of objects on the stack. That means code can't be interpreted efficiently, and that to get deep inlining the inlined version has to work with ALL types that an object could possibly be. Real generics just add to this problem by making more actual types, and more information to maintain. In other words, CLR has to know whether the object is a "List<int>" or a "List<String>".

      Java on the other hand only needs to verify the code on load and then it doesn't need to maintain type state of the stack at all times, so it can write inlined code that works for any object, whereas CLR has to have inlined versions that track types -- that is the reason why CLR can't inline, and it won't ever be fixed, and real generics makes it worse.

      Meanwhile, if we're still talking about performance, try comparing the one of java.util.ArrayList vs System.Collections.Generic.List. And then come tell us why .NET generics suck because they are slow...

      I just told you. CLR can't inline effectively, and real generics make the problem worse. The vast, vast majority of instructions in any program operate within a loop. The 'slowness' of ArrayList<Integer> is a narrow example and easily, if clumsily, solved with an 'ArrayListInteger', but inlining affects everything. It is harder to see why all of your program is slower rather than one small part being much slower.

      And as far as runtimes go, .NET GC has always favored better in my tests than Java GC, by about 15-20%

      A) unless you have 'permission' from Microsoft, you are violating their license agreement by posting benchmark results.
      B) I doubt your tests are representative, but share the code if you think they actually say something.

      If anything, value types and methods being non-virtual by default gives it an edge.

      Non-virtual methods are the same thing to the VM as final methods. All Java methods are considered 'final' until code is loaded that overrides them. So, no, there is zero benefit from having methods be non-virtual by default. But you are in good company, since even Anders didn't know this (see interview with Bill Venners).

      Value types help far less than inlining.

      Delegates are significantly faster that anonymous classes when it comes to implementing the Observer pattern (because implementation of delegates works directly with raw function pointers).

      There's more opportunity to inline inner classes that delegates. Delegates are a cute features, not a performance advantage.

      For instance, Java reflection works by actually loading a class for Method objects. This class can then be inlined, meaning that after the initial creating and loading the reflection is ridiculously fast.

      Again, inlining > all those .NET cute things you mention. Inlining in CLR is broken and always will be.

    6. Re:Meh. It's alright. Not great yet. by shutdown+-p+now · · Score: 1

      On the contrary, CLR's bytecode is polymorphic. For instance, 'add' can add any type of objects so the VM has to maintain complete knowledge of the types of objects on the stack.

      That's just wrong. "add" is polymorphic alright, but only in a sense of static polymorphism as used in FP, and even more restrictive than that - when there is an "add" instruction on the IL instruction stack, the types of both operands above it have to be known at that point - otherwise the IL is invalid. You cannot, for example do something like the following pseudo-code: "push 1; if (random > 0.5) push float(123.456) else push int(0); add". It's not valid IL, because at the point of "add", the stack is in an ambiguous state - it can have two ints on top, or an int and a float, and "add" would behave differently in these cases. This is simply not allowed.

      And, of course, "add" cannot add any types of objects. It can only add a very limited set of numeric types.

      That means code can't be interpreted efficiently, and that to get deep inlining the inlined version has to work with ALL types that an object could possibly be. Real generics just add to this problem by making more actual types, and more information to maintain. In other words, CLR has to know whether the object is a "List{int}" or a "List{String}".

      Once again, wrong. At the moment of the call to a generic function (or a method of a generic type), the actual type of the instance it is called on is known precisely - it cannot be "either a List{int} or a List{string}", it is always specifically "List{int}", because of the static typing. Since there are no unknowns, the generic call will look precisely the same as a non-generic one.

      Granted, you can have a bit of explicit polymorphism like that:

      void Foo<T>(IList&lt;T&gt; l, T x) where T : Base { l.Add(x); }

      But even in that case, for every given call, the actual types are all known at compile (or rather, JIT) time - so the JITter will istantiate Foo{T} for a given (known T), and then it will know precisely what kind of Add to call.

      Java on the other hand only needs to verify the code on load and then it doesn't need to maintain type state of the stack at all times, so it can write inlined code that works for any object, whereas CLR has to have inlined versions that track types -- that is the reason why CLR can't inline, and it won't ever be fixed, and real generics makes it worse.

      Java doesn't "verify" generic code on load at all - it only verifies it at the compilation stage (and even then there are plenty of loopholes), and throws in a couple of casts for good measure. If anything goes wrong at run-time, one of those casts will blow up. In contrast, .NET generics actually are verified for correctness and type-safety by the loader.

      And of course CLR doesn't have to have "inlined versions that track types" - it generates a different version of the type for every combination of type parameters, and then inlines them individually! It is really the same way C++ templates work, only in this case it's the JITter that does the inlining, not the compiler. But the principle is effectively the same, and aggressive inlining of generic methods by .NET JIT can be easily observed in practice, since you can easily view the JIT output in either VS debugger or windbg+SoS. If you ever actually did that, instead of theoretizing, you'd know that, given a List{T} and a foreach loop over that, .NET will happily inline all operations with the enumerator that it involves - and will produce different code for every different T.

      unless you have 'permission' from Microsoft, you are violating their license agreement by posting benchmark results.

      I am not in a jurisdiction where it matters.

  20. C-sharp or C-pound (or something else?) by Atraxen · · Score: 1

    I'm just curious how C# is said - anyone?
    Thanks!

    --
    Be careful of your thoughts; they could become words at any minute...
    1. Re:C-sharp or C-pound (or something else?) by CaseCrash · · Score: 0

      It's pronounced c-sharp

      --
      No, that link you posted to a web comic we've all seen a hundred times is not "obligatory."
    2. Re:C-sharp or C-pound (or something else?) by andy19 · · Score: 1

      Let's just call it D-flat and get rid of all the confusion ;)

    3. Re:C-sharp or C-pound (or something else?) by glgraca · · Score: 1

      Every well-tempered programmer knows their C# from their Db.

    4. Re:C-sharp or C-pound (or something else?) by Atraxen · · Score: 1

      This thread's humor has fallen flat... ;*)

      --
      Be careful of your thoughts; they could become words at any minute...
    5. Re:C-sharp or C-pound (or something else?) by isorox · · Score: 1

      I'm just curious how C# is said - anyone?
      Thanks!

      C-pound would be C£

      I usually refer to an "octothorpe" as a "hash", so it's "C-hash", or CASH for short.

  21. remember the carnagie melon self guided vehicle? by Anonymous Coward · · Score: 0

    There was a DARPA challenge not too long ago for a team to build a self guided vehicle. Roboticly automated to avoid obstacles, readjust heading, etc. Carnagie Melon won the competition. One of the loosing teams had a vehicle that would just loose its instructions and drive off in a straight line forcing the team to hit the kill switch. After a month or so of line by line code inspection the team discovered that the C# code they used had inherent memory leaks and the problem was not repairable.

    We use history to look back on our mistakes and choose an educated path toward the future. That being said when is microsoft going to fix the problems with its existing offerings instead of pulling the wool over our eyes in advertising the next updated solution. ie internet explorer 6 -> 7, vista -> NT7 and ..... oh yeah everything they sell.

  22. A note on F# and Ocaml by Cultural+Sublimation · · Score: 3, Interesting

    I think that one of the most interesting developments of C# and most mainstream programming languages is that they keep borrowing long-established elements of functional programming.

    All and all this is a positive development. The only irritating aspect about it is the number of Microsofties who think M$ is inventing new stuff and being "innovative(TM)". A good example of this is F#: while the language is basically an adaptation of Ocaml to the .NET environment (to the point that simple programs are indistinguishable), I've seen plenty of people touting F# as the best thing since sliced bread, but completely failing to mention its roots, or the fact that Ocaml is a well-established language with a long history, and perhaps the most successfull (in terms of actual usage in the industry) of functional programming languages.

    (Though I give credit to the interviewee in this particular article for being an exception to this rule, and for acknowledging F#'s pedigree).

    Incidentally, this has long been a burning question for me: why is a language like Ocaml ignored to such an extent within the mainstream open-source community? It already has a small but vibrant community, excellent coverage in terms of libraries, performance comparable to C++, and the safety and cleanness that comes with functional programming. I even see Linux people excited with F#, seemingly oblivious to the fact that we *already* have a language better than F# that runs natively under Linux!

    (Note: I consider Ocaml to be superior to F# because in the process of transforming Ocaml into F#, Microsoft removed two of the most interesting and powerful features of Ocaml: functors and polymorphic variants)

    1. Re:A note on F# and Ocaml by Ostracus · · Score: 1

      "I think that one of the most interesting developments of C# and most mainstream programming languages is that they keep borrowing long-established elements of functional programming."

      Say LISP and stand back and watch the fireworks.

      --
      Shai Schticks:"You don't make peace with friends, you make peace with enemies"
    2. Re:A note on F# and Ocaml by ozphx · · Score: 1

      I'd say that grabbing a functional language and integrating with the CLR is innovative. The CLR integration is why people get excited about F#.

      --
      3laws: No freebies, no backsies, GTFO.
    3. Re:A note on F# and Ocaml by shutdown+-p+now · · Score: 1

      All and all this is a positive development. The only irritating aspect about it is the number of Microsofties who think M$ is inventing new stuff and being "innovative(TM)". A good example of this is F#: while the language is basically an adaptation of Ocaml [inria.fr] to the .NET environment (to the point that simple programs are indistinguishable), I've seen plenty of people touting F# as the best thing since sliced bread, but completely failing to mention its roots, or the fact that Ocaml is a well-established language with a long history, and perhaps the most successfull (in terms of actual usage in the industry) of functional programming languages.

      I'm not sure about people in general, but pretty much every official statement from MS on F#, or a blog post from one of F# team members, mentions that OCaml was a basis for F#.

      Note: I consider Ocaml to be superior to F# because in the process of transforming Ocaml into F#, Microsoft removed two of the most interesting and powerful features of Ocaml: functors and polymorphic variants

      I miss functors too, and OCaml's structural typing even for classes. However, I also like F# active patterns, overloaded operators (don't you hate that in OCaml that "+" is strictly integer addition, and you have to use "+." for floats? what about genericity?), lazy sequence generators, and first-class quoting (and the associated metaprogramming capabilities). In the end, I consider it an even match - but with F#, I have any .NET library immediately accessible for reuse, and that tips the balance.

      Overall, though, I think that F# added as much as it removed to OCaml, and so it can be considered innovative in its own right.

  23. RunUO is written in C# by Alari · · Score: 1

    For anyone interested in programming in C# but don't know any good reasons to actually get into it, I give you one: http://www.runuo.com/ - You're welcome. =)

    --
    I use Windows... like a two dollar wh.. why don't I just go ahead and not finish that sentence.
  24. Really ? by jalet · · Score: 1

    > one of computer programming's most widely used languages -- C#

    Any link to back this ?

    (no, I didn't RTFA)

    --
    Votez ecolo : Chiez dans l'urne !
  25. Here's some data that may help by SaDan · · Score: 2, Informative
  26. Re:remember the carnagie melon self guided vehicle by mc2thaH · · Score: 2, Informative
    I believe you're speaking of this story that was covered on slashdot. The problem was not an issue with C#, but an issue with Princeton's code. They were keeping references to objects, which in turn kept them from being released for garbage collection.

    After a month or so of line by line code inspection the team discovered that the C# code they used had inherent memory leaks and the problem was not repairable

    Actually, they did fix the problem... since it was an issue with their code and not C#. C# was doing what it was supposed to.

  27. Why C# by Animats · · Score: 1

    First of all, C# is a Java competitor, not a C/C++ competitor. It has an underlying layer of middleware, garbage collection, and just-in-time compilation, like Java. It exists because Microsoft didn't like developers using a Sun-developed standard. Something was needed for business application developers that wasn't as hard as C/C++, and was closely tied to a Microsoft platform. That's C#.

    We still don't have a good replacement for C or C++. The big problems with C are 1) the language doesn't know how big arrays are (the cause of most of the buffer overflows in the world), 2) the language has no clue about concurrency or locking (the cause of most of the race conditions in the world). Those aren't fundamental problems of a low-level language; Ada and Modula 3 addressed both problems.

    C++ doesn't fix either of those problems; it just papers them over with a layer of templated wallpaper. The mold underneath keeps seeping through the wallpaper. C++ has hiding without safety, the only major language in that space.

    The original article has some interesting points. It had never occurred to me that a programming language should be designed to support command completion. Personally, I think an environment that displays the parameters of a function when you start to type a call is more useful.

  28. Python by scorp1us · · Score: 1

    I gotta say it - Python (and Ruby) is the best language to date. I don't see why you'd ever invent another language that scores lower on the benchmarks of what makes a language good.

    Those are:

    • Readability - anyone should be able to sit down and start hacking, since 90% of software development is on code that already exists.
    • Maintainability - The code should not devolve into an unmaintainable mess. While eningerring practices are dominant, the language should exert some pressure to keep it maintanable
    • DRY - (Don't repeat Yourself) - C# still has headers to be maintained.
    • Platform Independence - You should not be locked into a hardware or software platform. (.Net is not 100% cross platform, even with Mono)
    • Industry acceptance - the language should not put you in a corner in terms of your possible labor pool.

    Those are just off the top of my head.
    Speed isn't a concern because it is often cheaper to buy faster hardware than it is to use an unproductive language. When you think about it, one day of developer time can justify a CPU upgrade that is 2x as fast. How many hours a year do you spend updating headers, tracking down bad pointers, missing memory de-allocations?

    --
    Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    1. Re:Python by Shados · · Score: 1

      C# still has headers to be maintained.

      Huh, what? No it doesn't o.O

    2. Re:Python by scorp1us · · Score: 1

      You got me on that one. I was thinking of C++/CLI, which is absolutely horrible. Unfortunately, I've had to interface legacy C++ and C# code.

      Still, when I read about C#, feature after feature was in the right direction, but it did not improve on Python. (Granted it is better than Java) So I have to give a wag of my finger for coming up with yet another language.

      But damn, that F# language is ugly. I have no idea why they are inventing yet another language when python already supports functional programming.

      Why do we have to keep fracturing the developer space by segregating people into what languages they know? Before .Net everyone had moved towards a POSIX compatible system, then .Net comes out and does away with all that cross platform work. I think having a variety of languages is a good thing, but why is Microsoft inventing new languages that don't improve on anything?

      I have to think it is about control. As long as they keep inventing these new libraries and langauages, they can keep people locked into using their products. Even IronPython has the side effect of tying you to .Net libraries, a Microsoft product. Given the rise of Linux and OSX, that is becoming a bigger and bigger stumbling block.

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    3. Re:Python by poached · · Score: 1

      I would use python for development if there was an IDE as good as Visual Studios for development. Don't even mention IronPython because that's just not ready.

    4. Re:Python by Shados · · Score: 1

      But damn, that F# language is ugly. I have no idea why they are inventing yet another language when python already supports functional programming

      C# 3.0 also supports functional programming. But its not a primarly functional language. There's a lot of problems that are more easily solved in F#. The trick is to solve these problems in independent components/objects/librairies, and import them in a language that is better at handling the rest of the problem. No different than how even in Python, some problems will be solved in, let say, C, and then glued up with Python (since you often don't want to do the whole app in C)

      Why do we have to keep fracturing the developer space by segregating people into what languages they know?

      the .NET platform, and more and more the Java platform too, are making languages irrelevent. I know C#, I know Java...now if you toss Scala or Groovy at me, if you toss IronPython, VB.NET or F#, it doesn't matter. Language syntax is the easiest part to learn, the platform is where its at. So if nothing else, its bringing people together. You learn the platform, use whatever language fits the project the best, and the knowledge will be transfered.

      Before that, the language was tied to the platform, so your language choice was almost made for you (it stil is to some extent because of how few bare metal languages there are, but its a smaller subset, fortunately).

      For the rest...just understand that languages are insignificant., especially on their surface. Its when you go deep in the functionalities and the platform that you start understanding. Thats why Java's promise of platform independence was always taken as a joke: sure, like with any other platform independent language (PERL, Python, Ruby, Java itself, whatever), 90% of the job can easily be made platform independent. Until you need to get something serious done (something that forces you to go deeper in the OS... let say an installer?), then you end up tied to the OS anyway.

      An environment that makes that easy becomes crazy important. A language that doesn't easily let you interface with COCOA easily (there's a few...I think Python even is one, yes?) is worthless if you plan to -sell- an OSX app, to take a non-Windows example. Thats why Windows shops are attracted to .NET like flies. All that integration works is very very easy to do with it. Some stuff doesn't require that. Thats why even on Windows .NEt doesn't have a 100% marketshare :)

      Oh, and "before .NET everyone had moved to POSIX" what? I think you forgot how insanely dominant VB6 and MFC were. Heck, those -still- compete with .NET after so long.

    5. Re:Python by zuperduperman · · Score: 3, Insightful

      Here are some problems with Python:

      * significant whitespace does not play well with common development practices (merging, diff'ing, copying, pasting code, esp. on web pages)
      * GIL makes it very hard to scale or completely unscalable in some situations
      * no support for static typing makes large projects harder to manage
      * not truly cross platform - a lot of common libraries are implemented in C and thus you have to install native code for them to work - bad luck if there isn't a binary for your platform.
      * no common standardized GUI toolkit
      * poor commitment to backwards compatibility - Python 3k is going to break compatibility in major ways as did releases before it
      * awkward and ugly object oriented semantics (declaring "self" in class methods, ugh)
      * poor IDE support
      * poor adoption - not sure what makes you think the labor pool for Python is better than other languages

      I'm sure a dozen python supporters will jump up and object to all these - there is hardly anything revolutionary about these criticisms and most of them have been fought to death in enormous flame wars in the past. But the end result is, Python is not great for a lot of "enterprise" type situations due to these things (and you will quickly see how sensitive pythonistas are to this snub since they constantly mock the word "enterprise" on mailing lists etc.). In other situations it can be brilliant.

    6. Re:Python by scorp1us · · Score: 1

      * If your tools are broken by whitespace, your tools are borken. That should be obvious.
      * Use multiple processes.
      * static/dynamic tying is a debate for another day
      * C isn't crossplatform? What platform doesn't have a C compiler? If your platform doesn't have a C compiler, your platform is broken. Shat should be obvious.
      * I thought choice was good? Having several means you're not locked in. Qt, Tk, GNOME, etc, all have Pyhton bindings. I actually really like PyQt
      * 2.6 contains the enhancements in a 2.5-compatible way. That's your backwards compatibility.
      * 'self' is not hard-coded. You can use any variable, like 'me' or 'my'
      * It's a text file. If your editor can't edit a text file, your tool is broken, not the language.
      * Adoption? It's better than C#, which had no labor pool until a few years ago and its got a _ton_ of libraries, including platform dependent ones.

      * tools like 'sip' ensure you can bridge C++ space and native code.

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    7. Re:Python by scorp1us · · Score: 1
      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
  29. Objective-C is what you are looking for by SuperKendall · · Score: 2, Informative

    We still don't have a good replacement for C or C++. The big problems with C are 1) the language doesn't know how big arrays are (the cause of most of the buffer overflows in the world), 2) the language has no clue about concurrency or locking (the cause of most of the race conditions in the world).

    Objectve-C fits both criteria. You use the found class NSArray for pretty much everything so you don't get buffer overflows, and you have a decent threading model with runloops and Java style @syncronized statements for threading, along with a lot of useful functionality to do common things with threads (like detaching a thread, having a thread run a method after a short delay, etc.). Further helping desktop aps at least is garbage collection, but even when you can't use that the memory model of release/retain is still more easy to use and less prone to having issues.

    And, you can always fall back to C or C++ as needed.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Objective-C is what you are looking for by shutdown+-p+now · · Score: 1

      Objective-C is not a proper replacement for C++ until it gets proper parametrized generic types (for strongly typed collections etc), and something to prevent name collisions (namespaces, packages, etc). Some form of closures would also be nice to have, seeing as how even C++ is getting it now in the next version of the Standard.

    2. Re:Objective-C is what you are looking for by SuperKendall · · Score: 1

      Objective-C is not a proper replacement for C++ until it gets proper parametrized generic types (for strongly typed collections etc),

      The original post was all about very practical concerns in real world programs that cause problems.

      Strong typing is a nice-to-have - or I would argue, only nice to have for some. The whole point of objective C is the weak typing, and you can type what you need with protocols. Frankly I prefer a weakly typed language over a strong one, and it's not as obviously a cause of real world problems as things like buffer overflows. Asking for a strongly typed feature in a weakly typed language makes no sense to me, and seems to overlook different ways the same ideas can be implemented in a different system.

      What do you think you can't do today with collections in Objective-C?

      and something to prevent name collisions (namespaces, packages, etc)

      I agree with that much more but disagree it's a problem in practice.

      Some form of closures would also be nice to have,

      Blocks.

      Coming in Snow Leopard.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    3. Re:Objective-C is what you are looking for by glebd · · Score: 1

      Closures (or "blocks") are apparently coming to Objective-C.

    4. Re:Objective-C is what you are looking for by shutdown+-p+now · · Score: 1

      Strong typing is a nice-to-have - or I would argue, only nice to have for some. The whole point of objective C is the weak typing, and you can type what you need with protocols. Frankly I prefer a weakly typed language over a strong one, and it's not as obviously a cause of real world problems as things like buffer overflows. Asking for a strongly typed feature in a weakly typed language makes no sense to me, and seems to overlook different ways the same ideas can be implemented in a different system.

      I wouldn't say Objective-C is entirely weakly typed - it does have type declarations, after all, and type checking, though you can opt-in into duck-typing all the way through if you want.

      Regarding collections in particular: I do believe that it is a language deficiency if I can declare a variable as being an int specifically, or a static array of ints, but not a dynamically growing array or a dictionary of ints, and I have to box/unbox all primitive types manually. It was extremelly annoying in Java pre-1.5, and it is still annoying in ObjC. ObjC has it worse because Java didn't have value types, while ObjC does have them - and if I want to put my own custom struct into an NSArray, I still need to write a class wrapper around it. It doesn't sound like a big deal, but manipulations with collections are something that's very prevalent in production code, and they should be as clear and concise as possible, with no unnecessary boilerplate. Well-designed generics are a solution to that problem, and it works okay even in Java (despite all the claims that Java generics are overengineered and overall badly designed), and wonderfully in C#.

      I agree with that much more but disagree it's a problem in practice.

      I understand that prefixes are a workaround, but it's just that - a workaround. The problem is quite real, as anyone who worked with C or pre-namespace C++ dialects can attest - you may not run into a nameclash in a while, but when you do, it is a major headache. I'm quite surprised that there are still no plans, and not even a declared desire, to tackle this problem for ObjC. In 2008, given the accumulated knowledge in language design, this omission is quite embarassing.

      Blocks. Coming in Snow Leopard.

      Great to hear that. Now between C++0x, Java 7, and the next ObjC, it seems that the FP revolution is finally omplete, as all mainstream languages are getting first-class functions. At last!

  30. E# and F by Tetsujin · · Score: 2, Informative

    Pretty sure that music precedes unicode, dude, and they write the sharp sign using anything that looks like a tiny smooshed tick-tack-toe board.

    At any case, you're both wrong. "E#" is pronounced "eff" - there is a half step between E and F, and the "#" sign denotes "do this note, except take it up half a step."

    E#==F.

    That's actually not entirely true.

    It is true that going a half-step up from E gives you F. However, in certain keys you'd still refer to the note as E#.

    --
    Bow-ties are cool.
  31. That's what *# does, dumb down languages by SuperKendall · · Score: 3, Informative

    Incidentally, this has long been a burning question for me: why is a language like Ocaml ignored to such an extent within the mainstream open-source community? It already has a small but vibrant community, excellent coverage in terms of libraries, performance comparable to C++, and the safety and cleanness that comes with functional programming. I even see Linux people excited with F#, seemingly oblivious to the fact that we *already* have a language better than F# that runs natively under Linux!

    (Note: I consider Ocaml to be superior to F# because in the process of transforming Ocaml into F#, Microsoft removed two of the most interesting and powerful features of Ocaml: functors and polymorphic variants)

    I can't exactly answer why other languages don't get more play - but I can lament that the .Net platform has been responsible for draining some of the life out of every language they touch. I still remember a very excited Eiffel proponent being very excited about Eiffel# when it first came out - not realizing it was a gateway for Eiffel users to flow to pure C# programming.

    Perhaps F# is a true move by Microsoft to switch everyone to functional programming, but it could just as easily be a trick to get people using the .Net platform and then through convenience get them to move naturally to C# from there...

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  32. "Widely used languages" by Anonymous Coward · · Score: 0

    Does anyone here know anyone that uses C#? The one I always here about is Java.

  33. Who still using C#?, Use IronPython. by Anonymous Coward · · Score: 0

    If you are going to code applications with .Net use IronPython or IronRuby, C# I will let it just for low level tasks in the .NET, C# is verbose, bloated and messy and Im getting to dislike all those curly braces.

    Also do you know that you can code XNA, Winforms, ASP.Net, Silverlight 2 and WPF in IronPython, who needs C# for application development?.

  34. Re:remember the carnagie melon self guided vehicle by gbjbaanb · · Score: 1

    Actually, they did fix the problem... since it was an issue with their code and not C#. C# was doing what it was supposed to.

    and in related news, C++ is not hard, its just that you're not intelligent enough to use it. And javascript is not slow, its just that you're using it for applications with incorrect performance requirements, and java isn't memory-hungry, you're just running it in a constrained environment :-)

    If you say that C# is working fine, its a problem with the coders, then my points above are equally true.

    I've been looking through stackoverflow recently, and there are a lot of questions along the line of "my .net app uses too much memory", its one of the inherent problems of a GC architecture that you need to be aware of, just like C#'s other language features. I believe its a big issue that needs more visibility - as you say, its not the GC that's at fault, its the whole understanding of how to properly code in a GC environment.

    Unfortunately, most .NET coders are drawn to the language because it has features like this that are designed to make it easier for them to code, so they don't usually want to know that it is harder than they expected.

  35. yup--VB redux by mkcmkc · · Score: 1

    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.

    Yes, basically, if you're in a situation where you would been stuck with VB, you now have C#, which appears to be somewhat less unpleasant.

    If you're not in such a situation, there doesn't seem to be any good reason to use this language.

    --
    "Not an actor, but he plays one on TV."
  36. I have never seen by geekoid · · Score: 1

    more ignorant posts about how a language works then nearly all the posts about C# in this thread.

    You people are just talking from brief sound bytes, ignorance, and misinformation.

    Morons.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  37. Did you read what I wrote? by argent · · Score: 1

    Turbo Pascal might have been great for a DOS-only programmer, I don't know, I didn't use it because I needed to write software that would work on more than just DOS... that's not the point.

    And, though this is not the point either, I would say the first IDE was Smalltalk, and Interlisp-D and UCSD Pascal both provided an IDE before Turbo.

    The point is that the resulting program you got after you pressed that button was a badly behaved program. The end user doesn't give a damn whether you built the program by pushing a single button, or even if that button was pushed at the factory before you got it.

    The end user had to deal with the fact that Turbo Pascal programs crashed on their computer because they didn't have one of the three video cards or two UARTs that Turbo's "too hell with MS-DOS and the BIOS, we're gong straight to the hardware" runtime knew about. The end user had to deal with the fact that when they ran a Turbo Pascal program, it clobbered their TSR text editor and wrote all over the other screen of DoubleDOS. The end user had to deal with the fact that Windows stuttered whenever they were running a Turbo program in a COMMAND window because they had to use a PIF that let the Turbo "I own the computer" program write straight to the hardware. Because whether or not Borland provided a way to build well behaved programs, no Turbo programmer in creation bothered to use it. Turbo was its own little world.

    1. Re:Did you read what I wrote? by Weedlekin · · Score: 1

      "Turbo Pascal might have been great for a DOS-only programmer"

      Turbo Pascal versions 1, 2, and 3 were available for CP/M-80 and CP/M-86 as well as DOS. That's why produced .COM files and were therefore limited to a single 64K segment on MS/PC-DOS.

      "I would say the first IDE was Smalltalk"

      Only if you count research versions and pre-release evaluation versions that only made available to a select set of very large OEMs. The first generally available Smalltalk came out in 1983, the same year as Turbo-Pascal (Smalltalk-80 version 2).

      "Interlisp-D"

      That had an integrated tool-set which were written in and ran under the Interlisp environment. They were however individually invoked with commands, so by that reckoning, Vi, GCC, and Gnu Make are also an IDE.

      "and UCSD Pascal"

      The UCSD P-System was a menu-driven OS, not an IDE (it had text-based pull-down menus). The editor, filer, and other applications could be invoked from OS menus, and the editor would auto-start when the compilers (there were several languages, not just Pascal) detected an error, but the latter behaviour was supplied by the OS, not the editor.

      If you really want to cite IDEs that significantly pre-date TP, you need look no further than the wide variety of interpreters that appeared during the 1960s and 1970s that provided environments from within which programs were loaded, saved, edited, debugged, and run.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    2. Re:Did you read what I wrote? by FlyingGuy · · Score: 1

      Interesting...

      I was writing IRS's in Turbo Pascal in 1984/85 I think it was? It had some inline assembly, but most of it was written in TP. I was writing TSR's as well. I guess over the years I wrote many many programs in TP and noe of them seemed to have the problems you describe. Now arguably they were running on either PCDos ( IBM's flavor on actual IBM harware PC, PX-XT and the like including the mighty PC-AT) or later MS-DOS on better clone hardware.

      TP, as I recall did not have built in support for ANY UART or any VIDEO card. It relied strictly on INT 21 calls to reach the video system ( VERY slow BIOS calls) or for POLLED access to the serial ports. In those days you either ran Vern Burgs TSR for interrupt driven ASYNC I/O or you rolled your own ISR routine. FIDO Net along with many other BBS's used the same thing. I had some issues with the way it worked, so I wrote my own ASYNC I/O ISR routines.

      Even when the GRAHPICS unit was included, you only got CGA level support, because that was the only thing you could count on to work, and that was because everyone supported that mode as it was a standard. And as I recall quite a bit of the GRAPHICS unit was in-line assembler.

      I know that if you executed a WriteLn() or a ReadLN() call and it wasn't to a disk file, ie: ReadLN(file,var) it the RTL used STDIN and STDOUT ONLY

      At the time, there was not a direct screen I/O routine in the RTL so I had to write one. I wrote some of the first X-MODEM and Y-MODEM/Y-MODEM-G implementations that were deigned to be OVL files for TP that others could link in, and I don't recall them having much trouble either, but obviously your millage varied.

      TP was so good in fact, that I think version 4 or 5 of Quatro-Pro was written entirely in TP version 5 I think it was... God that was years ago.

      To this day I still use Delphi ( version 5 ) to write all sorts of things, the programs run fine on everything on Win-98SE, NT, 2K and XP ( although I have never used Vista so they still might run fine on that) and the compiler produces very small very fast executables. As a matter of fact the last thing I turned out was in interface for ORACLE 11! It uses the BDE and connects directly to OCIWIN32.DLL just fine, no ODBC required, runs Store Procedures and pretty much handles anything I would like to do, so again I guess YMV'd greatly from mine.

      From my POV up until MS got their hooks into Borland and pretty much shoved MFC & .Net down their throat their stuff was pretty damn slick. Personally, I think the best version of Delpi was version 5.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
  38. He needs to break backwards compatability. by oliverthered · · Score: 1

    TextWriters closing the underling steam when they are disposed is just plain crazy

    --
    thank God the internet isn't a human right.
  39. De gustibus non erat disputandum by argent · · Score: 1

    Im getting to dislike all those curly braces.

    De gustibus non erat disputandum. A lot of people have big problems depending on indentation alone for nesting.

  40. Lisp by argent · · Score: 1

    Lisp is the best language to date, and it's been the best language since the '60s. I don't see why you'd invent a language that isn't derived from Lisp.

    1. Re:Lisp by scorp1us · · Score: 1

      LISP is a great language, and it has its place, but we're comparing OOP to OOP. LISP is hard-core functional, and I'd definitely cite that as a reason not to do F#. But I stand by my comment that Python is the best OOP, and its made even better with functional programming constructs. It is, IMHO, the best blend of OOP+functonal, which makes it very flexible.

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
  41. Turbo pascal 3.X was crap by Saffaya · · Score: 1

    On my ATARI ST :

    _GFA Basic (automatic syntax correction, automatic indentation, folded procedures, etc ...)
    _Omikron Basic (reset resistance)
    _or even 68000 assembler were light years ahead in terms of ease of use that the MS-DOS Turbo pascal 3.3 I had the utter disgust of using.

    Showcase :

    _Turbo Pascal 3.3 on 8MHz 286 dual 3"5 floppy

    Aim : display math graphics on screen.

    After the 3rd time the program runs, error message : graphics not initialized.
    WTF ? What do you mean not initialized, what the hell did you just display 10 seconds ago ?

    _Reset PC
    _Reboot MS-DOS from floppy
    _Reload Turbo Pascal
    _Reload program source
    _Recompile & run
    _Try again another equation.

    Compare with this :

    _Omikron Basic on ATARI ST, 68000 @ 8MHz

    Aim : Screw around with the xbios functions about display addresses

    ATARI ST crashes

    _Reset ATARI ST

    As soon as your finger leaves the reset button :

    You are still under the OS
    You still have the Omikron Basic interpreter loaded
    Your source code is still in memory
    All you have to do is run it again.

    Similar results could be obtained with GFA Basic and a reset resistant RAM-disk.

    And why, oh why the heck did that piece of crap turbo pascal had to use only ONE fricking pass for compiling ?
    Even my 68000 assembler used two :
    First one for syntax error, second for actual compile.
    The first pass will list you ALL syntax errors and you will navigate from one to the other at will (not to mention with mouse and GUI).
    Compare this with (TEXT mode) Turbo-Pascal that will STOP compiling on the very first syntax error it encounters.
    30 semicolons omitted in your source ? That's 30 recompiles, one correction after the other.

    AMIGA and ATARI ST were light years in almost all respects compared to the clunky and pain in the ass platform that was the PC.
     

  42. C sharp by Anonymous Coward · · Score: 0

    i dunno, call me a fan boy but if microsoft is too heavily involved with C# and F# i'm kinda hoping that they'll Bb.

  43. Smalltalk by argent · · Score: 1

    I stand by my comment that Python is the best OOP

    There's OO Lisps.

    But if you want a good object oriented language, and you aren't interest in Lisp, you're going to have to try pretty damn hard to beat Smalltalk.

  44. Re:The secret history of C# by Tubal-Cain · · Score: 1

    Why does being born at the same time God was conceived make you an expert in C%?

  45. Why do you keep posting that TIOBE link? by RightSaidFred99 · · Score: 1

    It's meaningless. C# is used a lot in the enterprise application arena. I don't know why you would think "TIOBE" would have any insight into what Fortune 500 companies are developing internal automation and business software on. I get the hiring thing, but it doesn't mean a lot.

  46. What does F# stand for? by hackingbear · · Score: 1

    Answer: F#%$

    1. Re:What does F# stand for? by Tablizer · · Score: 1

      Answer: F#%@$!

      No kidding. Some pointy-haired boss is gonna see "F#" that and assume that the techies are screwing around and demand that "the perpetrator" be fired. [Quote slightly embellished.]
           

  47. Am I missing something? by ZxCv · · Score: 1

    Or is System.IO.Directory.GetFiles not what you're looking for? I can't think of any kind of file system-related calls that aren't somewhere in System.IO.

    --

    Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
    1. Re:Am I missing something? by tkdtaylor · · Score: 1

      Yep that's it, now that you've told me where it is I don't know why I couldn't find it there in the first place. I know when I tried to look up a file listing example in C# the example was using the VB namespace so I'll chalk that one up to my own laziness.

  48. Re:why is this not in Java? by hackingbear · · Score: 1

    I think the java community has been talking about this kind of syntax for a long time but still not get it. does anyone know why? is it because of some MS patent on it?

  49. the dawn of object oriented programming by lopgok · · Score: 1

    In the fine article, it says:
    So C++ I think is a fantastic example of a very appropriate evolution of an existing language. It came right at the dawn of object oriented programming...

    Well, lets see, according to wikipedia C++ appeared in 1983. Smalltalk started development in 1969 and was publically available in 1980. And simula appeared in 1967.

    So I guess that means that 1983 is the dawn of 1967... I think this guy forgot what object oriented means, and has drank too much C++ coolaid.

  50. You are so nineties... by Anonymous Coward · · Score: 0

    Man, you are so nineties ....

    Langage of the XXII century is .COBOL - pronounced COBOL staccato - lamers read it dotCOBOL ...

  51. what unmusical idiot tagged this bflat? by Anonymous Coward · · Score: 0

    C# == Db

  52. 8th most widely used? by devloop · · Score: 1
  53. VB .NET C# by rdnetto · · Score: 1

    If you are a glutton for punishment go to VB.NET and code in that horrendous language structure, but still be able to do all the things you could in C#.

    Actually, there are quite a few features of C# that aren't supported by VB .NET. E.g. anonymous methods/types, implicit getters/setters, a *real* ternary operator, etc.
    Mostly its stuff that you can still do, but takes longer/more code. But it can be very annoying when you're writing a program in VB.NET and discover that you have to do a lot of stuff the long way - VB.NET is bad enough even with the missing features.

    --
    Most human behaviour can be explained in terms of identity.
  54. Re:remember the carnagie melon self guided vehicle by mc2thaH · · Score: 1

    Unfortunately, most .NET coders are drawn to the language because it has features like this that are designed to make it easier for them to code, so they don't usually want to know that it is harder than they expected.

    Trust me, I know... I've worked with people like this :-)

  55. C / C++ / C# heritage by DrYak · · Score: 1

    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.

    Welcome to the wonderful world of C-derived languages like C++, C# and similar language where you can make up as you go new meaning for any operator you wish. Let's play our favorite game : "Guess what is this week's meaning for '&' operator !".

    Disclaimer: I like C++ and like the line-noise alike structure it enables. I felt deeply deprivate now that I can't create operator ? with GNU.
    PS: Love Perl too.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  56. Quit teasing. by ElboRuum · · Score: 1

    You know, I'll just call it Fucktothorpe, because getting 3/4 the way past sly innuendo and then turning back just makes me irritable.

  57. Delphi not suited for what complicated stuff by Latent+Heat · · Score: 1
    Delphi has complete support for everything in Windows. C'mon, the ugly kludge of classes, templates, macros, and wizards MS has come up with to do COM/ActiveX and that pile of dog leavings called MFC are no comparison to Delphi.

    The real story is that "professionals" (here in the U.S.) lost interest in Pascal. The people behind the FreePascal and Lazarus projects seem to be Brits, Germans, Russians, and so on.

    The one area I would fault Delphi/Pascal is not keeping up in the area of collections (the domain of the STL) and other libraries. What enhancements to Pascal have come out of Borland have made it more of a Windows-specific language than something that could run elsewhere. This is probably more driven by waning interest in Pascal rather than the lack of such things driving people away from Pascal.

  58. How similar is Pike and C#? by Anonymous Coward · · Score: 0

    I haven't programmed in neither language and I can't tell code in Pike and code in C# apart. Is this just a superficial similarity or is it something more? I've never had the same trouble with all the other C-like languages.