HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

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:

  • The initial versions of Java Virtual Machines (JVMs) were bug-laden, slow, and unreliable, making it nearly impossible for the nascent Java pioneers who had invested heavily in this technology to deliver a reliable, high-quality end-user experience. Developers shied away from widespread adoption, despite rapid improvements to client-side Java.

  • Microsoft decided to exclude their version of Java from Windows XP, making client-side Java even more difficult to deploy, and posing new headaches for client-side developers; for example, how will end users run my application if they first have to install Java?

  • 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.

    Here's Why
    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.

    Author Bio
    Eric Shapiro is CEO and cofounder of Zero G Software, Inc (www.zerog.com), makers of InstallAnywhere and PowerUpdate. [email protected]

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.
      E-mail: [email protected]

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.