Slashdot Mirror


Trouble Ahead for Java

Jeremy Geelan writes "The editor-in-chief of the world's largest journal devoted to Java wonders whether, with the arrival of Microsoft's C# programming language on the scene, Java perhaps has only 5 years or so left to live. Javaland has erupted! This is a little like Bill Gates wondering out loud whether to send Scott McNealy a Christmas card. But is Alan Williamson right? Read this short article and decide for yourself."

21 of 670 comments (clear)

  1. Printable Version by The+Slashdolt · · Score: 4, Informative

    All pages on one page here

    --
    mp3's are only for those with bad memories
  2. This is a Good Thing by atrowe · · Score: 5, Interesting
    I, for one, welcome the oncoming of Microsoft's C# language. A little bit of competition can only help the market. When I first started programming in Java eight years ago, the industry was far different than today. Java was, for the most part, an open standard, and one was free to do with it as one pleased. Now that Java is the biggest player in the industry, it seems Sun has gotten a bit greedy, and is trying to cash in on Java's popularity.

    Microsoft's C# entry will only cause more competition in the market, and the consumers and programmers are the ones who will benefit. I'd love to see Sun loosen some of their restrictive Java liscensing practices in response to C#, and I think that is just what will happen. Open source wins the day yet again.

    --

    -atrowe: Card-carrying Mensa member. I have no toleranse for stupidity.

    1. Re:This is a Good Thing by Hard_Code · · Score: 4, Insightful

      "cash in on Java's popularity."

      HUH? Sun has put a TON of resources into Java, gives it away freely ("costless"), provides *extensive* docs, and even lets you look at the full source. Java is an immense and diverse platform. Sun sells hardly *any* Java-based products (the only thing that comes to mind is the HotJava Bean which has been discontinued, and Forte, which there is already a free edition!)

      Sun has no "services" they are trying to shove on people. They define everything as open specs, and then simply create a reference implementation that you can *choose* to use - next to being fully open source (and they've been making strides trying to be more open), there really isn't much *more* they could do for developers. I'm actually surprised that Sun is devoting this much energy to Java when there isn't much profit to be made from it, but it sure is great.

      I don't see C# having anywhere near the community that Java has. Typically Microsoft communities are people who have comradery in being serfs. It's a lot different with Java.

      --

      It's 10 PM. Do you know if you're un-American?
    2. Re:This is a Good Thing by garett_spencley · · Score: 4, Insightful

      Same here.

      I really don't like MS more than anyone else but my limited knowledge of c# vs. java really seems to tell me that java programmers who decide for whatever reason to give c# an honest shot are going to love it.

      I really like Java as a language but I never use it because it gives me no practical advanatage. I'm quite willing to spend lots of resources porting my c/c++ code to a million different platforms and testing it on those platforms if it means it's going to be really fast and my user's won't have to worry about installing and configuring Java and then having a program that runs slow as tar.

      I'm really starting to hate Sun lately actually. I don't see them as any better than MS. They're just a big corporation trying to make their big cheif richer than he already is.

      Java is an excellent language but since the actually design Sun has yet to produce anything of value.

      They haven't done anything to help open source or any communities. They announced that Solaris was going to be open source (big deal. It's widely used but I don't know anyone who actually likes it). But they dropped that plan anyway.

      They sure seem to be making good use of gnome but AFAIK they haven't made any contributions to the code (please correct me if I'm wrong).

      And as you stated Java is getting more and more proprietary.

      What we need is an open language that matches up to java and c#. Something free of patents and IP.

      So hopefully MS will cause Sun to smarten up and loosen up Java a little. Then we may actually be able to see what it's really capable of.

      --
      Garett

    3. Re:This is a Good Thing by Shiny+Metal+S. · · Score: 5, Funny

      What we need is an open language that matches up to java and c#.

      Perl 6 is what I bet on.

      --

      ~shiny
      WILL HACK FOR $$$

    4. Re:This is a Good Thing by jpatokal · · Score: 5, Insightful
      Sun sells hardly *any* Java-based products (the only thing that comes to mind is the HotJava Bean which has been discontinued, and Forte, which there is already a free edition!)

      Maybe you should take a peek into the corporate world. Want to add SNMP functionality to your Java product? J. Random Hacker doesn't, but Q. Big Corporation often will, and the only way to do this is to fork out the moolah for Sun's JDMK. The cost? $10000 for one (1) developer seat and 50 runtime licenses.

      But Sun's basic strategy is to popularize Java (at a loss) and then sell Sun hardware for it (at a profit). The company I work for is almost entirely a Java shop. We make carrier-grade applications, and whenever possible we ask our customers to use Sun hardware, because that's what Java works best on. This is not a coincidence.

      Cheers,
      -j.

  3. Cobol is still in demand. by Lucky+Kevin · · Score: 5, Insightful

    There are so many Java programmers and so much Java code being produced that it will last a lot longer than five years. People still need Cobol programmers, ok so not mainstream but look how long ago that was designed and despite being crappy it is still here.

    But as the article says it really doesn't help when people who should know better say "Java? No one is doing that now. Microsoft is no longer supporting it."

    Gates has a lot to answer for.

    --
    Kevin
    "It's not the cough that carries you off, it's the coffin they carry you off in" O. Nash
    1. Re:Cobol is still in demand. by happyclam · · Score: 4, Interesting
      There are so many Java programmers and so much Java code being produced...

      Produced? Yes... supported? Maybe... I wonder what percentage of the Java code written in the last five years died with the series of dot com failures we've witnessed.

      That said, of course you're correct: COBOL is still in use, and Java will last much longer than five years.

      But the language of choice may be something else in five years. Java hasn't been around that long, and scads of people were saying it would never overtake C or C++ when it was first released. And really, C hadn't been around that long when Java was first introduced.

      --
      He looked at me and said, "Kid, we don't like your kind, and we're gonna send your fingerprints off to Washington."
  4. ummm... heard this before... by Misha · · Score: 4, Interesting

    haven't they said something like this before?

    the problem with C++ was that exactly zero of code was reused, even though it was supposed to be made simpler. Java code actually reuses itself pretty darn well, and last I checked J2EE library just keeps growing and growing, and largely its success is in that.

    as for C#, i doubt anyone except Microsoft is interested in seeing more packages of it. it becomes pointless to have non-object code in C# if you are planning to devise a framework for other people to work with.

    anyways, if Java only has five years life in it, why would you stake your life on C# of all things? wouldn't you expect that in five years people would be switching to something newer than the love-child of Java and Microsoft that didn't overtake its predecessor and hardly had any advantages except probably back-doors into the Windows kernel?

    just my two cents...

    --



    I was thinking of how to intentionally fail my drug test... It would make a good memoir story someday.
  5. Valid points, not conclusion by bigmouth_strikes · · Score: 5, Insightful

    I think the author has several good points, especially in pointing out some key shortcomings of Java (java on the client, Swing). Also, the .NET toolkit looks very competent and building and deploying .asp's is quite simple as compared to deploying a java solution.

    But the key thing not mentioned is the fact that Big Blue and the rest of the industry is quite determined on Java. Sure, IBM and Microsoft are working together on Web Services, but I think IBM is unlikely to start supporting .NET instead of Java in their tools. More important, when IBM and MS are talking to each other and making standards for web services, it is more likely than not that both Java and C# will coexist.

    Java has shortcomings, but it has become a success despite this, and due to a vast support from professionals ranging from programmers to computer scientists. To say that all this will be gone in 5 years is more than bold, when in fact the amount of existing Java code are probably more than can be replaced in 5 years.

    Of course, languages and platforms come and go, but since C# doesn't drastically change the way application development is done - which is what Java did, in several ways - I don't think it'll start a revolution in the way that the article suggests.

    --
    Oh, I can't help quoting you because everything that you said rings true
  6. Re:Not likely :) by Peyna · · Score: 4, Insightful

    Pure OO was thought up by the creators of smalltalk, like Alan Kay. Java isn't even pure OO in the same sense that smalltalk is.

    --
    What?
  7. XP quote and more by mgkimsal2 · · Score: 4, Insightful

    "Microsoft has successfully planted and nurtured the seed in people's heads that just because it isn't supporting Java in Windows XP, Java is dead"

    I don't think MS had much to do with it. Sun and a seemingly large segment of the Java community and many industry pundits made a big stink about XP not including Java. I don't recall MS saying much one way or the other except saying you could download a JVM from their site. The Java community themselves planted this seed of doubt.

    "As you know, Java has not made any significant headway in this space due mainly to its awfully slow Swing implementation. While the recent release of JDK1.4 has brought significant performance gains, it's still nowhere near the speed of its native Windows applications with respect to fast, snappy responses"

    I'm not going to say Sun should open source Java, but for heaven's sake, make a GUI toolkit that doesn't suck. You can't cite Java's 'newness' as an excuse anymore.

    However little you think of VB (especially VBScript) MS has provided a huge number of tools to make development easy and painless - and the results are often decent. I remember being able to put together *simple* VB data collection forms back in 94-95 without having too much idea what the hell I was actually doing. There STILL nothing like that for Java. - Go ahead, flame away. I'm not a hardcore Java guy, but someone else here at the office is, and we constantly see shortcomings. That's not to say there's not strengths too, but still shortcomings. Open sourcing Java *MIGHT* help overcome many of those shortcomings (especially in the GUI toolkit area).

    I keep repeating this on various boards - if Sun was serious about getting Java to the masses, they'd carpet bomb the hell out of the US with CDs ala AOL with the latest JVM for multiple platforms. That they DON'T do this speaks volumes. Better yet - get AOL to bundle it on their CDs and have an installer with lots of nice Java packages - an 'intro to Java' for the common man. Explain the cross-platform benefits, etc. - something my mom could understand.

  8. Re:Or not by cscx · · Score: 4, Funny

    It has APIs for everything from speach to distributed computing.

    Excluding spell checking APIs, that is ;-)

  9. Java will outlive C# by Glock27 · · Score: 5, Interesting
    Java will outlive C# simply because C# is tied to Windows. Don't believe the hype about Mono - Mono is in it's infancy, while there are at least two high-quality commercial JREs for Linux and a rapidly improving open-source ahead-of-time Java compiler, gcj. Mono faces an uphill legal battle to actually provide any signficant subset of .Net on Linux.

    One example of the author's cluelessness is that he touts the Halcyon solution - which is implemented in Java. This is supposed to show Java's vulnerability how?

    The rest of his "myths" are just as insightful..i.e. a bunch of crap. ;-)

    Where was SWT in this discussion for instance? Where was the discussion regarding millions of Java-enabled devices in the marketplace? Where was the discussion of Javas total dominance in application servers right now (perhaps .Net will make a dent, but it remains to be seen).

    Then the author gives forth with:

    "We have a beautiful language here in Java; it has achieved industry-wide support and is pushing forward with great velocity. What can we do to support it?"

    For a start, perhaps NOT writing clueless, FUD-filled articles that completely exaggerate the threat of C# to Java... Many, many Java users are going to be very slow to move to a Microsoft proprietary solution...and make no mistake about it, .Net is Microsoft proprietary. Only the C# language and the CLR runtime have been submitted to ECMA and those make up a tiny subset of .Nyet (sorry, couldn't resist doing that at least once!).

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  10. Not a beta, -1 wrong by Smallest · · Score: 5, Informative
    VS.Net has been released for months now. In fact I have a copy sitting on my desk right now. C# is included, as is VB.Net and VC.Net.

    You can get a copy of the source to a CLI implementation which also includes a C# compiler that can run on XP and FreeBSD, here.

    From the link:

    The Shared Source CLI goes beyond the printed specification of the ECMA standards, providing a working implementation for CLI developers to explore and understand. It will be of interest to academics and researchers wishing to teach and explore modern programming language concepts, and to .NET developers interested in how the technology works.

    Features
    The Shared Source CLI archive contains the following technologies in source code form:

    An implementation of the runtime for the Common Language Infrastructure (ECMA-335) that builds and runs on Windows XP and FreeBSD Compilers that work with the Shared Source CLI for C# (ECMA-334) and JScript

    Development tools for working with the Shared Source CLI such as assembler/disassemblers (ilasm, ildasm), a debugger (cordbg), metadata introspection (metainfo), and other utilities

    The Platform Adaptation Layer (PAL) used to port the Shared Source CLI from Windows XP to FreeBSD

    Build environment tools (nmake, build, and others) Documentation for the implementation

    Test suites used to verify the implementation

    What can I do with the Shared Source CLI?
    There is a wealth of programming language technology in the Shared Source CLI. It is likely to be of interest to a wide audience, including: Developers interested in the internal workings of the .NET Framework can explore this implementation of the CLI to see how garbage collection works, JIT compilation and verification is handled, security protocols implemented, and the organization of frameworks and virtual object systems.

    Teachers and researchers doing work with advanced compiler technology. Research projects into language extensions, JIT optimizations, and modern garbage collection all have a basis in the Shared Source CLI. Modern compiler courses can be based on the C# or JScript languages implemented on the CLI.

    People developing their own CLI implementations will find the Shared Source CLI an indispensable guide and adjunct to the ECMA standards.

    -c

    --
    I have discovered a truly remarkable proof which this margin is too small to contain.
  11. Why .net will really win over java by johnburton · · Score: 5, Insightful

    .NET platforms will win over from java because .NET compilers to .EXE and .DLL files which look and seem to work just like the ones you are used to. Of course they are completely and utterly different behind the scenes, but that one simple fact makes .NET seem familier but new and exciting, and not at all like all those scary java .class files. Ok, so I exagerate, but I think that having .EXE and .DLL files really WILL make a lot of difference to how people percieve this platform.

    --
    Sig is taking a break!
  12. Re:Beyond the Java vs. Anything debate by kelzer · · Score: 4, Funny

    There should be not be fear of a new programming language. It is the new girl in town.

    Don't date that C# slut! Next thing you know, she'll be knocked up, and you'll be gettin' married whether you love her or not, because Bill Gates will be pointing a shotgun at your back.

    It is true that one has to be wary that C# is a Microsoft baby. If it turns out that you cannot use C# without paying MS big bucks and the returns are not justifiable there are always other alternatives to look to.

    Just try to leave her, and Bill will hunt you down. Stay away from her - she's trouble!

    --

    ---------------------------------------------
    SERENITY NOW!!!!!!!!!!!!!!!!
  13. wow, you must have interesting time sense by StandardDeviant · · Score: 4, Insightful
    And really, C hadn't been around that long when Java was first introduced.
    C = early 1970s, Java = mid-90s (well, unless you count Oak and that's still only early/mid-90s)... A 20 year lead time is pretty considerable in any field, let alone IT where everything changes on a biweekly basis...
  14. Re:Not likely :) by smack.addict · · Score: 5, Insightful
    I agree that Java is on the way out.

    I seriously doubt it. All major metrics such as adoption in companies, teaching in education, and adoption by programmers suggests it is continuously growing. Furthermore, the only potential competitor on the market is C# which, while not an inferior clone, is a clone. Jumping languages is a hard task. C# will capture the windows client development market and the microsoft people who never adopted Java in the first place. It is hard to see what will compell people already in the Java camp to move to C#.

    The language is awkward and unexpressive; its main appeal seems to be in preventing stupid programmers from doing things their brains can't understand (like multiple inheritance). But we all know that you cannot prevent the programmer from writing bad code. OK, pointer safety and garbage collection is useful, but c'mon, practically every other language apart from C and C++ has this too, and C++ is pretty safe if you program it carefully and use the STL.

    You can succesfully prevent coders from being stupid. The difference between C and Java is that you have to be an expert to write good C code; you have to be an expert to write bad Java code. What you want from a language is a language that maps well to architectural models so that your architects are making the decisions, not your immature and inexperienced code monkeys. Java is that language. C# is almost that language.

    And the libraries: urgh. They all seem to be designed by committee and make QBASIC look elegant. The standard date library for example, or database access.

    The libraries, in general, are actually quite well designed. Especially the database access API. The problem is, novice coders don't generally understand that there are things like non-western calendaring systems, multi-byte character sets, and alternate forms for displaying dates. These libraries make sure such novice programmers do not code a company into a box.

    Java claims to be cross-platform, but it only does this by creating a whole new platform on top which has to be installed first. And the JDK is one of the least portable programs you'll find on a modern system. As for being vendor independent: don't make me laugh. Java is just as dependent on Sun as Windows is on Microsoft

    There is no way to get cross-platform behavior without installing a virtual machine. Whether you call that VM a browser, an emulator, or a VM is irrelevant. And Java really has no dependence on Sun. It is much more dependent on IBM than Sun.

    Java has succeeded because it solves real programming issues for large-scale software development.

  15. Re:Not likely :) by angel'o'sphere · · Score: 4, Insightful

    You are moderated as TROLL.

    If I would metamoderate you I would say: unfair.

    But the bullshit you wrote deserves a TROLL rating ... unfortunatly the moderation system has no option: WRONG or a option BULLSHIT.


    I agree that Java is on the way out. The language is awkward and unexpressive;

    As unexpressive as you can be with out templates (fixed in the next java releas, 1.5 will have templates) and without operator overloading(like using * for dereferencing iterators in STL).
    the rest is C or C++, so why is it not expressive?


    its main appeal seems to be in preventing stupid programmers from doing things their brains can't understand (like multiple inheritance).


    a) how often did you use multiple inheritance?
    b) are you sure it was the right thing to do in more than 50% of the cases?
    c) you ever had a memory leak in C++?
    d) you ever had a dangling pointer in C++?

    Oh, I'm just asking, 4 things in Java can not happen ...


    But we all know that you cannot prevent the programmer from writing bad code.


    And what do you want to say with that? When you started programming you wrote perfect code from your first day I asume.


    OK, pointer safety and garbage collection is useful, but c'mon, practically every other language apart from C and C++ has this too, and C++ is pretty safe if you program it carefully and use the STL.


    So STL has a garbage collector? As well as Pascal has(other languages)?

    But now it comes, the above is only sarcasm ...

    And the libraries: urgh. They all seem to be designed by committee and make QBASIC look elegant. The standard date library for example, or database access.


    Seems you have in depth Java programming experiance. And also QBASIC experiance. So in QBASIC it is more easy to acces a ODBC/JDBC/SQL data base than in Java JDBC(a API/library you claim is designed by commitee)?

    I think only PHP and Perl are easyer in data base accessing than Java. Oops, I forgott SQL.


    Java claims to be cross-platform, but it only does this by creating a whole new platform on top which has to be installed first.

    And? is that a drawback or what? What does .NET?
    What did the UCSD P-system? But more interesting: what would be your approach?

    And the JDK is one of the least portable programs you'll find on a modern system.


    This claim is very interesting as the only part of the JDK which is vendor or platform specific is the VM. The compiler and all tools are written in ... err ... Java, I guess.


    As for being vendor independent: don't make me laugh. Java is just as dependent on Sun as Windows is on Microsoft. Even other people like IBM who have their own JVMs have to license the code from Sun.

    What a laugh. IBM has licensed NOTHING from Sun, why should they?
    Probably they have licensed the SUN standard libraries, why not? Much easyer then writing 32MB source code for your self.


    The licence for J2EE seems to forbid using it for any purpose whatsoever: I don't know whether you have to 'purchase' the commercial version from Sun, but it can't be cheap.

    I suggest two things:
    a) reading the SUN licenses
    b) downloading the stuff, its for free, as in beer.

    Your customer can download it as well. And most stuff like JRE can be redistributed with your own stuff, for FREE. No special license required.


    In fact Java is less vendor-neutral than Windows, since the Wine project seems to have done a better job of cloning the Win32 API than the various free Java projects have with the JDK and libraries. (Not to diss the work these projects have done: but there's just so much of it.

    Well, you gave the reasons why FREE solutions failed so far. The point is: FREE is a political or ideological term. The free as in libre is simply not interesting for 90% of the java users. They only need free as in beer or free as in java community lisence.


    And every new release brings another set of 'standard' APIs for which the only existing implementation is Sun's.)


    Plain wrong: tomcat, JBoss, Jetty, Orion, BEA Web Logic, WebSphere, HPs XYZ, Sonys XYZ, Soniq MQ ... Oracle 9i ... well there are hundrets of implementations of SUNs APIs.

    Java has succeeded by marketing and not for technical reasons. Microsoft is better than Sun at marketing, so C# will win.
    -- Ed Avis epa98@doc.ic.ac.uk


    I disagree. As soon as you can call me with a mobile phone on which C# and .NET is running ... I give you 50% of my SUN shares.

    Regards,
    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  16. I'm beginning to think... by glassware · · Score: 5, Informative
    that Microsoft has discovered the key to getting good press on Slashdot. What if some of the unusual articles that have appeared recently are coming (whether directly or indirectly) from Microsoft PR?

    By Way Of Example: This article, the strangely prophesied Unix Isn't Dead, and this booster for the next version of Windows.

    Although I might be paranoid to wonder about this, it would be a pretty impressive use of grassroots resources. It seems like what they're doing is writing articles that cast doubt on the official Microsoft position. These articles naturally become (in a free spirited discussion site) a thread with some people defending MS and some people attacking it, which provides an excellent position for posting Microsoft's stronger arguments which then reach open-minded developers.

    Anyways, it's an amusing thought. :)