Richard Stallman's shackles: The open source Java acid test?

Yesterday, I published a pair of posts that connect the dots between the recent Novell/Microsoft pact and Sun's plans to open source Java. I've been following the comments that ZDNet's readers have been filing under both.
Written by David Berlind, Inactive

Yesterday, I published a pair of posts that connect the dots between the recent Novell/Microsoft pact and Sun's plans to open source Java. I've been following the comments that ZDNet's readers have been filing under both. But there's a thread on the second post that's addressing whether or not it really matters what open source license Sun uses to open source Java. To summarize, there are those that feel it doesn't matter whether it's Sun's CDDL license or the Free Software Foundation's GNU General Public License. Either way, they say, GNU/Linux distros will be able to include Java and that's all that matters. But I'm not so sure the issue is as simple as that.

When and if Sun open sources Java (as it is expected to do), one of the big questions among developers that have eschewed it for so long is whether or not the new terms will pass the smell test of Free Software Foundation (FSF) patriarch and father of the free software world Richard Stallman.

Why should Sun even care what Stallman thinks?

Well, one reason for Sun to open source Java is to draw more developers into the Java ecosystem. Advocates of free/open source software (FOSS) and open standards often talk about how, when technologies are truly open, their inventors can usually expect their slice of the resulting ecosystem to actually be bigger than the pie they would have kept to themselves if the technology stayed closed.  Developers have a way of flocking to open and unencumbered technologies.

Of course, your next question is, well, if Sun open sources Java, who cares about pie slices. At that point, the software is free in which case you could have the largest slice in the world and it wouldn't matter since it'd be impossible to monetize. In theory that sounds about right. But, then again, if that was really the case, Red Hat wouldn't exist. Not only that, notwithstanding the growth that Sun's hardware business might get out of an expanded Java ecosystem (not a gurantee), Java is already the life blood behind thousands of enterprise class applications, many of which involve customed developed software that represents the intellectual property of world's top corporations.

Just like with MySQL and JBoss, both of which involve hybrid-licensing models, there will be a community of these enterprises whose lawyers are so uncomfortable with having GPL'd software in their midst that they insist on having a commercial license instead. I'm not justifying their feelings about the risk. It's just reality and that's not about to change. But, if the number of developers in the Java ecosystem changes, then it stands to reason that Java will get even more traction than it already has in businesses, which could in turn yield more licensing revenue for Sun as some of those businesses establish a preference for a commercial license for Java, versus an open source one.

But before the FOSS developers that have eschewed Java have a change of heart, they may need to hear from Richard Stallman first. That's because, in 2004, Stallman singled out Java for some harsh criticism that doesn't reserve for many technologies. And when Stallman speaks (or writes in that case), the developers who believe in the principles of free software (slightly different than open source software) -- particularly in the principles of the GNU General Public License (GPL) and other FSF-endorsed licenses -- listen.

Back in April of 2004, in an essay titled Free But Schackled - The Java Trap, Stallman wrote:

If your program is free software, it is basically ethical--but there is a trap you must be on guard for. Your program, though in itself free, may be restricted by non-free software that it depends on. Since the problem is most prominent today for Java programs, we call it the Java Trap.

Ouch! That's like calling all tissue Kleenex or all bandages Band-Aids. Only this time, instead of carrying a postive connotation, it's a negative one which isn't good for any brand. Perhaps a better analogy is when unsolicited commercial e-mail (UCE) got the nickname spam. The makers of Spam saw no humor in the co-opting of their coveted brand name. In one fell swoop, the word "Java" became the brand name of a disease that FOSS developers had to be on the lookout for in all free software, not just Java-related software.  

The essay goes on to say:

....people who write free software often feel Java is sexy. Blinded by their attraction to the language, they overlook the issue of dependencies, and they fall into the Java Trap...Sun's implementation of Java is non-free. Blackdown is also non-free; it is an adaptation of Sun's proprietary code. The standard Java libraries are non-free also. We do have free implementations of Java, such as the GNU Compiler for Java (GCJ) and GNU Classpath, but they don't support all the features yet. We are still catching up.....If you develop a Java program on Sun's Java platform, you are liable to use Sun-only features without even noticing. By the time you find this out, you may have been using them for months, and redoing the work could take more months. You might say, "It's too much work to start over." Then your program will have fallen into the Java Trap; it will be unusable in the Free World...

....Whatever job you want to do, you can do it on a free platform; there is no need to accept a non-free dependency even temporarily. The main reason people fall into the trap today is because they are not thinking about it. The easiest solution to the problem of the Java Trap is to teach people not to fall into it. To keep your Java code safe from the Java Trap, install a free Java development environment and use it. More generally, whatever language you use, keep your eyes open, and check the free status of programs your code depends on. The easiest way to verify that program is free is by looking for it in the Free Software Directory (http://www.fsf.org/directory). 

Today, Sun's Java is not on the list (Eclipse is!). The question is, come the time that Sun open source Java (any moment now), will it be (on the list)? Will the Java trap have been sprung? In hopes of getting him for a podcast interview, I've been trading emails with Stallman on a separate issue. But I'm going to add this to this to the list of issues I'm hoping to cover once we work things out.

Editorial standards