Introduction:
Browser based application are very popular wherever interactivity with users is a requirement. However, most of application use classical user interfaces (UIs). In Information Visualization (InfoVis), there are several powerful and versatile applications that are well known among experts, but designed to run natively in operating systems (OSs) only. In this post we compare 3 most popular programming platforms for developing browser-based InfoVis applications.
Java Applets
Strength:
Java requires the application to do the rendering on its own, targeting the client area in pixels. However, among the free libraries available for Java, several renderers exist which free the developer of this work. Some renderer libraries for Java provide features supporting animation. When providing user frame selection, it is possible to fire a manual drawing event. Java on its own has reached a very stable state.
Weaknesses:
The installed version of the VM differs among clients. Incompatible versions can prevent the Java applet from running. There are also problems embedding applets in some operating system or browser configurations. The use of Java applets has declined during the last years with the increasing flexibility of Flash.
Flash
Strength:
While the Flash drawing functions are similar to those of Java, they do not actually perform the drawing directly. In fact, they cache the graphics primitives and the drawing is performed in a renderer thread independent of the user code. Flash not only supports timer events but also has timeline support already built in the platform. Flash is very stable inside the browser.
Weaknesses:
For Flash debugging is more complicated because the compilation does only run in the plugin and a special debugging plugin is needed. ActionScript is a language based on the ECMAScript, which causes several compatibility weaknesses, like poor type safety.
Silverlight
Strength:
In Silverlight graphics primitives are defined in a description language. They can also be modified or complemented with additional graphics primitives using code. In Silverlight, there are no timer events but timeline support. Drawing separate frames is possible as in Java and Flash, but you can also modify existing objects instead of drawing new ones.
Weaknesses:
Like in Flash, caching the renderer output is not possible, so user frame selection requires firing a manual draw event. For each site that requires Silverlight, there are thousands of sites requiring Flash. This is due to the fact that it is very difficult to introduce a new technology into an established medium, especially, if something has to be installed that normally is not part of the environment.
Conclusion:
No technology is superior to all others in all situa- tions. Developers need to consider the environment and user group they address as well as their requirements. These prerequisites define the priorities. Therefore, even the platform-independence of web applications is limited.
References:
E. Burnette. Is Flash better than Java?, April 2007. URL http://blogs.zdnet.com/Burnette/?p=286.
http://www.oddhammer.com/ actionscriptperformance/set4.
https://publik.tuwien.ac.at/files/PubDat_217968.pdf