Slashdot Mirror


C# To Crush Java?

Hector73 writes: "Cringely predicts that C# will blow away Java in the upcoming years. He raises some good points, but fails to differentiate between client-side Java vs server-side Java. I believe the bells have tolled for SWING, but server-side Java is holding strong."

12 of 93 comments (clear)

  1. What a crock of crap! by manyoso · · Score: 2, Insightful

    Perhaps CSharp will surpass Java in the hearts and minds of programmers in the years to come...? _Perhaps_!

    Basically the only reasons this article gives for this supposed eventuality is: "Java" is "bulky, slow, and buggy." and "Now Java just plain feels old."

    And then the author has the audacity to say, "Sun is giving up, descending to name-calling."

    Just some more FUD. Nothing to see here. Move along.

    1. Re:What a crock of crap! by Anonymous Coward · · Score: 1, Insightful

      I'm a software developer. I worked with Java for a few months. I know that this is not a lot, and I don't claim to be an expert in Java.

      Frankly, I strongly dislike Java. Why?

      Java is a simplified C++. This is a very good thing.

      Unfortunately, they have removed way too many useful features of C++. Features which may seem useless to academics and idealists, but which are useful in the real world.

      C# designers did not make the same mistake. They did not remove as many C++ features as the Java designers did. They also ADDED some useful features like properties, etc.

      I have worked very little with C# (mainly due to being busy with other projects), and I instantly liked it.

      Compared to Java, C# is a more feature-rich language.

      I like C# a lot more than Java.

      I almost like it as much as Python, which is my favorite language.

  2. Not Likely. by fava · · Score: 3, Insightful
    One thing you must remember before writing Java off compleatly is that Java is the language being taught to most University CS students, I cannot see all these recent graduates deciding to abandon Java in favor of C#.

    As well many companies that are using Java are doing so primarly because it is portable. C# lacks that feature.

    1. Re:Not Likely. by Hector73 · · Score: 3, Insightful

      One thing you must remember before writing Java off compleatly is that Java is the language being taught to most University CS students

      So was PASCAL ...

  3. At the risk of stating the obvious.... by pwagland · · Score: 3, Insightful

    We all know that Microsoft make great marketing solutions. Sometimes, these are even really great products. But the key point here is, as Cringley said, microsoft will market C# better than Sun did Java. And because it is marketed better it will get mindshare. And once it gets mindshare, it will get marketshare. One step at a time...

    However, C# is still windows centric. To a lot of people this means diddly squat. If it allows you to work more easily to your target platform, then people will use it. Witness the success of Visual Basic as proof. And that thing is a cow if you ever have to maintain the "code" that gets produced with it.

    This is not all bad news however. Despite the success of VB, there is still a "niche" market for C programmers. Just as there will be for Java programmers. And the split will go roughly the same way I think. On non-microsoft and server platforms Java will continue to be used. On the "frontend" microsoft boxes then C# will become the new Visual Basic...

    And sure, we "profressionals" will deride these "sellouts", and pretend that we are somehow superiour. But in reality, it is just people using the most appropiate tools for the job at hand.

    1. Re:At the risk of stating the obvious.... by big_hairy_mama · · Score: 2, Insightful

      Visual Basic is ugly, and always has been. But there are already millions of Java programmers, most of whom took up Java because a) it's an easy language and they wanted to move away from VB, b) they like its cross platform capabilities, or c) they like its cross platform capabilities because they don't like Microsoft (see (a)).

      I remember reading another /. article saying that Java was poised to become even more dominant than C/C++. Many of these Java developers probably took it up so that they could program web-based applets and such. And the reason why Java is a great web/applet platform is because of its cross platform nature. Are these people going to switch to C# all of a sudden? It defeats the original purpose of applets and Java.
      So how is Microsoft going to switch all of these people? Mostly, I think it will be people who say "I like Microsoft, I like Java, and I like VB (ant want to re-use my old code); let's combine them all." But the number of people who want this, is, from my viewpoint, much less than the number of people who want to stay away from old buggy VB code and proprietary solutions.

      So in summary, I think C# is the one that will have a "niche" market, and Java will be (and already is) far more mainstream.

  4. I agree...but I don't by MrBlack · · Score: 3, Insightful

    I agree. Microsoft has put a huge ammount of effort into developing a quality platform in .NET, and they are betting the farm (or at least appearing to do so) on .NET. Certainly if .NET flops MS will lose face, and lots of money, but I don't really see the success or failure of .NET affecting their core monopolies. Windows and Office. I see this as MS's attempt at condsolodating their stock in the server arena, which is where other vendors like Oracle and Sun have been traditionally strong. Server-side Java rocks, and that's where MS is attacking.

  5. Re:My letter to Bob by mooneyd · · Score: 2, Insightful

    Oh and regarding point 3: All .NET programs will run on all platforms which have a CLR (Command Language Runtime) available - kind of like... err.. exactly like a JVM. When .NET is released, CLRs will be available for Windows 98, ME, NT4, 2K, and XP which covers what percentage of computers in the world? Probably something close to the number of platforms available when JAVA was first released.

    Once .NET is understood it is easy to see that the architecture is extremely similar to JAVA while learning from some of JAVA's mistakes.

  6. Re:My letter to Bob by Anonymous Coward · · Score: 1, Insightful
    Providing a CLR for most common versions of Windows still doesn't come close to being enough. .NET won't run on the platforms that run most of the interet. There is no version of Windows running on 512 CPU servers.


    Of course it's not often you need to run on the big servers, but for two comparable platforms (Java/.NET) you pick the one that can scale the best. The NET platform don't offer anything that Java doesn't already provide.


    Oh and Apple has something like 5% of the PC's out there and that is still a huge number of computers.

  7. C# vs Java by qbalus · · Score: 2, Insightful

    Sun is excellent at computer plumbing, and has the track record to back it up.
    Microsoft has dominiated the eye balls of the end-user and they too have the track record to back it up.

    C# vs Java is a race for volume, just as IE and Netscape was a race for volume. This race won't turn out the same way though because game has changed

    And that game is Open Source. Open Source is the wild card in this battle. Without Open Source, I believe Microsoft would win in short order.

    qbalus

  8. Re:My letter to Bob by ban · · Score: 3, Insightful

    I may be completely stupid but I happen to work at a company that is developing a server side VM for Java and I really don't understand what you mean with "the branch prediction problem".

    Are you assuming that static compilers do some kind of interprocedural or whole program analysis? This is normally not the case.

    Do you think that you can't do inlining or method specialization where you take runtime information into account in a JIT? You definitely can.

    Our VM does advanced optimizations at runtime that amongst other things take single implementations of methods into account. These optimizations can be undone at runtime when new classes are loaded that invalidate the assumptions that the optimizations are based upon.

    This means that you won't do virtual dispatches to methods that only have a single implementation.

    Try to do that with a static compiler for a dynamic language.

  9. Bogus, all cause of one analogy... by FortKnox · · Score: 3, Insightful

    J2EE

    C# has nothing that can compair to J2EE. The bonus' you get with J2EE in a large-scale system will easily destroy anything .NET can come up with.

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!