No secret to anyone, that I hate coding in Java. I think there's more than just personal dislike here though. I wrote this originally as part of an earlier post but its length made it insufferable, so here you go again.
To quote Dennis Miller, "I don't want to get off on a rant here, but......" Suffice it to say that Java is proof that the idea of a universal byte code which requires the user to maintain on his local machine the specific and "correct" version of the virtual run time environment simply does not work. The promise of cross platform functionality was never truly realized. Well meaning engineers spent countless hours in the vain attempt to use Java to turn the application hostile web environment into a functional entity and ended up with slow, unreliable, barely functional workstation applications that required more memory and processor than any ever had. They succeeded in beating Microsoft -- but only in the race to see who could demand more memory and processor time for the smallest of applications. MS Word was the undefeated champion for a long time, but your basic "Hello World" in Java comes darn close, and anything with a real U.I. becomes nearly unworkable on the average desktop.
To introduce "state" and "continuity" they came up with CORBA. Wow. Ever try to build a CORBA based application that would be used by a set of users over whom you do not have total environmental control? No? Don't. It won't work. The last time I tried (using prepackaged CORBA code that had been fully QA'ed) 75% of developer's workstations running what was at the time state of the art hardware and all the latest software failed. Just imagine your average cable modem subscriber. BTW, when it did work, we finally got almost as much functionality out of the web browser as we had in 1983 with the IBM 3270 Color Terminals.
So, if it's so bad, why is it so popular? Simple. It isn't Microsoft. It is true that if you build the back end of your application with Java, and run it with an operating system on top of an operating system (a J2EE server) you've escaped Microsoft. Laudable as that may be, it isn't a business model. On the other hand, the countless hours and much counted dollars spent to develop the J2EE servers (the last refuge of Java) has in fact produced something interesting. A caching server that doesn't just cache what it wants, but instead lets you write code that stays resident, so you can cache your own data, and share it directly between many connections without first writing it to disk somewhere. Yes, that's all a servlet is. Does a Domino agent, a perl script, or a cgi executable handle many users? Sure it does. Can you pass data from one user to another? Sure you can, but you've got to write it somewhere first. Sevlets don't. Big deal. Write it somewhere fast (like a ram disk) and you've done the same thing without buying into a whole operating system (J2EE Server) to sit on your operating system (linux, bsd, aix, solaris, or yes, Windows).
"But Andrew, Java is cross platform", says the dweeb reading this as he gets increasingly disturbed. No its not. Don't be silly. The byte code is in fact cross platform but the servers, and the development tools are not. They have to be developed for each platform. The byte code needs someplace to run. A JVM or a J2EE server. Those aren't cross platform. They have to be built and installed for each machine or operating system on which they'll run. Taken by that standard, a Notes application is way more cross platform. I know that if i build a Notes application, I can deploy it to any Domino server and run it on any Notes workstation. It must be cross platform! Of course it is, just as much as Java.
Now, whole sectors of the industry are out there generating their own momentum for this "Language" while camps of anti-Microsoft zealots valiantly struggle with poorly implemented, overweight constructs and bizarre rules and symbols just to keep the last hope of Java (again, the J2EE server) competitive. In the long run, it won't be. Some future thing based on it may very well be. Some cool rapid application development platform and a server on which it can run may well grow from all the vast brainpower and money being tossed at Java right now. IBM alone is spending more than the collective healthcare budget of the entire third world to make that happen. They're spending so much money on it that I think the Pentagon is going to get jealous and buy a few more planes, just to remind us all where the REAL money goes. They (the J2EE crowd, not the Pentagon) may one day be successful at creating this holy Grail of development using entirely non-Microsoft stuff. If they are though, it will look a lot different than it does today.
Oh well -- let the flames begin. I feel better just getting that off my chest. ;-)
Comment Entry |
Please wait while your document is saved.