It's no surprise that Sun Microsystems is making its core Java platform freely available; what is somewhat unexpected is the vendor's choice of open source license.
In all the open sourcing of its software to date, Sun has used its own open source license, CDDL (Common Development and Distribution License).
What Sun is due to announce Monday is the open sourcing of both its Java Platform, Standard Edition (Java SE) and its Java Platform, Micro Edition (Java ME) under the GNU general public license version 2 (GPLv2).
Popular in the free and open source software community, the GPL which was created in 1989, then revised as GPLv2 in 1991, is used by the Linux operating system, MySQLAB's database, and the Samba file-and-print server project.
Sun first committed back in May to make Java freely available, and since that time, company executives have been consulting with Sun partners and developers to determine which license would best meet their needs.
"GPL is the right choice," said Laurie Tolson, Sun's vice president of Java developer products and programs. The move shouldn't be read as an admission that CDDL has failed, she added, although convincing developers to adopt a newer open source license has taken more time than Sun might have hoped.
Compatibility was a key driver for Sun in the decision to use GPL for Java, Tolson said. In particular, the vendor is hoping that GNU/Linux distributions such as Debian and Ubuntu will bundle Java into their operating systems and so take the development environment into new markets.
At present, the plan is to offer the open source versions of Java SE and Java ME under GPLv2. But Sun is open to adding another open source license, should the vendor not see rapid uptake of Java under GPL, Tolson said. At the same time, Sun will continue to provide commercial versions of its Java technologies for those users seeking paid support.
Sun also committed to providing dual licensing for Project GlassFish, its open source application server initiative based on the Java Platform, Enterprise Edition (Java EE). Underway since June 2005, GlassFish was available under CDDL. Come the first quarter of next year, GlassFish will also be licensed under GPLv2 to make it easier for developers to distribute versions of Java SE, Java EE, and Java ME together.
The rest of Sun's open source software, including its OpenSolaris operating system, will continue to be offered under CDDL. "We'll continue to evaluate what delivers our software in the most effective manner," said Jean Elliott, Sun's director of product marketing for Java SE. Sun will consider factors such as increasing compatibility, driving innovation, and building community, she added.
Monday's release of Java ME, known as Project Mobile and Embedded represents the technology found in the Java-based phones in today's market, according to Eric Chu, Sun's senior director of mobile and embedded product marketing.
Sun is hoping open sourcing Java ME will help stop the fragmentation in the market and instead drive convergence around the freely available version of Java. "We also hope to deepen ties with developers," he said, not just in mobile games where Java has already been very successful, but also in multimedia, information services, and messaging. Open source Java ME should also facilitate more feedback between Sun and mobile developers.
Sun has been "proactively involved" already in the discussions around the drafts of the next release of GPL, Tolson said. Sun isn't committing to moving from GPLv2 to GPLv3, but will look at how the draft license continues to evolve. So far, some leading open source developers are unhappy with the provisions in the GPLv3 draft. Linux creator Linux Torvalds objects to the limitations of the proposed DRM (digital rights management) provisions.
Monday's release of Java SE as the OpenJDK project is an initial launch, with the full open source implementation of the specification to come in March, Elliott said. Starting with three core Java components—HotSpot, Compiler, and JavaHelp—will enable Sun to build up a community around OpenJDK as well as get its governance model in place and review any outstanding encumbrances to making the rest of Java SE freely available, she added.