To Java or Not to Java?
In the open-source world, Java has had the kind of checkered past usually found in a somewhat tawdry soap-opera character. Java, she is quick to love, slow to faith, and when there's a ruckus stirred up in the open source community, Java never seems far away.
Sun Microsystems first started Java as a brainstorm: they would seize the new Internet markets of the 1990's with a multi-platform language that would be "write-once, run anywhere". A language that could run the same across all platforms, without modification, and could have applications in everything from embedded cell phone tech to super-computing laboratories. But with this idea, Sun bungled things. They were convinced that they had to make the Java engine closed-source in order to make money off of it, and they could get Java to become an industry standard through media hype alone. In addition, they derived much of Java's syntax from C++, the then-standard compiled language which itself was quite prevalent, but was already becoming the canonical language you avoided unless you absolutely had to use it.
Today's programming landscape shows these early plans laid mostly to dust. Javascript, originally intended to be a helper for Java, instead grew to replace much of Java's intended functionality. The Java virtual machine was closed-source as were many of the libraries, which repels programmers who would rather use a completely open framework like Python or Ruby. Java suffered from trying to be practical for all purposes and yet be appealing to management; today, derivative technologies like the much-hyped AJAX platform have largely eclipsed it. Sun has had to helplessly stand by and watch a host of industry competitors eat Java's lunch.
Java has had some success, of course, though it pales in comparison to what it could have been. Due mostly to marketing, Java has seen use in many platforms and applications, including those cell phones and super-computers, but failing miserably on the common desktop. It has triumphed in the classroom, becoming a good teaching language; unfortunately, students are churned out of this system knowing Java by default, and so the industry has hired Java programmers and used Java where, had Java not been the classroom standard, another solution might have been better. Another pie in the face for Sun, the ultimate indignity, has been to suffer the fate of COBOL and Pascal: to be the language used for the sole reason that more people know it, rather than because it has other merits. By the same effect, Java has become the language that programmers learn simply because it gets them a job.
The poor performance of the Java virtual machine has been it's greatest Achilles' heel. Java has become synonymous with being slow, because it's original purpose was to simply be cross-platform, back when cross-platform languages were a miracle. Today, a dozen other languages do the same thing by being cross-platform, and yet many of them can run circles around Java's plodding performance.
Sun has at last made some indication that they've learned from past mistakes. They are making public statements that they intend to release all of Java under an open-source license, just as soon as they figure out how to do it. This will fix a multitude of it's problems, such as opening the source to the Java virtual machine will invite developers to tune up it's speed, having a less-restrictive license will make it more appealing to developers who have a choice, and being a truly open framework will help it to be more usable across platforms, negating the various copy-cat versions such as Microsoft's early J++ engine and other implementations which have come close to, but not been, fully transparent to Java code. Whether Sun can rush the Java development world this salvation in time remains to be seen. But count on Java to have a few good punches left in it.
Research