Duke in a Tux
As we know, Sun is relicensing JDK for inclusion in Linux distros. This is a fantastic development for Java. In this blog, I muse about GPL'ing Java as "GlassFishBowl" and rigorously protect the Java trademark, so that Java still means "Java" as in the JCP, TCK, JEE, et cetera. I posted a comment to this effect on Calvin's article "Java on Linux - the real story".
By the way, I rattled on a bit about opensourcing Java in my earlier blog "Swing thumps Ajax" together with too many other issues.
Hopefully we'll see more and more opensource Java apps shipping with Linux distros once they include Sun's JRE.
This makes it a real option for opensource developers to consider Java for their desktop apps, knowing that they can get shipped in Linux distros, alongside Sun's Mustang - which is such a great JRE for Java and Swing on Linux.
I would like to see Netbeans shipping in Linux distros too! Since Netbeans provides a great out-the-box experience, for both GUI and web apps (and mobile apps), this would encourage young developers to give Java/Swing/Netbeans a twirl, on their freshly squeezed Ubuntu boxen.
As Calvin quoted on his blog, Sun's lawyers and Debian Ubuntu developers spent months thrashing out a new "binary license for the Java platform."
The distribution of the Java platform, in particular the JRE, is clearly very important for Sun to get right, and I'm sure they have done so. Probably this is just a first step, on the Duke's opensource march. As Rich Green said at JavaOne about opensourcing Java, "It's not a question of whether, it's a question of how."
So now I'm gonna muse about a possible next step...
What if Sun GPL'ed mustang.dev.java.net as "GlassFishBowl" but rigorously protected their "Java" trademark, to ensure compatibility of a single Java platform, controlled and evolved by Sun and the JCP. So "Java" becomes a standard (and not an implementation), with "GlassFishBowl" as its opensource reference implementation. Sound familiar?
Hey Linux and OpenSolaris are GPL. KDE and GNOME are GPL. Because GPL is the most developer-friendly license. And in the case of Java, the developer is Sun. Apache is BSD-style, and is the most company-friendly, and hence all the support they get from the "biggest" company of them all, IBM.
Sun don't want to be too friendly to their competition, like IBM and Red Hat. So they don't want an Apache license. So I think the GPL would be best. Or a simple variant of it, eg. the GPL plus a clause or two agreeing to protect the "Java" trademark with our lives.
Let's try to imagine how this would unfold. The competitors that Sun worries about the most are IBM/Apache, and Red Hat. How would IBM and Red Hat react to the above scenario? Would Apache fork GlassFishBowl into TomcatFishingBowl? Well all Apache products are Apache-licensed, so forking a GPL project into another GPL project doesn't make sense for Apache.
Let's say IBM or Red Hat wanted to take Java off into their own direction. (That would be crazy, but let's pretend they got crazy.) They could fork it, and call it SeaShark. But it wouldn't be Java. It would have to compete with C# and Java. Hey, it might introduce some great features that the JCP community includes into a JSR for Java, and that might make it into Java and the GlassFishBowl reference implementation. So Java wins there.
Maybe researchers and students would want to fork GlassFishBowl into PlexiFishBowl to try out some wierd and wonderful tangential things. But surely Red Hat et al, would rather choose to distribute GlassFishBowl, so that they can license the official Java branding (with its promise of compatibility) for their distribution? And the licensing royalties for "Java" would still come flowing in for Sun, wouldn't they?
Update. If Java was gonna be GPL'ed, I guess the class libraries would have to be LGPL'ed, to allow non-GPL'ed Java programs to link to them? Anyway, see my follow-on blog "CDDLing up with Sun" which considers the CDDL as a better bet for Java than the GPL/LGPL.
As a postscript, I'm thrilled that Ubuntu's Mark Shuttleworth (a fellow South African countryman) has played a role in relicensing Java for Linux. Hopefully next on his list is Adobe, for Flash and Acrobat. After that, we just need a blanket license for including freely-distributable MP3, DVD and MPEG players in Linux distros, and the desktop war is won :) Oh, and those nVidia and ATi drivers, I forgot about those... And that can't happen because those drivers are specifically engineered to beat those darn spec tests, innit.