Posted by hubick
on August 15, 2006 at 3:49 PM PDT
At a *minimum*, license Java as liberally as Classpath+GCJ. (ie, FSF approved, GPL compat, DFSG compliant).
I currently work for a University with about fourty thousand students. The service platform for the group I work with consists of mostly Free Software, meaning Linux, Apache, Tomcat, running uPortal, Plone, Moodle, custom client apps, etc. I am primarily a Java programmer, and Java technology has played a significant role in our platform. I prefer Free Software for a variety of reasons (philisophical and pragmatic), many of which are the same ones that make Java based technology appealing.
It's mostly about flexibility.
Flexibility through avoiding vendor lock-in. With Linux, we can switch our servers between Intel, AMD, IBM/PPC, Sun, etc. We can choose between any of a multitude of Linux vendors. Similarily with Java based tech, we can switch our OS between Linux, Windows, Solaris, etc. But we do that with Python, PHP, and Perl as well - though I personally prefer Java as a language over the others because of it's object oriented features, strong typing, integral threading support, exceptions, unicode, scalability, etc. The point being, if we encounter a problem with virtually any component of our platform stack, we can either switch vendors or fix it ourself. Free Software gives us some guarantees for the future as well - if a vendor drops support for a product, chances are we (or a community) can continue to provide support for it. Our vendors are forced to compete on implementation, and the one with the best functionality and service+support wins. We are not tied to anyone currently - except perhaps to Sun with our Java apps.
That is why all new code I write is being tested on Classpath today. We currently use RedHat as our preferred Linux vendor, and I have been testing our existing software under GCJ and Fedora Core 5. With the fantastic level of advancement by new Classpath releases, which will be in Fedora Core 6, and eventually RHEL 5, I hope to have the ability to run all of our software on that Free platform out of the box. Yay for JFreeChart support on the latest Classpath release - one of our last blockers. I will soon have the choice of using this on any of several great Free JVM implementations - from Kaffe to IKVM. I don't think for a second that the advancement of the Free Java implementations and Sun's Open Source ruminations are a coincidence.
IMPORTANT: If I find a bug in the Java implementation (VM or libs), I should be able to immediately patch it myself, or download a patch from the net, recompile it, and deploy to our servers or ship those updates to our customers.
That is to say, I don't like the term Open Source, because I don't care if I can *look* at the code, unless I am allowed to *patch* it and *ship* fixes to our customers myself - immediately, with no Sun involvement, forever. This is why I like the term Free Software, and cringe when I hear people say that Java has been Open Source for years. p.s. I don't care if I am not allowed to call what I patch/ship as Java(tm) or can't brand it as official/real Java. Similarily, if someone like Transmeta comes out with some new CPU (which I want to use), they should be able to recompile the JVM software for it and bundle it when they sell their stuff (to me), without having to consult anyone or pass anything - unless they want to label it as official/real Java. I care about such Freedom for other commercial vendors as well - because that gives me more choice.
Personally, I started programming in Java back in 96 when Sun told me it was destined to become and ISO standard. I got burned. Then Sun told me it would become an ECMA standard. I got burned. Then I joined thousands of others in asking for a Linux port. I got burned - at least for years, and I still have to go through headaches rewrapping through JPackage for proper RPM deployment. I filed bugs for problems - I got burned - and sat around for years waiting for you to fix them [ie http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4212070 ]. Sun has always done just about the absolute bare minimum to keep me from defecting - but I'm not happy about it. My message to Sun is basically, that after all these years of being burnt, it's come down to this: I don't really care what you do anymore!
If you choose a license liberal enough to give me as much Freedom as I have with Classpath+GCJ/Kaffe/whatever, then your implementation might continue to be evaluated and tested alongside those others for its features/performance. Otherwise, you are quickly becoming irrelevant to me and the Free Software world I now inhabit.