Slashdot Mirror


Java's Greatest Missed Opportunity?

jg21 writes "It looks like Bruce Eckel has hit the nail on the head again. No sooner did he finish stirring debate by writing about the 'departure of the Java hyper-enthusiasts,' previously discussed here on Slashdot, than he now rubs salt in the wound by highlighting in AJAXWorld Magazine how and why Java missed its golden opportunity to become the language undergirding Rich Internet Applications. He comments: 'We must ask why Java applets haven't become ubiquitous on the internet as the client-side standard for RIAs....This is an especially poignant question because Gosling and team justified rushing Java out the door (thus casting in stone many poorly-considered decisions) so that it could enable the internet revolution. That's why the AWT and Applets were thrown in at the last second, reportedly taking a month from conception to completion.'"

7 of 362 comments (clear)

  1. Missed the Boat on Missing the Boat by AKAImBatman · · Score: 5, Informative
    Mr. Eckel seems to forget that Java Applets were quite popular back in their day. But for much of the same reason that web users balked at Flash and Plugins, web users balked at Java. It was large, slowed down the browsing experience, and just didn't integrate all that well with the webpage.

    Java eventually found its niche in server side programming. At that point Java Applets died. They were a nice idea, but they're effectively dead now and the web is better for it. There was no missed opportunity, only an opportunity that didn't pan out. In exchange, however, Java gained new opportunities in consumer areas like Video Game Development. Commercial games are slowly starting to deploy Java technology. But since one OpenGL/DirectX game looks just like another, who can tell it's Java? And that's a beautiful situation to be in. :)

    Oh, and guess what's driving many (most?) of the SOAP/XML/RPC interfaces that AJAX applications use? You guessed it. ;)

    JNLP, a.k.a. Java WebStart, was supposed to solve some of these problems to create easy-install desktop applications. I think the reason that JNLP hasn't become commonly used can be summed up by looking at https://aerith.dev.java.net/, a page for one of the flagship "Cool JavaOne Demos." If you click on the JNLP version link on that page, it will appear to start up, downloading a bunch of stuff and asking you questions. And then it does nothing. No error messages or any information to tell you what happened. Repeated attempts yield the same results, only faster because the requisite files have already been downloaded. At least, that was my experience. If it worked for you, I'd say that's even worse--it randomly works on some platforms and not others. How do you debug such a thing?

    I bet 10 bucks that Mr. Eckel's 3D card drivers are out of date or not installed. The application he linked to uses JOGL (Java OpenGL bindings), so if his computer is unable to run OpenGL, he will be unable to run the app. It's a rare issue, but it happens. The easy way of debugging the app is to either bring up the Java Console through the Coffee Cup in the system tray, or to go into the Java Web Start settings and enable the console (or logging!) there. Easy, peasy. :)

    Oh, and Mr. Eckel? Web Technology has not yet begun to fight. At least if the WHATWG specs have anything to say about it.
    1. Re:Missed the Boat on Missing the Boat by Anonymous Coward · · Score: 5, Insightful

      I have read on Slasdot for close to 4 years about why Java is dead-dad-dead, and for years before that- why java is bad-bad-bad. I have heard why the Java Applet is gone with the wind, I have heard why Perl,LAMP,ROR, AJAX, FLEX, FLASH, .NET and etc etc 'are replacing/will replace JAVA for all mainstream [fill in technical application]'. I have heard people go on and on with buzz-word filled diatribes about the failure of JAVA.

      Yet I still note that JAVA developers of all flavor are perhaps the most in-demand (and highest paid) professionals in the Software development community. I still note a healthy and growing JAVA community. When I use 'stumble' to crash about the web, I see wonderfully designed JAVA Applets everywhere, fulfilling all sorts of purposes. I see IT shop after IT shop settling on JAVA as the tool of choice to solve problem after problem. Successfully.

      Meanwhile, I have yet to see a proliferation of Web applications (with the notable exception of AJAX and .NET) using any of those above solutions. A few shops here and there, sure, but not much. More often than not, when I run accross an enterprise app written in one of those other solutions (again with the notable exeptions of AJAX and .NET) I find something intolerably slow or tremendously buggy. Certainly, PHP and Ruby have definately improved over the years- maturing and adding better OOP tools. Certainly, many of the aforementioned solutions are *well conceived, solid tools*. However, so is JAVA. JAVA works.

      I have developed in JAVA for nearly a decade, and before that I used C++ and before theat C, LISP and others. I hear about the Horrible GUIS that you are stuck with in JAVA, all the while I write GUIS that are animated, colorful, easy to use in JAVA. I hear about the superiority of other Serverside 'frameworks', try them out, and find that JAVA Enterprise offers more features, more security, more scalability and etc. I hear about the technological 'legacy'-ness of JAVA while I delightlfully learn about and study all the new technologies and features JAVA adds to itself.

      Now, to do JAVA well, you really have to Grok OOP and software architecture (and thats not just knowing the standard design patterns and how to use EJB or hybernate!). But I would argue to do any good distributed scalable app, you *need* to know these things as well. Its a sad fact in the software world that most programmers are godawful hacks. Having frameworks that make it easier for godawful hacks to create Enterprise-style apps is not necessarily a good thing.

      So when I hear the slashdot commnity screaming the death of JAVA, I am reminded of listening to the recent interview with Cheney about the rosy situation in Iraq, filled with 'tremendous successes', and I wonder the same thing: 'when have you guys ever been right on this topic'. The Java discussion here is too polluted with FUD from the open-source fans (of which I am one, don't get me wrong). You folks were wrong a year ago, two years abo, 5 years ago... Why should I, a professional java developer doing good work in JAVA and publishing useful products, listen to any of you?

      So, let the flames begin

  2. Java is generalistic... by RyanFenton · · Score: 5, Insightful

    Java technology and library development may have been steered towards web-oriented selling points, but the language itself isn't inherently oriented towards helping web developers and the like. Specialist scripting languages can always be developed to make specialist tasks faster - and Java (the language)is far too purely object oriented to be as specialist-efficient as some of the less object-oriented languages, without really stretching things.

    In fact, my favorite uses of Java (the language) aren't web-apps at all, they're applications like Azureus, and Eclipse. That's perhaps what Java (the language) is really best at so far from my perspective - cross-platform development of portable frameworks. It's because of that, that Java (the language) has a stronger future than Java (the technology), as a strongly object-oriented language developed to be portable.

    Ryan Fenton

  3. Java is far from dead by Beached · · Score: 5, Insightful

    Look at the cell phone market. Java is everywhere, your blackberry, nokia, and even many windows mobile devices run midlets (Java applets for phones). It is a huge market, much bigger than the internet. More people have cell phones than have computers.

    --
    ---- aut viam inveniam aut faciam
  4. Re:Coming from 10 years full-time Java experience by Anonymous Coward · · Score: 5, Funny

    > It was incorrect and unfair, but true nonetheless.

    These novice programmers you mention, did any have problems with boolean algebra?

  5. Gates, not McNealy, rejected any JDK 1.1.18 ? by shis-ka-bob · · Score: 5, Informative

    Gates explains that implementing AWT was a disaster for Microsoft because Java apps look as good as windows applications, see http://www.iowaconsumercase.org/122106/PLEX0_5879. pdf Read how Gates dislikes JFC at http://www.iowaconsumercase.org/122106/PLEX0_6109. pdf Read about plans to 'undermine Sun' at http://www.iowaconsumercase.org/122106/PLEX0_6114. pdf Then read Microsoft's view on implementing JDK 1.2 (to quote 'no fucking way') at http://www.iowaconsumercase.org/010807/PLEX_2708.p df So who limited the JDK to 1.1.18 ?

    --
    Think global, act loco
  6. Opinions are like a-holes... by BalkanBoy · · Score: 5, Insightful

    everyone's got one, and I am or can be an asshole at times :), so I'll chip in.

    Java _stormed_, not just merely took over, but literally stormed the programming world much, as I understand it even though it's a bit before my time, like COBOL did. When I started my first job, 1996 as a fresh grad, C++ reigned supreme still for _application_ software.

    Slowly but surely, with the mass commercialization of the internet, the Java tornado came over the C++ camp, and blew it away (or I should say converted it, en masse).

    Java hit & solved some extremely important painpoints with C++. No one ever accused C++ of being inferior as a language, as a matter of fact, the STL has yet to be repeated in Java (and no, generics aren't same as STL - STL yields more power), however, its demise was inevitable, again IMHO (the asshole talks now :), because 1) no garbage collection (memory leaks get by even the best/most disciplined of software engineers/programmers), 2) the god damn syntax of C++ and its overloaded object model was _overkill_ for most newbie programmers. There was just one too many ways to blow your head off by C++'s powerful object model (think..pointers, references, new/delete, virtual destructors, 'smart pointer', exception handling was immature, copy constructors, assignment operators, operator overloading, reckless use of STL with pointers versus static objects, etc etc etc), and 3) 95% of software out there isn't system software (OS's, drivers, embedded) but application software. Hell, even for embedded nowadays one can use J2ME, and it works admirably well. This means if and when Java or a language like Java with enough similarity with C/C++ came by and removed all the pain points of its predecessors, it was bound to succeed.

    Java succeeded. It did not miss any opportunities. You can elaborate on the benefits of more dynamic languages today, like Ruby, Lisp, whatever, but as it stands, de facto, Java is the standard today for most web applications (and it is making huge inroads into embedded even realtime applications too).

    --
    'A lie if repeated often enough, becomes the truth.' - Goebbels