First, Sun Microsystems Inc. wouldn’t do it. Then Sun teased us with it. Now, on Nov. 13, Sun will finally open-source its implementations of Java under the GNU GPLv2 (General Public License version 2).
On Monday, Sun will release the first pieces of source code for Sun’s implementation of JSE (Java Platform Standard Edition) and a buildable implementation of JME (Java Platform Micro Edition). Sun will also be making JEE (Java Platform Enterprise Edition) available under the GPLv2 license. JEE had already been available under Sun’s CDDL (Common Development and Distribution License), through Project GlassFish.
Sun states that this announcement represents one of the largest source code contributions under the GPL license, and also that it is the open-sourcing of one of the industry’s most significant and pervasive software platforms.
It wasn’t so long ago that former Sun CEO Scott McNealy said that Sun didn’t see the point in providing an open-source implementation. “We’re trying to understand what problem does it solve that is not already solved,” McNealy said.
Sun is singing a very different tune, not three years later. “By open sourcing Sun’s implementation of Java technology, we will inspire a new phase of developer collaboration and innovation using the NetBeans IDE (Integrated Development Environment) and expect the Java platform to be the foundation infrastructure for next generation Internet, desktop, mobile and enterprise applications,” said Rich Green, Sun’s executive VP of Software in a statement.
“With the JDK (Java Development Kit) released as free software under the GPL, Sun will be working closely with distributors of the GNU/Linux operating system, who will soon be able to include the JDK as part of the open source repositories that are commonly included with GNU/Linux distributions,” he added.
Industry figures, who had been asking Sun to open-source Java since 2004, were pleased with the move, and, in particular, Sun’s choice in licenses. “Everyone has been expecting that one day Sun would open source Java technology, but no one expected just how far they’d go — GPL. A bold move, and a great opportunity both for Sun and for free and open source software,” said Tim O’Reilly, founder and CEO of O’Reilly Media.
Specifically, Sun is releasing an implementation of JSE in the Java.net community, consisting of Java HotSpot technology, the Java programming language compiler, and JavaHelp software. The company also expects to release a buildable JDK in the first quarter of 2007, following established free software community practices for licensing virtual machines and their associated libraries.
Java HotSpot technology and Javac are two of the most important elements of Java SE. Java HotSpot technology is the Sun implementation of the JVM (Java virtual machine), and is the core component of the JRE (Java Runtime Environment), which translates Java code to the specific operating system and chip architecture, allowing Java software to run everywhere. Javac is the core of the Java complier.
These first components of the OpenJDK project will allow developers to experiment with the compiler, try out new language features, port the JVM to new hardware architectures and operating systems, fix bugs and contribute new features. Through the OpenJDK project, developers will be able to directly influence the future of the JDK implementation, participate with their peers in an open community, and help take Java technology where it hasn’t been before.
Sun is also freeing the source code for Sun’s feature phone JME implementation. Additionally, the company is making its source code for the Java ME testing and compatibility kit framework available. Later in 2006, Sun will release additional device-oriented source code, including its advanced operating system phone implementation and the framework for the Java Device Test Suite.
Sun is releasing these technologies as open source in order to accelerate Java’s development and evolution. In addition, Sun hopes that it will reduce fragmentation and drive down development costs throughout the Java ME ecosystem. In addition, this move will provide easy access to the latest versions of Java ME platform technologies and, for the first time, enable the whole Java ME community to follow the activities of and participate in the development of these technologies.
As for JEE, Sun is releasing the source code for Project GlassFish (part of the GlassFish Community) under a dual open source license. In addition to CDDL, Project GlassFish will also be available under GPLv2 in the first quarter of 2007. By adding a second license, Sun hopes to make it easier to combine and distribute GlassFish code with other GPL licensed communities.
Also, by offering all the Java platforms under a common license, Sun will make it easier for developers to distribute updated versions of Java SE, Java EE, and Java ME together.
The Java toolkits aren’t being neglected either. The recently announced NetBeans 5.5 contains a variety of new features, including Java Persistence API and JAX WS 2.0 productivity tools, Subversion support, and enhancements to the NetBeans GUI Builder (formerly known as Project Matisse).
Sun states that the NetBeans IDE will make getting started with JDK easier for open-source developers because the open-source components have already been configured as NetBeans projects. Developers can download the source code, open it in the NetBeans IDE, and use the Build Project command to build it. Further information and a step-by-step tutorial are available here.
Sun is also trying to bring new open-source developers into the Java fold, by encouraging them to use Sun’s Developer Services programs and join join the Sun Developer Network Program at no cost.