Java SE Development Kit Goes Open Source
- By John K. Waters
has taken one of the final steps on the road to keeping its promise to move its Java platform to open source, as announced at this week's JavaOne event. The Santa Clara, Calif.-based creator of the Java programming language is releasing a fully buildable Java Development Kit (JDK) for the Java Platform Standard Edition (Java SE) to the OpenJDK Community
"We are now, in regard to open-sourcing Java, done," said Rich Green, Sun's EVP of Software, addressing a cheering crowd of conference attendees.
OpenJDK is a key component of Java SE. It includes Sun's HotSpot virtual machine, the javac compiler and JavaHelp.
The JDK for Java SE is being licensed under the GNU General Public License version 2 (GPLv2). GPLv2 licensing means that developers now have access to all unencumbered source code for the core Java platform at the OpenJDK project on java.net. They also have access to Sun's Java application server code, and can create derivative works using unencumbered core and server code. Developers will also have access to the code for Sun's future implementation of Java SE 7, as well as binary plugs for the remaining few instances of encumbered code.
The GPL has been around since the 1980s, and it is the license under which the GNU/Linux operating system is distributed. Sun's source code contribution represents one of the largest ever offered under the GPLv2.
Although Sun holds the rights to the bulk of its Java Platform code, small pieces of it are still owned, or "encumbered," by others, explained Ken Drachnik, community development and marketing manager in Sun's Open Source Group.
"Java SE was made from contributions from many people over many years," Drachnik said, "and we didn't have the family tree of who contributed what code and when. So those code bits tend to be encumbered, meaning we don't have full copyrights. In the case of Java EE [Java Platform Enterprise Edition], we did all of the development, because we were the specification lead, and we had all of the copyrights."
The governance rules around open-source Java now require all contributors to sign a software contribution agreement (SCA), which is a dual copyright model, Drachnik said.
According to Rich Sands, community marketing manager for Java SE technologies at Sun, the percentage of Java's 6.5 million lines of code that remain encumbered is small. He won't estimate how small, but he says that it is code associated with Java 2D graphics technology, primarily font and graphics rasterizing. Some open-source alternatives are already available, Sands says, and he expects the open-source community to come up with more.
"Announcing they would do this last year was good," observed Forrester Senior Analyst Michael Goulde. "Doing it is better. It's good that they didn't let the encumbered code stand in the way; plugging the gaps with binary code is a reasonable solution."
TCK for Compatibility
Sun also announced that OpenJDK-based implementations can use the Java SE 6 Technical Compatibility Kit (TCK) to establish compatibility with the Java SE 6 specification. Once certified, these implementations will be eligible to use the "Java Compatible" brand.
TCKs are not open source, Goulde explains, and developers of non-open, JDK-based implementations must enter into some kind of licensing agreement with Sun to use them to certify compatibility.
"Sun will come up with some approach, some type of license or service, to allow OpenJDK-based implementations to certify," Goulde said. "It will probably be free, but won't involve a transfer of source code, because [Sun] doesn't want modifications to the TCK, or else there would be incompatibilities introduced."
Parsing the Board
Sun has created a five-member, interim governing board to guide the development of a constitution for the OpenJDK community over the next year, and to hold elections to continue the development process.
Kept under wraps until the first day of the conference, the list of board members includes Doug Lea, a professor at State University of New York at Oswego; Fabiane Nardon, CTO of Brazilian Healthcare Information Systems provider ZILICS; Simon Phipps, Sun's Chief Open Source Officer; Mark Reinhold, Sun's Chief Engineer on the Java Platform, Standard Edition; and Dalibor Topic, graduate student at the University of Saarland in Saarbrucken, Germany, who works at the Max-Planck Institute for Computer Science.
"The interim board consists of two Sun insiders and three outsiders," Goulde observes. "If their votes are equal, this means that Sun shouldn't be able to ram anything down anyone's throat. The board will set the stage for even more vendor independence in the permanent board."
Why all the fuss over a single OSS project?
"This may be the single most important open-source projects, if you assume that Java is one of the two most used development languages," Goulde said.
And keep in mind, Goulde added, that the Java Community Process (JCP), through which new features are added to the evolving Java platform technology, is still largely a Sun-managed process.
"As long as Sun owns the JCP process, anything that is good for Java is good for Sun," he said, "even if the revenue it derives is still only a small share of the total revenue that Java generates. Sun's objective is to find ways to grow its share of that without antagonizing the Java community. It's not easy. They're trying with tools, applications, and platforms. It has also helped Sun by making it appear less proprietary. For a company that, for years, had pushed a proprietary version of Unix on a proprietary processor architecture, this helps in its approach to customers who today are interested in open, standards-based, and vendor independence."
Sun began the process of moving Java SE and Java Platform Micro Edition (Java ME) to open source in November of last year. The company had promised to give up its long-time stewardship of all things Java in May. Java EE was moved to open source earlier as part of the Glassfish Project.
John K. Waters is a freelance writer based in Silicon Valley. He can be reached