After much market speculation, Sun Microsystems today announced it will adopt the GNU General Public License (GPL) to govern open source Java. It also releases the first set of source codes to the developer community.
The move comes after Sun last month led the industry to believe it would likely use its own Community Development and Distribution License (CDDL), which currently governs its Solaris operating system.
Matt Thompson, Sun's senior director of technology outreach and open source programs office, told ZDNet Asia that Java will be governed under GPL version 2 (GPLv2), with Classpath Exception.
GNU Classpath encompasses core libraries that support the Java platform. Under Classpath Exception, developers can add their own source codes to the application and distribute it without having to change the license of their software.
Thompson added that the Classpath Exception would give developers the option to add their own codes to Java, and not be forced to latch their modified program and distribute it under the GPL. This, he added, would encourage developers to "build innovation without inheriting strict or unfair licensing terms".
"When we open source Java, we're not looking for ways to make tremendous money out of it but [rather], to create a larger ecosystem," he said. "If you look at the [various] licensing terms [available today], they either inhibit or promote innovation. We want to allow as much innovation, as well as, as much freedom as possible."
"From a licensing standpoint, we understand the need to make sure developers have uninhibited access to source codes and that's why we chose the GPL."
Written by free-software advocate Richard Stallman, the GPL is the most commonly used license to govern open source software including Linux, and is currently undergoing its third revision. Apart from the GPL, other open source software licenses include Mozilla Public License, Lesser GPL, Apache Software License and of course, Sun's CDDL.
Sun will also be adding the GPLv2 to its server platform Java Platform Enterprise Edition (Java EE), already an open source offering under Project GlassFish, in the first quarter of 2007. Currently governed under the CDDL, Java EE will be offered under a dual open source license model.
By adding a second license, Sun said it is aiming to "simplify the process of combining and distributing [Project] GlassFish code with other GPL licensed communities".
However, Sun has no plans to move Solaris to the GPL--at least, not yet.
Thompson explained: "When we were ready to make Solaris open source, we were looking for a license that allowed us to ensure there is complete compatibility [between the various Solaris distributions]." And the GPL, at that time, did not allow for this, he said.
He noted that the Mozilla license came closest to fulfilling Sun's requirements for open source Solaris, but was written specifically for the open source Web browser.
"Therefore, the CDDL model we came up with was really an augmentation of the Mozilla license," he said, adding that the Sun-developed licensing model remains "an important part of our OpenSolaris strategy".
With Java, Thompson said, product compatibility is--and has been from the start--an essential component of the programming language.
"Unlike an OS such as Linux, where there are multiple variants, with Java we've been able to manage the process and maintain compatibility across the ecosystem," he said, noting that developers have to meet a set of requirements--which helps ensure compatibility--when they build on Java.
He added that "no one license fits all", noting that "that's why the OSI (Open Source Initiative) has approved so many different licenses". The OSI oversees and grants official status to open source licenses.
Thompson said: "We think the GPLv2 is a good fit [for open source Java], but whether we'll look at it for Solaris is a decision for the future."
First out: JavaC and Hotspot
Sun today also released the first batch of source codes for Java Platform Standard Edition (Java SE), including the JavaC compiler and Java Hotspot Virtual Machine (Hotspot VM), and Java Platform Micro Edition (Java ME).
Thompson explained that the JavaC and Hotspot VM are the most essential and basic components of the Java programming language. According to Sun, these components will allow developers to experiment with the compiler and new language features, and port the VM to new hardware architectures and OS platforms.
Sun is also targeting to release a buildable Java Development Kit (JDK) in the first quarter of 2007.
Rich Green, Sun's executive vice president of software, said: "With the JDK 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."
Source codes for the Java ME's feature phone implementation and testing and compatibility kit framework, are also immediately available, while other components such as advanced OS phone implementation and the Java Device Test Suite framework will be released later this year.
According to Sun, there are over 5 million Java developers worldwide and more than 3.8 billion Java-enabled devices.