Java? Nah! Be honest, who laughed at the last round of Java applications for Linux, or for that matter any other OS? Since the oh-so-sow Java of a few years ago which promised much, but only ran bug-free on a white-board, things have changed significantly.
There is much debate about Linux dominating the Desktop, the Server, the World(!) and the debates have become rather predictable. For Linux to suceed anywhere it needs high quality applications. Anyone writing high quality applications has a number of things at the very top of the agenda:
Java promised the holy-grail for ISV's; write once, run anywhere, Extensibility of Libraries and OOD development. In practice, Java turned into a write once, run on any JDK-1.x.y where x.y are any permutation of what the OS and Hardware vendor chose to release and force you to use.
Java - they love to hate it!
Java is still a no-brainer language for ISV development, we just have to be rational about its little problems;
So whats the deal for Java and Linux? We all hear that Linux is opening up the server, but Java is not really a server product. Or is it? Enterprise Applications written in Java involve large numbers of class libraries and patterns, usually managed by a Factory on a network thus increasing network traffic and server overhead.
There are several ways to improve server performance. Install a cool SMP multiprocessing Linux kernel, or more flexibly, use a larger number of smaller servers. Called variously (depending on seemingly random conditions) Application Servers, Applet Dispensers and Pattern Factories, these servers can run on hardware costing from as little as $399 (this is not a typo). Very compeditively priced, the last thing we need to add is add an expensive OS such as NT (or UNIX). Enter Linux! The world of Linux based Application Dispensers and Pattern Factories is almost here.
Somewhere in the back-end will lurk a large database. As if by magic, the large database vendors seem to have Linux ports available for low cost or no cost (i.e. free). A database server that would have cost many tens of thousands for the hardware, OS and Database engine now costs a few thousand - probably less than $5K.
We now have most of the ingredients for a real Client/Server Java applications environment, at a price people can afford. All it needs are those applications. Enter IBM.
The quiet Revolution.
(get the flame throwers ready!) In all the excitement surrounding Linux, a quiet revolution has been going on in the Java world. The days when Java was slow, buggy and non-portable are not exactly gone, just less widely encountered.
Big Blue is back.
Had they gone anywhere? IBM have probably the largest Java development program in the world. The details really need to be the subject of another pitch (any chance Ed?) but they have been contributing Java code and products to the ISV and Java Communities for some considerable time. Java is a natural language for Networks and the Internet. With global Electronic Commerce valued at some $460Bn by the year 2000 (who makes up these numbers?) Java has some obvious attractions. 460 billion attractions :-)
So lets just speculate that the largest, most ISV friendly and Internet orientaed Java project on the planet is backed by really affordable Client hardware, highly configurable low cost servers and free database engines. What's missing? A free, scalable UNIX-like OS. Just add Linux and we are all set. Well, almost ;-)
The gory details will have to wait for another article, and I will end by backing Nick Petrely's recent observation about NC's. Based on what I have seen, the first winner of the Desktop battle is the NC and Java. From large strategic components to frantic development of Java class libraries ($460Bn is an awfully large incentive), the stage is set for a revolution in Client/Server computing with Linux threading through all of it.
The world just woke up to Java on Linux. This is going to be fun.
Till next time.