Client Side Java

April 3, 2005 – 3:09 am by coachwei | Category Main Page |

In 1996 when the Web was just getting hot, Java Applet was a big thing. Everybody was excited about it as it promised a new way of computing over the Web. However, client side Java was not robust and mature at that moment. It had many problems. The initial excitement did not sustain. Java has since been repositioned as a server side technology, quickly and quietly captured the mindshare and market share as a mainstream server computing technology.

 

Eight years passed by, what is the status of Java for client side computing? The truth is that it has grown substantially and reached a level of maturity, robustness and credibility. In many cases, it is the only platform for delivering the promise of browser and platform independent applications that would meet enterprise requirements.

 

There are several notable client side technologies available today for building and deploying web applications: DHTML/JavaScript, Flash, ActiveX and Java. DHTML/JavaScript is good for simple web applications and web sites. However, it is scripting based, lacks robust functionality, can not scale well to large data sets, and lacks true multi-threaded programming support. For deployment perspective, cross-browser compatibility is still a big challenge for DHTML/JavaScript. Flash is an engine designed for animations. The recent additions from Macromedia added support for applications, but it is still a few years away from reaching required level of maturity and robustness to support enterprise applications. For example, it does not support multi-threaded programming and it is only a scripting environment.  ActiveX is robust and mature, but it can only be deployed to Windows platforms and has major security implications.

 

On contrast, Java has grown significantly and overcome the initial Java Applet problems.

The major problems of Java Applet were: limited user interface components, slow performance and limited cross-platform compatibility. All these problems have been fixed today. If client side installation is not a problem, there is the new Java Swing package or SWT that has significant UI capability, native-like performance and runs well cross-platform. Both Swing and SWT are approaching native UI capabilities. On the other side, if zero-install is a requirement, there are novel solutions such as Nexaweb and Thinlet. Both have built a layer on top of JDK1.1 that provides Swing/SWT similar functionality in a tiny footprint, providing rich UI to web applications in a zero-install fashion.  

 

Two big advantages of Java comparing with other client side technologies are its industrial strength and broad developer base. For example, comparing with Flash, Java Virutal Machine is an industrial strength VM that support robust programming, binary execution and multi-threading. From development perspective, a big existing java developer community makes it natural for using it on the client side. Java’s object oriented programming model makes applications much easier to manage and maintain comparing with scripting based technologies.

 

Deployment is an important issue to be considered when selecting a client side Java solution. For Swing and SWT, a JDK1.2 and above JVM is required, which is not widely available on desktops. These solutions are suitable for Intranet applications that desktop installation is not an issue. For JDK1.1 based technologies such as Nexaweb and Thinlet, over 95% existing desktops support JDK1.1 and above and thus zero-install deployment is supported.  If you take J2ME into account, Java is actually the widely supported client side computing platforms today.

 

There is a question about JVM availability on the desktop since Microsoft has stopped distributing Microsoft Java Virtual Machine since Windows XP SP2. The good news is that Sun has signed distribution agreements with over 20 PC manufacturers to pre-bundle a JVM with each desktop, such as DELL, HP, Apple, Toshiba, Gateway, and so on. See the press release from Sun (http://www.sun.com/smi/Press/sunflash/2003-09/sunflash.20030923.1.html).

 

There have been many successful client side Java stories. The popular Eclipse and Netbeans IDE are both examples of how Java can be successfully used for desktop applications. BestWestern Hotels deployed a Java-based hotel property management application to 4000 hotels. The application runs on all different kinds of desktops including Windows 95 and 98 with only 64MB memory, in a zero-install fashion. The Java based application performs over 100% better than the original HTML application and consumes 90% less bandwidth.

 

 

As the Web continues to become more widely adopted as a mission critical enterprise application platform, Java has re-emerged as a viable platform for client side computing. In many situations, it is the only viable solution. Client-side Java is striking back!

Post a Comment