Much of Sun's emphasis lately has been on server-side and J2ME technologies, and many industry pundits have predicted death knells for client-side Java.
This makes some sense. Let's look at some J2SE facts:
Web services like SunONE and .NET requires abstraction layers and universal protocols such as SOAP and XML, and pushes most processing and logic to the server-side. This undermines the need for any client-side technology platform such as Java, and provides the option to have all client-side applications delivered through a Web browser, if desired.
So, is anyone still writing Java client software? Will Java ever succeed as a client-side platform?
The answer to both of these questions is "Yes," in increasing numbers, and that there is a strong future for client-side Java.
As the Web services model continues to be adopted throughout the industry, developers have explored the idea of using a Web browser to deliver the client experience. While this does have its place, more and more developers are realizing that it's impossible to deliver a truly customized and application-specific experience with the limitations imposed by Web browsers and HTML. We are, in fact, seeing that more powerful, rich client applications are becoming even more popular, leveraging the power and flexibility of client-side Java.
Furthermore, Java clients work better with Java server applications than do their HTML-based counterparts. J2SE's rich API makes communication with J2EE servers simple, enabling client-side developers to customize the end-user experience with application-specific interfaces. Because of this, as Java continues to succeed on the server-side, developers will continue to write client-side Java applications, leveraging the skills they've already developed without having to hire new HTML design and engineering teams.
We recently conducted an informal poll of Java tools companies and confirmed that, despite rumors to the contrary, client-side Java continues to be a dominant and viable solution for accessing J2EE-based server applications. Developers have experimented with, investigated, and invested in HTML-based client applications - only to find that a Web browser provides a poor user interface and customer experience, and requires the dumbing down of the extensive logic built into their server applications. To add insult to injury, HTML-based applications often require even more resources and time than Java-based client applications, with new design teams and new HTML developers needed to create the same code that existing Java engineers could have created.
The ultimate success of client-side Java is dependent upon solving the thorny issues of deployment, download, and execution. Right now, the average end user has a hard time understanding how to install, configure, and use a Java application. The additional overhead and requirements of installing the JVM discourage the adoption of J2SE applications because of the prohibitive size and complexity of configuration. With Microsoft choosing to exclude their version of the JVM from Windows XP, the success of Java on the client-side will be determined by Sun's ability to successfully market and deliver Java to the platforms that end users use the most.
Sun has addressed this with the introduction of the Java Plug-in and Java Web Start, two technologies that enable the easy installation and execution of Java-based rich client applications. These, along with commercially available Java-based installation solutions, make it possible to deploy Java client applications with little or no end-user configuration. The application downloads and installs, along with a working and tested JVM, and voilá, you're using a client-side Java application.
No, J2SE isn't dead; it's alive and well, and continues to be a cornerstone strategy in the SunONE vision and in successful Java-based application deployment throughout the industry.
Eric Shapiro is CEO and cofounder of
Zero G Software, Inc (www.zerog.com),
makers of InstallAnywhere and PowerUpdate.