How to Select RIA Technologies (Part 1 of 3)

This is part 1 of 3 blog posts discussing the article “How to Choose an RIA Path: AJAX or Adobe?” by Jeffrey Hammond.
Recently I stumbled across Jeffrey Hammond‘s article published in the May 2007 issue of AjaxWorld Magazine. Actually this article is a summary of a Forrester Research Report published in December 2006. The article (and the full-version report) helps readers to decide whether to choose AJAX or Adobe’s Flex for their RIA solution. It brings up some very crucial arguments - pros and cons - for both approaches from a project manager’s perspective that many others focusing on mere technical aspects leave out.
I can really recommend reading this article but I would like to add some comments because of two main reasons:
- The article suggests that we have only two big options to select from – AJAX and Flex – ignoring the third option: using (plain) Java to build a RIA where especially this third option overcomes three of the four limitations that Jeffrey considers as the main obstacles to using RIA technology.
- Jeffrey gives three arguments in favor of AJAX (vs. Flex):
- shorter time-to-market,
- incremental change of existing Web apps,
- and speedy performance.
The first two – although convincing at first glance – might become at least questionable when digging a little bit deeper.
I will start my discussion with this second point:
AJAX: The Fast Lane to a Better User Experience
In my opinion:
You are not necessarily faster developing with AJAX than with other RIA technologies.
Jeffrey claims that AJAX helps shops to meet time-to-market needs because the learning curve for developers is not as steep as with Flex. Two comments on this:
- Knowledge of languages and frameworks is only one critical factor in determining time-to-market. Quality and functional richness of the libraries used, availability of development tools and IDEs that boost a developer’s productivity (Jeffrey mentions this issue in the list of cons), and the impact on overall architecture (I will come to this in a later post) will also determine time-to-market – and depending on the size of the project – are more important than the effort to learn a new language like mxml.
- My own experience in applying AJAX technology (I must confess – from a manager’s perspective) is that no developer knows all required languages to build an AJAX application on the same level. Some have very deep knowledge in Java and XML but only beginner’s or medium level expertise in applying CSS or programming JavaScript. With AJAX, developers have to use new and swiftly evolving libraries that vary in the functionality they offer (ranging from very low level libraries like prototype to very high level like Ext JS) and programming model (some are more server- and Java-centric while others require heavy JavaScripting). Bringing all this together is normally a complete new experience for developers – even if the “traditional” ingredients of a Web application are well known.
In summary, a project manager who plans to develop a RIA should carefully think about the time-to-market argument and AJAX. For small projects that incrementally add some limited AJAX features to an existing Web application I can underline Jeffrey’s statement about time-to-market. We made this experience when we ajaxified our online dictionary Canoo.net. But when building large applications, especially to be integrated into a corporate environment, I would not subscribe to Jeffrey’s point of view.
