GeekArticles
XML
Core XMLSun should Open Source Swing: what is bad for Gosling is good for propaganda
Author: oreillynet.com |
Published: 6th Jun 2006 |
Visited: 313 times |
Add CommentFiled in: Core XMLIn 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.
Read Article Sponsored Links
Related Articles
• Microsoft on Open XML SDK A few months ago Microsoft was able to obtain control of Open XML. Because of that achievement the company fervently worked on developing Open XML not only for their own advantage but also for other developers. Among those movements is the release of Open XML SDK which will help developers in buildi ...
• Swing Extreme Testing Book Review Swing Extreme Testing Book Review
Swing used to be a simple component offered as an add-on for Java. This plug-in can be used as a GUI (graphical user interface) to develop as an add-on for the Java application. It has the ability to emulate certain platforms eventually building a powerful applicat ...
• Swing Extreme Testing Swing Extreme Testing by Tim Lavers, Lindsay Peters
This book is a practical guide to automated software testing for extreme Java programming using Swing GUIs, with lots of ready-to-use real-life examples and source code for automated testing of the software components usually regarded as too hard ...
• Swing Extreme Testing - Outline of the Unit Test Outline of the Unit Test
The things we want to test are:
Initial settings:
The text field is empty.
The text field is a sensible size.
The Ok button is disabled.
The Cancel button is enabled.
The dialog is a sensible size.
...
• Swing Extreme Testing - Unit Test Infrastructure Unit Test Infrastructure
Having seen the broad outline of the test class and the UI methods needed, we can look closely at the implementation of the test. start with the UI Wrapper class and the init() and cleanup()method ...
• Swing Extreme Testing - The ShowerThread Class The ShowerThread Class
Since SaveAsDialog.show() blocks, we cannot call this from our main thread; instead we spawn a new thread. This thread could just be an anonymous inner class in the init()metho ...
• Swing Extreme Testing - The wasCancelled() Test The wasCancelled() Test
The first of our API tests is to check the wasCancelled() method. We will basically do three investigations. The first test will call wasCancelled()before the dialog has been cancelled. The second test will cancel the dialog and then call the method. In the third test we wil ...
• Swing Extreme Testing - The Data Validation Test The Data Validation Test
The Ok button of the SaveAsDialog should only be enabled if the name that has been entered is valid. A name can be invalid if it contains an illegal character, or if it has already been use ...
• Open Source C++ B+ Tree Implementation Template based B+ Tree
B+ Tree is a type of tree, which represents sorted data in a way that allows for efficient insertion, retrieval and removal of records, each of which is identified by a key. It is a dynamic, multilevel index, with maximum and minimum bounds on the number of keys in each index ...