Sun Releases Java Under GPL Open Source License
November 20, 2006 Timothy Prickett Morgan
About time. It only took two changes of the executive guard at Sun Microsystems and the better part of a decade, but last week Sun finally began the process of open sourcing all of its Java technology. And in something of a shocker that quite literally left the audience of techies and the press speechless, Sun chose the GNU General Public License v2 as the means of letting go of Java.
When Sun finally let go, it did it with style and despite the contrarian views of many, Sun picked the best license to ensure the broadest amount of protection and distribution for Java. The GPL is the same license that the most famous open source software–the Linux operating system–uses.
Technically, the operating system is known as GNU/Linux, if you want to say it the way Richard Stallman, the founder of the Free Software Foundation wants you to say it. Stallman is a very technical guy, and he is very picky about this. While Stallman, the MIT professor who is the founding father of the open source software movement and the man who outlined why the quasi-proprietary nature of Java was a problem in a famous paper called Free But Shackled: The Java Trap, gets to be right about software licensing, he does not get to pick the language people use. Sorry. People will say Linux, not GNU/Linux, and they will say Java, not GNU/Java. And, oddly enough, Sun’s open sourcing of Java will make unnecessary various Java-related GNU projects, including the GNU Compiler for Java, the Kaffe free implementation of Java, the Japhar Java Virtual Machine, and a bunch of others.
Jonathan Schwartz, Sun’s president and chief executive officer, welcomed these GNU projects into the open Java community, which will be located on the Internet at Java.net. And in the spirit of the meritocracy, the best ideas from these and other Java-related projects will now fight it out to be part of Java.
Most of the scuttlebutt in the industry was that Sun would use a variant of its Common Development and Distribution License (CDDL), which it created to govern the open source variant of its Solaris Unix operating system (which is located at OpenSolaris). Specifically, Sun had created the Distro License for Java (DLJ), which is compatible with the GNU General Public License v2 that governs Linux as well as the Common Development and Distribution License (CDDL) that governs OpenSolaris, when it launched the open source variant of the Java SE 5 runtime environment back in May at JavaOne. Sun did a much cleaner thing here and just said Java will use GPL v2, period.
Stallman and Eben Moglen, the general counsel for the Free Software Foundation for the past 15 years and also a professor at the Columbia University Law School in New York, must have been very happy with Sun’s moves. But they probably were not expecting it. “Believe me, Richard and Eben were stunned when we called,” quipped Schwartz just before kicking off a question and answer session following the announcement. There were no questions for more than a minute, and he said, “We could just have a moment of silence.”
In his presentation, Schwartz outlined why Sun was making its moves with Java, and as you might expect, he chose the most benevolent terms to describe Sun’s moves and motives. And what he said bears some attention, so I will quote him at length.
“This is a really fundamental change, not only for the fate of Sun, but for the fate of so many who are looking to the network as a source of value, as a source of opportunity, as a force for change, and ultimately as a force for progress,” Schwartz said.
He then went on to explain the guiding principle behind Sun’s business model for the past two years as it has taken its operating system, middleware, and Sparc T1 processor specs open source. The OpenOffice suite has been open source for years now boasts over 75 million users, according to Sun. There are 4 billion Java devices in the world–a lot of them cell phones and PDAs. There are over 6 million registered Solaris 10 licenses after Sun started giving it away in January 2005, and there are over 16,000 people contributing to the OpenSolaris cause. The NetBeans Java application development environment project has 8 million downloads, growing at 7 percent each month, and has approximately 300,000 connected users on its site every day. The GlassFish Java application server, which Sun released as open source earlier this year, is the busiest part of the Java.net site.
These are all big numbers, to be sure. And it is debatable whether or not Sun has got its bait back on any of these efforts to date. Sun got some royalty money on Java technologies, and has developed programs that use Java technology that it in turn sells and offers support and integration services for. But there is another thing you have to consider. Look at all of the press and free advertising and marketing Sun has gained in the past decade. And look at all of the goodwill it has engendered with the open source community in the past 18 months.
Java was not just a glorified version of C++ running on a virtualized computer system implemented in software; it is a technology and brand that has made Sun more of a household name than any other IT suppliers aside from IBM, Intel, and Microsoft. Java made Sun a player, and it paid for itself with the royalties that the companies behind the 1,000-plus members of the Java community process shelled out to be players, too. Java has more than paid for itself with all of that free advertising, marketing, and influence, too.
Now, Java is busted wide open beyond the Java Community Process, no matter what Sun says about the benefit of that community and the more than 300 Java Specification Requests that its members have contributed to the cause to try to improve Java. Java needs a process to steer what happens to the code–to be sure. But now, Java is larger than the JCP. It is now a free piece of intellectual property that anyone can take and modify–so long as they provide those modifications back to the community.
In short, Java can be improved by anyone and Java does not need Sun or any other vendor to live. Java now lives on the Internet, not inside of Sun’s walls. Just like OpenSolaris, OpenOffice, and OpenSparc. Given this, OpenJava would have been the obvious name for the whole set of Java-related projects.
By choosing the GPL v2 license, Sun has sidestepped the battle between Stallman and Moglen, who want people to move up to the proposed GPL v3 license, which has some digital rights protections and other features that not everyone–including Linus Torvalds, the creator of Linux–is happy about. During the announcement, someone sent in a statement by chat session that said IBM would have been happier with an Apache license, which it has used for a number of open source projects itself. “IBM is free to take its implementation and the technology it has created and go pursue whatever avenue it thinks is most appropriate,” said Schwartz. “This is what we in the Java community thought was the right answer. I find it a bit curious that IBM would oppose the GPL–this seems like an odd stance to take.” GPL v2 allows the widest and most immediate distribution of open source Java technologies, and Sun made the right call.
What Sun believes–and has demonstrated by its actions–is that volume ultimately drives value. “The entirety of our business is predicated on this network effect, even if people are not using Sun technology, because as we bring more people online, it drives a greater opportunity for Sun,” explained Schwartz. “It also happens to drive a greater opportunity for other players in the market. There is a rising tide, and it lifts all boats in that ocean of opportunity.”
While this is true, what is also true is that at just over 5 million Java developers worldwide, Sun is about halfway to a target it set many years ago for itself. The fact that Java was not open source was probably a factor in Microsoft’s decision to create an alternative, which we know as .NET, with its C# programming language and its Common Language Runtime environment, which is analogous to the Java Virtual Machine. As Linux has risen in prominence, the quasi-proprietary nature of Java meant it could not be co-mingled or, better still, tightly integrated into Linux. Once Microsoft was shut out of the Java development process, it didn’t want anything to do with Java, either. So the two only growing server platforms and the dominant desktop platform did not fully support Java in an integrated fashion–even if, technically speaking, you can obviously run Java on Linux and Windows.
“It is not OK to ship an exotic piece of technology and derive royalties from it,” said Schwartz. “Our strategy is to drive the network effect, to drive volume so we and our partners–and quite frankly, some of our competitors–can drive value in the marketplace.”
Only a vendor that believed it can implement open source technologies better than others and can provide the best support and service behind those products would take such a bold stance. But this is clearly Sun’s strategy, and one that will, if it succeeds in the market, call into question other ways of charging for IT products.
“It would not surprise me in the least to see a growing number of proprietary software companies express displeasure with the growing open source movement,” said Schwartz when asked about licensing issues and the Microsoft-Novell alliance announced a few weeks ago, which will see Microsoft selling SUSE Linux and Novell and Microsoft protecting each other with their respective patent portfolios. “I understand it presents a threat and a challenge to conventional business models,” said Schwartz, adding that Sun was doing everything it could to lower the barriers to the adoption of its technologies. “Those that are trying to defend their barriers are fighting freedom, and I wouldn’t want to be on the wrong side of that battle.”
Here is what Sun has actually done. Three components of the Java SE 5 platform–the Java HotSpot JVM, the Java programming language compiler, and the related JavaHelp software are all available under the GPL v2 at Java.net. To give you a sense of scope, Java SE has about 6 million lines of code, which is equivalent to the core Unix operating system. Scrubbing the code and cleaning up messy notes is what takes so long when taking a project open source.
In the first quarter of 2007, Sun will have a full buildable Java development kit, including JVMs and libraries. The Mobile and Embedded Community at Java.net will steer the Java ME products, which are in eight out of 10 cell phones in the world. The source code to Java ME is available now, and the Java Device Test Suite, which is used for compatibility testing, will be available later this year. On the Java EE front, the Project GlassFish implementation of the Java EE spec will still be available under the CDDL license, but is also available under the GPL v2 license. The GPL v2 version will be available in the first quarter of 2007. The OpenJDK project is where the open source version of NetBeans, Sun’s open source Java development kit, will live. NetBeans 5.5 was just announced this summer, and in the spring of 2007, a full Software Development Kit that anyone can compile from the open source.