, , , , , , , , ,

With the advent of Rich Internet Applications(RIA), a plethora of new technologies have been developed and are now available. Choosing one amongst them is not an easy task. Each of these technologies have their own pros and cons. This article takes an objective look at the major ones.


HTML has been around since the earliest days of the Internet. It basically is the language in which web pages had to be authored. It is simple to learn and easy to use. With tools like Adobe Dreamweaver, hand coding of HTML has become a thing of the past. However, by itself HTML often proves to be insufficient for more advanced needs. Most of these shortfalls can be surmounted by using JavaScript. A more recent occurrence is AJAX. Though it is not a new technology, but the way Google used it in its e-mail system brought it to the forefront and sparked off the RIA revolution. AJAX takes advantage of certain browser objects to communicate with back end systems in an asynchronous manner. The advantage is that existing knowledge of JavaScript and HTML is enough to get working with AJAX. A lot of libraries like the Yahoo Toolkit, Dojo Toolkit, GWT, DWR, etc. are now available that make life much easier to use AJAX. In the JEE arena, RichFaces, ICEFaces, etc also help to implement AJAX behavior to existing and new enterprise applications.

The most irritating problem with HTML and JavaScript was the different ways in which the same markup looked and behaved on different browsers. Ever since the browser wars these differences have become lesser and lesser and browser functionality has seen a convergence. With the W3C maintaining a standard for these technologies, things look brighter.

HTML and JavaScript have been around for some time now and have been tested thoroughly. Add to this the ready availability of resources skilled on these and they still seem to be the best bet for new applications.

Adobe Flash

Adobe Flash started off its life as a way of enabling rich media content on web pages. This it delivered very well. Flash is very capable in handling video, audio and other types of contents withing a web page. In relatively recent times, Adobe released Flex – an RIA platform based on Flash technology that is intended for developing enterprise applications. I have had the fortune of working with this technology and I have to admit there is a learning curve.

Flex is a lot different to work with when compared to HTML and JavaScript. ActionScript is a full blown object oriented language unlike JavaScript and takes some time getting used to. Flex is also a stateful platform. This has both its benefits and demerits. However there are certain things that, in my opinion, people should consider before opting for Flex.

First, do you really need Flex? Flex applications compile to .SWF files that are downloaded on the client computer during the first request. For a complex application, these files can be of reasonable size and loading times can increase.

Second, Flex apps are ultimately Flash applications and are dependent on the Flash plug-ins in the browser. So even though, browser dependency is made redundant, the various versions of the the plug-in can still create problems. For instance if a Flex application is targeted for version 7 of the Flash plug-in, it may produce some nasty surprises when running on version 9. Even though upgrading the Flash plug-in is relatively a painless task, downgrading it, if at all possible, is going to be more of a challenge.

Third, are there enough skilled resources available to sustain maintenance of Flex applications? This is a very serious question that needs to be considered. Enterprise applications typically go through multiple releases and have quite a long lifetime. During this period the application has to be maintained and new functions have to be added to it. Is there a sufficient pool of developers available today to do so? If not, will we have sufficient pool of developers in the future? No one can tell.

Fourth, Flex is a proprietary product that runs on a proprietary plug-in from Adobe. So there is always a chance of vendor lock-in.

Microsoft Silverlight

This is the newest kid on the block and Microsoft touts it to be a Flash killer. Was this really necessary? I mean what is it that Flash does so badly that it needs to be killed for? To me it seems yet another attempt by Microsoft to dominate a certain segment. Flash is quite dominant in the streaming media industry and Microsoft does not like it. It wants to own this monopoly and that is why Silverlight. So instead of Adobe its going to be Microsoft. Either way a company is going to have a monopoly. So what difference does it make to us users? Nothing really.

Everything said, HTML stills seems to be the more prudent choice amongst the technologies mentioned above. It has a standard, delivers it promise and can be made to accomplish more by using AJAX or one of the AJAX libraries.