Java is doomed to failure
In the wake of The Rise of JAVA - The Retirement of SUNW I thought something I discovered on osnews.com was more than interesting. (for the record, I hate this change, but after sleeping on it overnight I realized it's just a ticker symbol and has little real effect ... unless marketing decides to return to naming misappropriation such as Java Desktop System)
Today is the 10th anniversary of OSNEWS, one of the news sites I click on every day. For their anniversary they've dug up some of their original pages and at the top of the news for 30 October 1997 they have this gem: C/net is exposing the future Betamaxes and 8 track tapes of the technology world in a column entitled "10 Technologies that Don't Stand a Chance." Judge for yourself. BTW, one of those doomed technologies is Java.
Looking at that 10 years later I can only think the rumors of Java's death are greatly exaggerated.
The snippet contains dead links but thanks to the wayback machine we can read the original articles.
Why, 10 years ago, did C|NET think Java was dead? ... To quote them we have this familiar promise (write once run anywhere) as C|NET described it back then: Imagine a world without computer incompatibilities. You can write a program on one platform, then run it on a Sun workstation, a Mac, and a PC with any version of Windows. The cost of developing software plummets, software becomes cheaper to buy, and a new age of computing dawns. The lion lies down with the lamb. The land flows with milk and honey. Sounds like a great story, eh?
They then went on to describe how, if Java doesn't run on Windows, then we might as well kiss that dream goodbye because Java is doomed to failure. Or, rather, as they say, Microsoft must also use Java and unfortunately we lived through that history which, at the time, was still very fresh, and having gone through those times we have reached a time when Microsoft is not using Java (or, did they fork Java to create C#/.NET?) and Java is still here and taking a significant role in the world of computing. And the real spectre of that time, which is still affecting our thinking today, is compatibility: Everyone will claim to be supporting it under the banner of "open systems," while adding their own proprietary technologies that completely undermine the goal of universal compatibility. Unix has now splintered into the famous 31 flavors: Solaris, Irix, AIX, DG-UX, HP-UX, Ultrix, Linux, and more. That's why Unix is not proving much of a rival for Windows NT. The same thing will happen with Java, only the Java flavors will undoubtedly have cuter names. This splintering is precisely what Sun is suing to stop. But it's hard to successfully sue someone for not agreeing with your philosophical ideals.
You may recall that Microsoft provided an incompatible Java seemingly in an effort to splinter the Java market and turn it into an equivalent of the splintered Unix market. And the suit was about an inability to comply with a contract Microsoft signed, not philosophical ideals.
I think the general consensus is that proprietary extensions to Unix, which led to the splintered market, greatly damaged Unix (especially in the mid 90's) because the divided house of Unix could not compete against the unified house of Windows NT. It's worth pondering the effect of incompatibilities and splintered platforms, because the issue of Java compatibility is still with us today.
Clearly the splintered Unix market has some problems, and most of those flavors of Unix have indeed died or are barely alive. Some have flourished, as has Windows NT (even as it's not called that any longer). But what of Linux? Linux distributions have a lot of incompatibilities between them, but Linux overall is a big deal in the computer industry. I think the splintered Linux market is itself a hindrance and a blessing. That Linux implementations aren't in lock step total compatibility with each other has allowed a lot of innovation and experimentation. But it's at the same time frustrating e.g. if you're browsing HOWTO or tutorials that describe how to do something, but the article is written for a different Linux flavor than the one you're using all the details will be wrong even down to the names of kernel modules to modprobe. Or if you want to download and run some code the incompatibilities mean a huge ./configure script, which might or might not work, installation of a compiler, and enough technical expertise to know how to deal with compilation and installation. Oh, okay, maybe your linux distribution maker has already done the dirty work for you, but the amount of effort going into the distro's build systems etc is yet another symptom of the incompatibility disease.
That you can relatively successfully download a .jar file and it just runs, that's a great and wonderful thing. Someone can click on a JNLP link or enter a page with an APPLET and have a very high chance it will just work. This is the result of the efforts to maintain compatibility, even when challenged by the 800 pound gorilla of the computer industry to create incompatibilities and a splintered market.
Don't get me wrong about Linux. I've been using Linux since 1993 and am rather happy with it overall. But at the moment I'm thinking of how I see tutorial articles like Setting default editor in ubuntu .. or CPU Frequency Scaling In Ubuntu .. or Hyperic HQ On Ubuntu 7.04 .. and while it's cool there's a lot of tutorials on doing X or Y or Z with ubuntu (my preferred distro) why is the tutorial specifically for Ubuntu? Why isn't the tutorial for Linux? Why are tutorials for Ubuntu incompatible with Redhat or Suse or the other distros?
It's unlikely the incompatibilities between Linux flavors are going to kill Linux.. just as the splintered Unix market did not in the end kill Unix. Hey, even Apple is part of the Unix camp (who, at the time of the C|NET article) was getting ready to release Rhapsody... shudder. But I think incompatibilities do hinder adoption of a software platform.