Sun Releases Java Platforms under GPLv2

Sun Microsystems announced today that it has begun the process of releasing its Java Platform Standard Edition (Java SE) and a buildable implementation of its Java Platform Micro Edition (Java ME) as free software under the open-source GNU General Public License, version 2 (GPLv2).

"We are beginning the process by open sourcing parts of Java SE and much of Java ME," says Eric Chu, Sun's senior director of mobile and embedded product marketing. "Over the next six-plus months we will put the rest of the pieces out there."

The Santa Clara, Calif.-based systems company is open sourcing three Java SE components: Java HotSpot, Sun's implementation of the JVM; the Java programming language compiler (javac); and the JavaHelp software, a documentation complement to the JDK. Sun is also making the source code for it's feature phone Java ME implementation available immediately in the community.

Today's source code contribution represents one of the largest ever under the GPL license, under which the GNU/Linux operating system is also distributed. Sun is actually releasing its Java implementations under the GNU GPL+Exception, which is the GPLv2 license with a clarification from the Free Software Foundation that users of this code do not have to open source their own code, explains RedMonk analyst Michael Coté. The company is "dual-licensing" Java, which means that users can still choose to license Java under existing terms.

"We evaluated a lot of licenses over the past six months, and we decided on the GPL, because it forces innovation out into the open," says Ray Gans, Sun's senior program manager for Java SE. "It's the same license GNU Linux uses, and anyone who distributes code or modifications under the GPL must publish that source code. We also think it will help minimize proprietary forks. But we're not walking away from our commercial licenses."

Sun is also adding an additional GPL to the already open sourced Java Platform Enterprise Edition (Java EE), which is now available under Sun's own Common Development and Distribution License (CDDL). The company open sourced Java EE through the Glassfish Project in June. Glassfish is an open source development project focused on building a Java EE 5 app server.

Sun is open sourcing the reference implementations of the Java SE and ME platforms, which shouldn't be confused with the Java language, explains Forrester analyst Michael Goulde. "People have been operating under the assumption that when Sun spoke about open sourcing Java, it was talking about making the Java language open source," he says. "Making a language open source is different from making a piece of software open source. There’s no need to open source the syntax or semantics, because anyone can use those."

What's left for Sun to open source? Not much. Goulde says that we can expect to see a few more of the company's reference implementations of other Java specs (JSRs) and a commitment that all future reference implementations will be released under open source licenses.

The impact of Sun's decision to open source all flavors of its Java platforms remains to be seen, but one likely benefit is that it could lead to more consistency and compatibility across implementations, which would reduce porting and testing requirements, says Goulde. Overall, however, he doubts that it will make much of an impression on the average Java jock.

"I don’t think this makes a huge difference to a large majority of Java developers," he says. "Some may want to participate in the open source projects, but most won’t. There may be more perception that they can have input on future directions, but that really needs to be through the [Java Community Process]. Sun may gain some additional developer loyalty that currently is directed toward Java, but there won’t be a huge difference."

What, then, does Sun get out of open sourcing its Java implementations? Primarily, wider acceptance of Java, says RedMonk's Coté, but also the involvement of more people in the development and maintenance of Java, which relieves Sun of the burden of innovating on its own. "Instead of having to be a Sun employee to work on Java, now anyone who has the skills can potentially contribute," Coté says, "not only with code, but also testing, documentation, and even direction. Eclipse is a good example of how a project can achieve wide acceptance by being open source."

Goulde agrees: "Ideally, [Sun] would get widespread adoption of its technology, as well as the involvement of hundreds of programmers in improving and enhancing it," he says. "It is costly to write, test, and certify software. Having a community help with that is not a trivial benefit. They also get perceived as a kinder, gentler, friendlier company."

About the Author

John K. Waters is a freelance writer based in Silicon Valley. He can be reached at [email protected].