Why Java will be GPL'd

A few months ago I wrote an article called "Why Java won't be GPL'd". Now the blogosphere is abuzz with news from "unnamed industry sources" that Sun is poised to do exactly that. So what's really going on?
Written by Ed Burnette, Contributor

It might be time for a certain ZDNet writer to eat crow. Or maybe not.

A formal announcement is not expected until Monday, but some sites are already reporting that Sun has picked an open source license for Java, and they say it's... GPL. Surprise!

[poll id=6] 

The GNU Public License, or GPL, was created in the 1980's by Richard Stallman in order to counter what he saw as the dangers of NDAs, commercialization, and proprietarization of software. It was wildly popular, especially among students and computer enthusiasts. Version 2 was released in 1991, with version 3 due out next year. GPL remains the single most popular open source software (purists would say "free software") license.

With a few notable exceptions such as Red Hat, GPL is largely anathema to commercial software companies. There are two main reasons. First, if you want to create a program that combines GPL-licensed code with your own code in certain ways, and distribute that combined work to others, then you need to release your own code under GPL as well. And second, you cannot charge a fee to someone just for the privilege of running your software. (You can charge for support, copying, branding, etc., but not for actually running it.) This changes the revenue model many software companies have used for years.

Other software licenses such as Apache and EPL don't have those restrictions on the developer. But one person's developer restrictions are another person's user freedoms. The choice of the best software license has been something of a religious debate among developers for some time. So naturally, when Sun announced they were going to make Java open source, it sparked a lot of speculation. Would they use GPL or not? With such strong feelings on all sides, the decision wasn't an easy one.

If Sun ends up using GPL, it's important to note that GPL will just be one more of several licenses that are available for Java. In particular, companies can pay Sun for a commercial license which gives them extra support and more redistribution options. This commercial license will give permission for a company to combine and distribute proprietary code with Java code, and to charge a fee to users to run the code (if they so choose).

Since Sun holds the copyright on the source, they are the only ones who can take advantage of this option. For example IBM couldn't automatically take Sun's code, tweak it a bit, and bundle it with, say, the Eclipse Rich Client Platform (which uses the EPL license), and then permit a third party to write programs and redistribute the resulting combined work. If Sun chose a license such as EPL, Apache, or even CDDL, then they might not have a choice since those licenses are much more "permissive" from the programmer's point of view than GPL. Sun's desire to retain control of Java was undoubtedly a large factor in the license decision, as was the desire to continue to make the commercial license valuable for those willing to pay for it.

Sun CEO Jonathan Schwartz, who once labeled the GPL as "economic imperialism", says in his blog that next week "won't be boring". Just recently Schwartz said Java would "likely" be released under CDDL, has also stated that GPL was "very much on the table". In a twist of irony (given the history of the GPL), Sun is asking analysts to enter into an NDA (technically an embargo) in order to participate in pre-briefings before the big announcement. Whatever the decision, the final realization of open source Java will have repercussions for developers for years to come.

Now, what goes well with crow?

Editorial standards