In announcement today at the annual JavaOne conference, Sun Microsystems has announced that the Java Development Kit (JDK) is now ready for liberation. Sun has been working towards releasing all of the major components of the Java programming language under the General Public License (GPL), a widely used open-source software license that permits modification and redistribution.

After years of pressure from the open-source community, Sun announced plans last year to release Java under an open-source license. Despite the skepticism of vocal critics (including myself), Sun is now fulfilling that promise and making it a reality. This is a major victory for the open-source community and a very promising move from Sun that marks a significant change from the days when the company vocally attacked the GPL and wielded dictatorial control over the future of Java. Sun is opening the door to broader community participation and making it possible for developers to use, extend, and redistribute Java technologies in a wide variety of new and innovative ways. It could potentially help expand the reach of Java and make it a more important part of the growing open-source software ecosystem.

Unfortunately, Sun doesn't own the rights to all of the code in the JDK. Although the company attempted to get third-party rights-holders to open up relevant technologies, there are still some components that can't be released under an open-source license. Sun is eager to work with the open-source community to create open replacements for encumbered components, most of which are related to Java 2D. Until suitable replacements can be devised, Sun is making Java 2D and other encumbered pieces of the JDK available separately as proprietary plug-ins.

In the years leading up to Sun's decision to open the Java source code, the company frequently cited compatibility concerns as the primary reason for perpetuating Java's proprietary status. Sun was concerned that the ability to modify and redistribute Java components would lead to fragmentation. Although Sun representatives now say that they don't anticipate forking, the company is committed to promoting interoperability by encouraging OpenJDK derivatives to use the Sun Java SE 6 Compatibility Kit to test compliance with the official Java Specification.

Sun is also establishing an OpenJDK governance body that will consist of two Sun employees and three members of the external Java community. Although Sun will appoint the initial temporary members, the OpenJDK community will elect a new board once the rest of the governance model is in place.