Sun Microsystems is definitely feeling the pressure to open source the Java programming language. However, they are doing it an API at a time.
The first to go was Servlets and JSP, under an Apache open source license project, Jakarta, in an effort to create a standard implementation for the Tomcat Web Server. There is also the JavaLobby Foundation Applications (JFA) which has open source license to some of JavaBeans (client-side) and Java Foundation Classes. Additionally, at O’Reilly’s P2P Conference, JXTA was announced. It will be an open source P2P Java networking API similar to Jini, but with XML integration and improved security (none of which Jini offers at this time).
What’s next for open source Java?
Based on my research and an enlightening Q&A at a recent Sun event, more of the following Java API will be open sourced.
- Expect the Java 2SE as a whole to be open sourced over the remainder of this year and possibly the first of next year. This will include the JFC, such as Swing and Java 2D.
- The Java Media API will also be open sourced. This includes Java 3D, Java Sound, Java 2D, Java Media Framework, and more.
- Jini will be under an open source project, perhaps part of the JXTA open source license.
However, the Java 2 Enterprise Edition (J2EE) will not be in the short-term, according to Sun’s VP of Java Software, Richard Green. This makes sense since most of Sun’s Java licensing revenue comes from the use of the J2EE.
As far as the Java 2 Micro Edition and Consumer Java API, such as Personal Java, Java TV and Java Phone, it’s too early to tell.
It’s amazing to see features in technology newspapers and magazines that think Microsoft’s .NET strategy intimidates Sun Microsystems, its Java licensees and Apache’s open source Java license. I get the impression that most of these reporters still think of Microsoft as a monopoly of some sort. They would be correct, if they only consider the desktop PC where the Windows OS still has around a 90% market share.
However, the .NET strategy is a platform dedicated to the programming and development of the network computer where applications run on the server, not the client. For now, it depends primarily on the success of the Windows OS for the server (Windows NT, Windows 2000 Server edition, etc.). Unfornately for Microsoft, the server-side Windows OS has only a 10% market share, clearly a minority player in this area. That’s because developers do not like the Windows OS as a server-side platform. It’s performance poor; has high overhead; uses too many resources; and lacks interoperability with other OS environments.
Therefore, Microsoft’s .NET strategy is in doubt, unless they seriously consider most of the following suggestions.
- Improve Windows OS server performance and add interoperability with other OS environments.
- Develop a Windows-flavored Linux (Winux).
- Develop a new Windows OS with a Linux Kernel (i.e., similar to Mac OS X which will use a BSD Kernel).
- Make C# (C-Sharp) a true cross-platform programming language instead of its current application as a converting language from Java to a Windows-only Java development (J++).
- Develop new component model that would conform to previous suggestion.
- Offer XML integration features within C#.
- Change C# branding if they are planning on submitting to a standards body of some sort (i.e., ANSI/ISO).
- Open Source the C# programming language and any of its platforms, not yet defined at this time.
- The .NET Visual Studio (IDEs) will incorporate the changes above.
If not, then the server-side OS will continue to be dominated by UNIX, Linux (and all its flavors) and Solaris, as evidenced by the Java licensees’ Web Application Server market share, at around 90%.