When Java was announced in 1995 it promised to fundamentally change the landscape of the computer industry. Java offered not only a revolutionary means of writing and distributing software for the Internet, but something even more important: freedom from platforms. But today that dream is threatened by a number of attempts to "platformize" Java. One possible solution is to make Java into a true open standard.
Platforms, the proprietary hardware-OS environments created by the likes of Microsoft-Intel ("Wintel"), SGI, IBM, Apple and yes, even Sun, have been the organizing principle of the computer industry since it began. By strictly controlling access to their platforms and, therefore, their audiences, these leading companies have built strategic channels for themselves and their ISV's. But Java threatens these empires because the Virtual Machine would make software essentially independent of platforms.
As for the other platform giants, they jumped on the Java bandwagon because they had no choice. They had to keep up with Sun and emerging Internet technologies in order to protect their own interests. Netscape started the cascade by licensing the VM into Navigator to defend against JavaSoft's HotJava browser and to increase their lead against Microsoft's then-nascent browser project. Microsoft quickly followed suit in order to protect Windows 95 and NT from Java-enabled Solaris platforms, and to position Explorer against the already Java-enabled Navigator. IBM did it because they were trying to catch up with the cutting-edge of the Internet. Licensing the Java VM was clearly the "in" thing to do in 1996.
But today things appear to be changing. Microsoft's "Embrace and Extend" strategy is just the beginning of the "platformization" of Java. Java VM licensees are required only to support the fundamental core functionality of Java; they aren't prevented from extending Java in their own implementations. Microsoft's VM is engineered to support all the standard Java functionality, plus it adds new APIs that let Java developers access native methods on the Windows platform, and it's faster than other VMs. Netscape is also trying to platformize their VM by selling a library of Java GUI widgets called the "Netscape Foundation Classes" in the hopes that developers will write Java code specifically for their browser. Developers can now write Java code that works on specific platforms---the very antithesis of the Java mission!
Why would someone choose to develop software in Java using Windows specific native methods when they can write such software so much faster in C++ using existing Windows-specific IDEs? If you can live with being limited to a single platform, then you can live without the benefits of Java. Java is most beneficial for Internet and cross-platform applications. If that's not what you are doing, then Java may not be the best tool for you. In light of this, attempts to platformize Java really don't make a lot of sense for developers and I predict they won't succeed in the market because nobody needs platform-specific Java.
Still, the attempts at platformizing Java could result in a world in which Java applications are less platform-independent. If Microsoft or Netscape can convince enough Java developers to write for their APIs, there will suddenly be a lot of Java code that won't be cross-platform. Sun has responded with the "Pure Java" campaign, designed specifically to prevent platform-specific Java applications from taking off. However, it won't prevent the platformization of Java because it doesn't truly prevent the other platform companies from worrying about Java undermining their platforms. But if the platformization of Java isn't prevented, then there won't be any compelling reason to develop in Java at all, and that will be the end of Java.
Turning Java into an open standard won't harm Sun's ability to make money from Java. On the contrary, it will be better for Java, and therefore better for Sun, to make Java as neutral as possible. By eliminating the obvious conflict of interest inherent in Sun's proprietary ownership of Java, Sun would make Java less threatening to other major platform companies and would enhance their motivation to support it.
Although I applaud Sun for creating Java and getting it to where it is today, I think Java is outgrowing Sun and soon Sun may be more of a liability to Java than a benefit. It doesn't make long-term sense for Java to be controlled by any platform company, because Java's only significant advantage to the industry is the fact that it frees everyone from the limits of the platform paradigm. In the Internet industry, we say, "When you make something, give it away for free." This reminds me of another adage from an earlier era that might be appropriate to Java, "When you love something, set it free."