In the late 80s I was a customer of James Gosling: I had UniPress Emacs on my AT&T Unix PC. This was way before Java. So I have a deal of affection and respect for him. I really loved UniPress Emacs.
But a recent interview with him makes me think he lives in a corner of reality fairly removed from mine. He claims the “people the open source movement” don’t provide any “coherent answer” as to why Java should be open sourced.
It can be summarized, or at least exemplified, in a single contraction: HTML.
The implementation of HTML in Java hasn’t changed in a decade and is now so far from acceptable even Java, whose design rationale above anything else is Write Once Read Anywhere, now just provides a kludge to embed a non-Java browser. Yet Java claims to be a web technology. What a load of bull. Swing’s development effort should be realigned around integrating public-contributed enhancements as a priority over new code.
The HTML browser case is a clear example of Java’s management and development over the last decade failing people in a major class of applications. I don’t care if Sun maintains tight control of non-GUI Java; but they have long ago lost any right to respect or trust from the developer community interested in non-server, non-micro-device desktop applications. SWT’s widespread adoption is a symptom of this.
Now, of course, there are a lot of positive signs. There is an open source XHTML browser project called Flying Saucer at javadesktop.org that looks like fitting the bill. That site is such a positive thing for Java desktop developers; it shows that there is so much promise in Java yet. And NetBeans at least has provided a Sun-internal customer that gives some desktop-application-related input into Java.
So perhaps Sun could consider this: just open source the Swing tree for now. That is a nice doable chunk, and much work on new Swing development, such as SwingX, is being done in public anyway. Let it evolve independently of the rest of Java. Releases of Java can snapshot Swing. Sun has already lost control of the GUI, because of SWT, and the anti-XML partisans involved in Swing development seem determined to allow MicroSoft and IBM to leapfrog Swing as far as ease of generation of user interfaces (why wasn’t SwiXML grabbed and made part of Swing as soon as the idea was released? — a mystery that is an ongoing fumble by codeheads who don’t get declarative specification using XML)
An Open Sourced Swing would be good propaganda for Java, assuaging programmers who currently ask “well, they haven’t actually open sourced Java yet, have they?” Open sourcing Java will undoubtedly take a long time, so doing it a chunk at a time may be a good strategy. But people with long memories may care to remember how Sun was going to persue ISO standardization of Java, then pulled out in favour of Ecma standarization, then pulled out a set up the JCP: Sun are control freaks and the abysmal state of portions of Java (like the pathetic maintanence of the HTML code) is a symptom of this. Of course, it is not enough to Open Source something: the mechanism for speedy response to bug fixes and releases is crucial too.