Rich clients emerge as alternatives for Web applications

I love doing my banking online. I love buying movie tickets, air tickets and books online. The Web is sensational.

However, after years of helping clients to develop Web applications (not to be confused with Web services) and developing visual tools for J2EE, I have reluctantly come to admit that using browsers -- HTML-based user interfaces -- to implement these applications is clumsy and backward.

From users' perspective, the interactive environment we once took for granted in modern graphical user interfaces (GUI) is of no avail. Instead, the user experience is more like using dumb text terminals. Why wait for entire pages to refresh? The slowness of the request-response cycles is testing the limits of users' patience.

From the developers' perspective, flirting with the HTML/HTTP protocols isn't fun, and trying to mimic "interactive-ness" with JavaScript, hidden fields and hidden layers is error-prone and unproductive. While newer technologies and tools do make things easier, it's still not as productive and efficient as developing interactive GUI applications with Delphi or Visual Basic.

Browsers offer a suboptimal development platform for implementing clients for Web applications. Both the HTML/HTTP paradigm and related technologies aren't meant for delivering interactive applications. (In case you forget, the HT in those acronyms stands for "hypertext." HTML and HTTP were initially conceived to deliver static documents.) We have stretched them to their limit.

It wasn't coincidence that when Microsoft executives were first shown a Web browser, they dismissed it as child's play and inferior to their rich and interactive COM components (which later become ActiveX) and, thus, took the threat of the Web lightly.

There ought to be a better way. And there is: rich clients.

Macromedia's Flash is one option. Flash is ubiquitous. It's light and fast. The user experience with Flash feels "natural," like native Windows applications. Macromedia has been promoting its Flash MX as a "solution for developing interactive Web applications." No doubt when Macromedia acquired Allaire Corp., one thing its executives had in mind was to couple the JRun J2EE server with Flash as a complete client/server application platform.

Another answer

There is another answer looming on the horizon. A few seemingly unrelated events lead me to believe that Sun Microsystems also recognizes the limitation of the browser and is attacking the same problem.

First came the news that Sun has, finally, struck deals with Dell and Hewlett-Packard to distribute preinstalled Java virtual machines (JVM) on their PCs.

Second, at the recent 2003 JavaOne conference, Sun released its JVM 1.4.2 and the road map of JVM 1.5. Significant efforts have been put into 1.4.2 to improve the Swing GUI framework, and two key focuses in 1.5 are start-up time and memory footprint.

While these developments will have only marginal impact on server-side Java (i.e., J2EE), they will make Java a more attractive client-side development platform.

Third is Sun's low-key announcement of its Java Desktop Network Components (JDNC) technology. Amy Fowler, the original technical lead for Swing, published an article, "Java Desktop Network Components," (JDNC) on Sun's latest open source community Web site. Fowler and her team are developing a remoting protocol, JDNC, to allow Swing-based GUIs to talk to remote application servers, possibly via SOAP. JDNC can be deployed via applet or Java Web Start.

Better Java platform

What do you get if you put all these developments together? A better Java platform that's more attractive for delivering rich clients. JDNC will make programming a remote GUI simpler. Addressing the JVM's start-up time and memory footprint problem, which have plagued client-side Java for years, improves the user experience. Finally, shipping the improved JVM makes client-side Java possible.

In the realm of Web applications, Sun is striving ahead on the HTML-based front with its latest JavaServer Faces technology (a Java Community Process-driven standard for defining and using view-tier components for Web applications). It's also working on its proprietary Rave project (Sun's latest drag-and-drop rapid-application development integrated development environment, based on JSF). Both of these were highlighted at JavaOne. But Sun is also quietly putting up a Plan B, an effort to provide a rich-client alternative.

The world won't change overnight. HTML-based browsers will be around for a long time, accessing Web applications. But I believe that, gradually, more and more Web applications, particularly in-house ones, will be based on rich clients.

Flash has already taken the lead. It will be interesting to see how Sun positions JDNC and how the market and the other J2EE vendors react.

John Yu is founder and chief scientist of Singapore-based Scioworks Technologies. He is is responsible for Scioworks' R&D effort and strategic direction.

(Copyright 2003, John Yu)

Copyright © 2003 IDG Communications, Inc.

7 inconvenient truths about the hybrid work trend
Shop Tech Products at Amazon