After years of requests and debates, Sun Microsystems is ready to release Java source code under a Linux-friendly license.
On Monday, it plans to put the code for the programming software under the version 2 of the General Public License (GPL 2), which governs Linux and many other open-source products. The Sun-hosted Java.net Web site will provide access to Java Platform Micro Edition (Java ME) software for mobile phones and Java Platform Standard Edition (Java SE) software for desktop applications.
Sun already has open-sourced its server-side Java Platform Enterprise Edition software in a project called GlassFish. But it is now making that same software available under the GPL 2, rather than the Sun-conceived Community Development and Distribution License (CDDL).
The move will promote Java and make it easier to bundle with Linux, said Rich Green, Sun's executive vice president of software.
"This is a milestone for the whole industry," Green said. "Not only are we making an influential and widely used software platform for the Web available under an open-source license, it also underscores Sun's commitment to changing the whole industry model for how software is enhanced and developed."
The nature of the GPL is that additions to software available under the GPL must also use the license. So a developer who writes an application using the open-source Java software could be obliged by the GPL to also release that newly created application as open source.
However, Sun is employing the so-called "classpath exception," a license addition that allows the company to place limits on the software that the GPL covers, Green said.
The effect is that programmers who create applications using Sun's open-source versions of Java can use choose a different license for their applications, he said.
"In the case of Java SE (Java Standard Edition), we're enhancing (the GPL) with the classpath exception," Green said. "So when you're working on top or shipping applications with the (Java) libraries and virtual machine, you're not affected by the Java license."
In addition, Java creator Sun will continue to offer a commercial license, a "dual-license" structure that gives other software vendors legal indemnification and official standards certification.
Long road to the GPL
The move is the culmination of years of debates within Sun and sometimes loud calls from outsiders to open-source the Java programming language and associated software.
In the past, Sun has resisted calls to open-source Java, citing fears that it would cause incompatibilities among "forked" versions of the code. ("Forks" come when groups have different ideas about how code should progress and take it from a single point along divergent paths.)
Green said that the choice of the GPL and the clout of the existing Java product market makes incompatibilities less likely.
"GPL version 2 is the proper forcing function," he said. "By keeping all the industry innovations viewed and shareable, it pushes everyone toward compatibility."
In May, Sun said that it will deliver the Java code by the end of this year or by early next year.
Sun has intentionally not set up formal open-source projects around the Java Platform Micro Edition (Java ME) and Java Platform Standard Edition (Java SE) software and has not yet established a "governance" structure.
"It's an evolving process...We will be very active in these communities but we don't want to prescribe the outcome," Green said.
The community around Java ME is called Mobile and Embedded, while the community around Java SE is called Open JDK.
People who are using Sun's server software from the Glassfish project under the CDDL can continue with that version.
The GPL itself is now going through the review process for GPL version 3, which has attracted criticism from the developers of Linux kernel, among others.
Green said that Sun has not committed to using the GPL version 3 in the future. He added that people at Sun are part of the negotiations over GPL 3.
Sun may consider using the GPL for its other open-source products, such as OpenSolaris. "I'm completely signed up to reevaluate our whole licensing protocol," Green said.
Even as Sun finally comes through on its promise to open source Java, other open-source Java projects continue to operate.
In May 2005, the Apache Foundation started work on a project called Harmony to create an open-source version of Java SE under the Apache open-source license.
That project is being developed but is still in the "incubator" phase, which means that it's not fully endorsed by Apache.
Green said that open sourcing Java under the GPL will appeal to developers, particularly those familiar with Linux and its legal underpinnings.
Gaining developer followers is one of Sun's top priorities as it seeks to revive its software business.
"People have been hesitant to distribute Java worldwide with Linux (distributions) because of (concerns over) license alignment," Green said. "This is the last gate to ensure that Java will be distributed worldwide."