Open Sores of Java
So we have been told, "Sun must open-source Java!" but exactly what does that mean? Must Sun open-source the Java language or the virtual machine or the blend of coffee served in their cafeterias? The source code for the Java language and runtime is freely available. And you don’t have to pay Sun to get the runtime or the developer kit. Nor do you have to pay to write programs for or run them on the Java platform. The way I see it, Java is both free as in beer and free as in speech. But of course, you and I can’t just redistribute our own implementation of the platform or a modified version of it, without first passing a compatibility test. And surely you open source proponents do not want to propagate the idea of distributing software that hasn’t been duly tested. It says a lot about the technology (and needless to say Sun) when alternative implementations are allowed to exist. The GNU Classpath, although an incomplete open source implementation of the Java foundation classes, does exist. Open source virtual machine implementations like GCJ and Kaffe also exist. The rationale for their existence has not been called into question. The rest of the Java community [that’s us] does not interfere with their function. To me, that’s free.
And what exactly is 'open source' in verb form? Is it an offer to get involved in refining the language and the platform? Is it an offer to help take it to new frontiers, as yet unaddressed? In that case, the Java Community Process is open for everyone. A lot of substantial contributions to the language and the platform have come from this Process. A lot of retarded ideas have also been introduced through this forum. But that just highlights the positive side of the JCP. All your goofball ideas will be entertained here.
Should the Java license terms then be changed? If so, to what? GPL? Unlike with GPL, the Java license does not force you to apply the same license restriction to your own source code. This is what corporations like about Java. Like it or not [I personally like it], we live in a capitalist system where profit is a big motivator. Some of us have livelihoods to worry about and families to feed. The Java license works perfectly for us. Besides, I have yet to see one developer or interview candidate refuse to work on my project on the grounds that the language and platform’s license terms violate his/her personal convictions. All licenses have an agenda. Be it BSD, LGPL, Mozilla, CPL, Apache or the aforementioned GPL. To paraphrase James Gosling, unlike some of these others, the Java license’s agenda is not a hidden one.
It has been said that if Java were not made open source, its popularity among developers and corporations would diminish. Eric Raymond has written about Java: "Sun's insistence on continuing tight control of the Java code has damaged Sun's long-term interests by throttling acceptance of the language in the open-source community, ceding the field (and probably the future) to scripting-language competitors like Python and Perl." Before you re-read that statement with incredulity, let me assure you that you got it right the first time. I don’t know any other person who has a life outside of Slashdot who can say that without laughing out loud. For the record, Java is not a scripting language and Java developers are not losing any sleep over being tied to a 'dying' technology. So to determine its popularity for myself, I went to that most democratic of all institutions on the Internet: Google. The Google directory for Computers > Programming > Languages lists a number of familiar and unfamiliar languages. There are 290 entries for Basic. About the same for C. 898 for C++, 152 for C#, 1014 for Perl, 1189 for PHP and a modest 3307 for Java. But then, what do they know huh?
It is infuriating to post counter-arguments to statements made by people who have had absolutely no hand in furthering the cause of Java. Some of these people have never even programmed in the language. And then there are people from within the Java community who have similar points to make. At least these I can understand, although cannot rationalize.
Disclosure: I do not work for Sun Microsystems. Never have. Don’t anticipate I ever will. I have felt the need to make this argument for Java solely out of the love I have for the language and the platform. Some of the smartest people I have ever known are Java programmers. Most of the nicest and funniest individuals too. This is for all of them.
Update: Here is one link that will provide a clearer background on the issue. This posting on Slashdot cites an article by Javalobby.org's Rick Ross on the Sun-Microsoft settlement and another titled "Free but shackled: The Java trap" by the much venerated Richard Stallman. While one delicately cloaks the "open source Java" argument, another says it outright. Notice also the rubbish that passes off as reader feedback and comment. This is but one of the many websites that have addressed this topic over time.