Reports of Java's death on the desktop may be somewhat
premature. A recent Giga group report, "Return of the Rich Clients",
predicts that in the next three years browser-rich clients will grow
by 350%, stand-alone clients by 250%, while HTML will decline by 50%.
Two major facts are contributing to this change: problems associated
with traditional client development being solved and HTML not
providing a powerful enough user interface for all GUI requirements.
Both of these are good news for Java.
For stand-alone clients, Java has advanced on several fronts
recently. The J2SE team delivered substantial performance
improvements to Swing in 1.4.2, as well as a great Windows XP and GTK
look and feel. Meanwhile the Eclipse project created SWT that uses a
rich set of cross-platform native controls over and above those
provided by AWT. Newsgroup flame wars often pitch the two as rival
GUI toolkits; however, hopefully this will become a thing of the past
as the current interoperability problems are tackled.
One of the problems associated with traditional client/server
development is a systems management issue of how to ensure that the
software at all end points is kept up-to-date. HTML largely avoids
this by creating the page marking up the client UI each time a
request is made to the Web server. Arguably, this on-demand
preparation of the GUI is the single largest reason HTML has become
such a ubiquitous programming model. Java Web Start, however, solves
the original distribution problem by using the Web as a mechanism to
deliver a traditional Java application to the client. Each time the
program is run it checks against the Web server to see whether a
newer version is available and, if required, downloads the updated
JAR files. JWS programs run within Java's security model; however,
client-side caching and the use of local JRE avoid the issues that
plagued applets.
Several Java hybrid clients also exist that run Java on the
server, but instead of delivering HTML to the browser, they use
plug-ins to create a richer UI experience. With the ultra-lightweight
client from Canoo, a J2EE programmer uses Swing peer classes as if
writing client-side Java, requests are marshaled back and forth as
XML, and a full Swing GUI is actually created on the client. The RSWT
SourceForge project does the same except it uses SWT as its Java
toolkit. Other examples of Java hybrid technologies are classic
blend, droplets, and thinlets, all of which deliver a rich GUI to the
user through a Java server-side programming model.
It's not going to be easy for Java to win back the client as
it faces stiff competition from Microsoft with Windows Forms, and
Visual Basic as the incumbent client development language.
With this level of activity in the client Java space, Java
Developer's Journal is launching a new section entitled "Desktop
Java." This will include solid technical content to help you
understand more about the various projects and technologies, as well
as editorials and news. The mistakes have been made, the lessons
learned, and Java is now well positioned to recapture some of its
lost pride as a GUI platform. We hope you enjoy the new section.
References
1. "Return of the Rich Clients" report available to registered
Giga customers: www.gigaweb.com
2. SWT/Swing: Click Here!
3. Java Web Start:
Click Here!
4. ULC: www.canoo.com/ulc
5. RSWT: http://rswt.sourceforge.net
6. Classic blend:
www.appliedreasoning.com/products_what_is_Classic_Blend.htm
7. Droplets: www.droplets.com
8. Thinlets: www.thinlet.com
About The Author
Joe Winchester is a software developer working on WebSphere development tools for
IBM in Hursley, UK.
winchest@uk.ibm.com