Sun releases Java's source code under the GPL--except for some third-party chunks and the compatibility test kit. Video: Gosling on Sun's JavaFX
The Santa Clara, Calif.-based server and software company officially released the software at its OpenJDK Web site on Tuesday, at the beginning of the JavaOne conference here.
The move fulfills a promise made earlier to move the widely used software into the open-source realm, where anybody can see, modify and redistribute the Java software. Sun resisted making Java open-source software for years, worried that someone would "fork" the project into an incompatible version, but the company softened its stance.
"We are now, as regards the open-sourcing of Java, done," Rich Green, Sun's executive vice president of software, said in the conference's opening speech.
Well, mostly done. There are some notable exceptions to the open-source nature of Java.
For one thing, Sun was unable to convince some unnamed third parties who had supplied technology to Java that they should release their components as open-source software, Simon Phipps, Sun's chief open-source officer, said at a panel discussion Tuesday.
Those components deal with rendering graphics and fonts on a screen and with choosing colors. They also involve some elements of sound and cryptography, said Tom Marble, Sun's OpenJDK ambassador. "We have already contacted the copyright holders. We were unable to negotiate release under an open-source license," Marble said.
To sidestep the issue, Sun for now includes the proprietary software as prebuilt "binary" modules that programmers can attach to the versions of Java built from source code.
Phipps wanted to name the third-party companies but was "voted down," he said: "I was an advocate of name and shame." Instead, Phipps had to satisfy himself with an exhortation by Richard Stallman, the visionary who launched the Free Software Foundation and wrote the initial General Public License (GPL) that now governs open-source Java.
Making things easy with Sun's JavaFX
"Only one last obstacle remains in liberating JDK and disarming the Java trap completely: some nonfree, legally encumbered code," Stallman said in a statement. "The free-software community and Sun must work together to replace that code with free software."
Java is a software technology that enables programs written in the Java programming language to run on a variety of devices without having to be tailored for each one. It accomplishes this through use of a "virtual machine," which translates Java instructions into instructions in the native tongue of a computing system--for example, Mac OS X, Linux or Windows PCs. Various versions of Java exist for desktop computers, mobile phones, Blu-ray Disc drives, servers and other computing systems.
Sun's worries about compatibility led it to keep a tight grip on another Java component: the test kit used to certify that a version of Java behaves as Java should.
Sun said on Tuesday that people building Java from the OpenJDK source code may use the official compatibility kit. Thus far, it said nothing about other organizations, such as the Apache Harmony project that's building its own open-source version of Java under a different license.
Harmony organizers have .
In an interview, Green said Sun hopes to make the compatibility test kit somewhat more broadly available, for example, for free use to nonprofit groups. Details are yet to be worked out, he said.
Making Java open-source means, among other things, that it will be easier for Linux sellers to include the software in their products. Sun also hopes that it will increase programmer attention and make it a stronger challenger to rival technologies such as Adobe Systems' Flash.
Sun chose the GPL to govern Java because it best preserves compatibility, Green said.
"Compatibility is critically important, and the GPL...forces all the work to be done in the open and thus maximizes the chance that compatibility will be maintained," Green said.