Java Über Alles?

Java Über Alles?

From: Tom Christiansen <tchrist@perl.com>
Subject: Java Über Alles?
Newsgroups: comp.infosystems.www.authoring.cgi, comp.lang.perl.misc, comp.lang.misc
Message-ID: <482r4u$mlh@csnews.cs.colorado.edu>
References: 1, 2, 3, 4


In comp.infosystems.www.authoring.cgi, ivler@crl.com (J.M. Ivler) writes:

... and we all know that Java will kill both of the languages [tcl and Perl] soon enough (as useful pieces of WWW).

Oh we do, do we? I find your assertion more than merely somewhat suspect. Here's why:

Three broad areas of concern vis-à-vis Java arise: its complexity, propriety, and security. I will today consider in detail only the first matter. But as just one example of the others, though, realize that despite all possible assurances of its alleged pristine and wondrous security, there shall remain many, many, many sites that simply but absolutely shall never ever permit running Java viral code downloaded to their system from elsewhere in the world. Just go check on this at any of our national labs or military installations if you don't believe me on this one. Period, finis, and QED.

Setting aside matters of security and propriety for the nonce, let's examine the first of Java's three critical issues: complexity.

While I have admittedly not plumbed Java's most profound depths, and notwithstanding the fact that Java certainly has some interesting lessons to teach us, it is to all appearances yet another bondage-and-discipline, ivory-tower programming language that will be forever out of reach of the ``casual'' programmer. By casual programmer, I do not mean those cerebral priests in their secluded cloisters dedicating their entire lives to writing the next great operating systems, newsreaders, command shells, distributed network admin tools, number crunching spreadsheets, WYSIWIG editors, or flashy new programming languages. No; instead I'm talking about that incredibly vast majority of simple users out there who are only trying to get their jobs done, jobs that require a mere modicum of practical programming rather than stellar science.

Java seems a lot like an interpreted, somewhat kinder-and-gentler version of C++. Lovely! It is thus destined to raise fierce passions on both sides based on that aspect alone. But being kinder and gentler than C++ doesn't make it kind or gentle per se: while Purgatory may be less unpleasant than Hell, it's still not a nice place for a holiday. Likewise, even though Java may be only a bare one-third of C++'s complexity, that may not suffice: one-third of a big number is still a big number. Java's saddled with a great deal of B&D complexity stemming from its C++ ancestry and the perceived need to stress formalistic language concept ideals over the quotidian concerns of normal end users.

Perhaps you might care to explain to a simple user why his objects get ``finalized'' at non-deterministic times rather than when he's done with the object? Do you want to explain to that simple user why from function B, he can't call function C if C has an exception in its signature that B isn't explicitly dealing with, even though he called B from A, and A does handle C's exceptions? I know that I for one most certainly would not relish such a wretched task.

Unless it should change dramatically, I cannot see how Java can ever become the Language of Choice for part-time, non-MSCS, casual users who have a wee bit of programming to do (read: almost everyone who does any programming anywhere). I will concede that some software engineers and mathemagicians may latch on to this shiny new Rubik's programming bauble, but I don't find Java sufficiently ``mundane'' for those outside the esteemed Ivory Tower of cyberlinguistics.

Scheme is another great example of an interesting language beyond of reach of mortal men, despite the fact that Scheme is a fine little language of subtle power which every CS major should study. But it's not accessible, so it loses. What's to stop Java from falling into the same black hole? Lavish wealth squandered on marketing blitzen to get Java stuck on the front page of the New York Times' Science and Technology section or the San Jose Mercury News every few months? We've all seen that kind of push before: Pascal, NeWS, OpenLook, even Novell's ephemeral acquisition of Unix. Et ubi sunt?

In summary: I believe that until and unless Java should become substantially easier for normal people to use, your prediction of tcl's and Perl's impending javanese eclipse is as unlikely an event as that familiar but fallacious ``imminent death of the Net'' doomsday cry. By extension, tools and programming languages like Python, BASIC (particularly the ubiquitous Visual BASIC environment), REXX, and even the lowly Bourne shell and its still less respectable brethren aren't likely to be on their way out the door even for WWW applications any time Real Soon Now[TM].

So sorry, no pictures at 11. :-)

--tom


See also Felix Sebastian Gallo's rejoinder to my message.