The Recipe for Success
Sun must stimulate new interest in Java on the desktop. My recommendations?Control Swing Perception
Sun needs to control perception by marketing Java GUI applications like they were the Eighth Wonder of the World, both to end users and development managers alike. No longer should the vast majority of what we hear about Swing come from those trying to destroy it. If Sun wants to tout the server side, then also tout Swing because it offers tight integration to that market-leading server technology. The industry needs to notice shrink-wrapped Java applications and loudly brand Java Swing technology so that it becomes a household name. "Powered by Java Swing" needs to be recognizable to techies and the layman alike.
Commoditize Office Applications
In my home network, I run Linux, Windows, and Mac operating systems. Excited about the latest Mac OSX release, I went shopping to spend a little money upgrading Mac software. But "a little money" was not to be. With a full license of Microsoft Office installed on my Windows machine (easy my Linux friends, I run and use AbiWord too, but this is a necessary compatibility thing), I was still faced with a $350-plus purchase price for Office on the Mac. This is utterly ridiculous. The domain knowledge for Office applications is not foreign or proprietary, but very well known. And while the barrier for acceptance of an alternative Office involves other factors (such as file format compatibility), I find it lunacy that the industry-standard Office application still garners such high licensing fees for a single platform.
Sun needs to push shrink-wrapped Java applications of its own out the door, and it should start by finishing the race with StarOffice and marketing it heavily on Linux, Windows, and Mac platforms. Associating Swing with hundreds of dollars of savings on software purchases will be a welcome detail that people will appreciate and remember. Mobilize a Community Effort
Sun needs to organize an initiative, whether internal or external, to promote the use, knowledge, training, and support of Swing and development of desktop applications. Perhaps Swing would be a good API to submit to the open-source community. By challenging the open-source community to commoditize the operating system by improving the Swing API and promoting the development of cross-platform Java GUI applications, Sun can invigorate interest in Swing development.
Create a New Swing Design Approach
There are two distinct tasks in Swing development: the visible mock up and the functional implementation. Current IDEs can handle initial visual designs, but any significant changes to the underlying code will render the visual editor useless. Most Swing GUIs I first developed in a visual editor never survived in the form rendered by the editor. I tore apart the generated code, and from then on I could not go back into the visual editor because it didn't understand the modified code. Sun needs to enhance the Swing API and/or create a new design tool methodology that allows the visual creation of Swing GUI presentation to be simplified and separated from the underlying implementation code (much in the way that XML and XSLT have attempted the separation of presentation and data in Web page design).
La Seconda Tazza
The Java platform is outstanding architecture. I thoroughly enjoy being a Java developer and singing Java's praises. But even in its excellence, there are improvements to be made, and greater heights to achieve. Time will tell where Sun and our development community take the Java platform, but the answer will be increasingly bleak unless Sun turns a portion of its attention to addressing Java's relevancy on the desktop. As for me, I am ready for that second cup of Java. Make mine a Venti!