Jeffrey Hammond of Forrester Research completely misses the mark with an article highlighting the pro’s and con’s of the Flex vs AJAX frameworks.
Firstly, let me say that i’m a big fan of Forrester. For the most part they provide unbiased, educated and valuable research on a wide range of subjects (including rich internet application technologies). Unfortunately, in this case, it appears as though Hammond misses the mark on a number of points in his article and, and in turn, shows his ignorance of the facts.
Lets have a look at where Hammond gets it wrong…
“When it comes to rich Internet application (RIA) technologies, application development professionals must choose between two paths: AJAX or Adobe.”
This just isn’t true! Whilst AJAX and Flex are two of the most popular technologies OpenLaszlo has OpenLaszlo , Microsoft has Silverlight, and Sun has JavaFX. All of which can be used to develop enterprise-grade rich internet applications.
“AJAX favors gradual re-factoring of existing Web apps. AJAX is based on open and standard languages like JavaScript and XML.”
Flex too can be used for gradual re-factoring of existing web apps via widgets or pods. Flex is also 100% open source. Its programming languages are based on open and standard languages such as ECMAScript and XML. Additionally, via the use of the Adobe Flex-AJAX Bridge both technologies can co-exist extremely well within the same application (more on that below).
“To be productive in Flex, developers have to learn two new languages and an extensive runtime framework”
The skills to develop with Flex are very similar in a lot of ways to those used to develop in AJAX. As outlined above, ActionScript is based on ECMA-Script which is the basis for JavaScript (the same as is used in AJAX). MXML is a simple XML-based declarative language. If you can use Javascript (AJAX) you’ll pick up Flex in no time.
“AJAX can deliver speedy performance (compared to Flex)”
Whilst in some cases AJAX does offer fast performance (mainly when used in small applications/widgets), when it comes to data loading Flex is superior. Don’t believe me – take a quick test drive of James Ward’s AJAX/Flex Loading Benchmark Application. Whilst still in beta, the results will surprise even the most hardened AJAXian.
“Flash upgrade issues can defeat the deployment value proposition (of using Flex). Upgrade process is not seamless causing high abandonment rates”
This is simply not true – When used correctly, inline Flash Player updating is a VERY seamless experience. With the user NOT required to abandon the page they’re browsing to update the player.
“(Flex) Success can create an unexpected user response. Flash is a broad graphical canvas, and Flex allows designers to push the boundaries of rich media further than AJAX does. This can lead to a situation where users become distracted by a mix of Flash’s rich media and Flex’s new controls.”
In other words – Flex is TOO GOOD as a RIA development tool. Lets get one thing straight, users becoming distracted by rich media and controls has nothing to do with the Platform or the Framework – this is 100% a UX (user experience) design issue. The same argument could apply to ANY rich internet application.
“AJAX: The Fast Lane to a Better User Experience. App dev organizations that prefer a fast path to RIAs (for developers and users alike) select AJAX”
Lets not mix our metaphors here. Which is it? Better User Experience or Fast Path to RIAs? The previous statement just negated the first part of the above quote with Hammond admitting that “Flex allows designers to push the boundaries of rich media further than AJAX does” which equates directly to a better user experience.
I’m also of the opinion that developing a Flex application is faster (in a lot of cases) than developing the same application in AJAX. Kevin Cheng (Yahoo! Maps) also agrees. In an interview he gave last year he mentions “AJAX takes a lot of work. If you try hard enough, you can do almost anything with AJAX that Flash can do but the key phrase is “try hard enough”.
“Integrating data sources and Web Services (into Flex) is less intuitive than some commercial AJAX frameworks”
The reality is that both AJAX and Flex require only 3-5 lines of code to create an XMLHttpRequest or HTTPService object. Unfortunately if you intend running your AJAX application on cross browser/ cross platform you’ll need to include a significant amount more of code to check for these different delivery platforms. Flex on the other hand publishes to a SWF (Flash) file which performs exactly the same on cross browsers and OS’s. Now which of those appears to be the less intuitive?
An interesting side-note worth noting is that at no point in the article does Hammond mention the Adobe Flex-AJAX Bridge or the AJAX Data Services. I find this omission perplexing, especially for a research article discussing the benefits of both technologies. IMHO this illustrates a bias towards AJAX (or perhaps a lack of subject knowledge) either one not being a good trait to have when writing an educated (supposedly unbiased) research article.
For the recored – The Flex Ajax Bridge (FABridge) is a small, code library that is added to a Flex application to allow it to be exposed to browser-side scripting (AJAX). On the other hand, Ajax Data Services is a JavaScript library that lets Ajax developers access the messaging and data management capabilities of Flex Data Services directly from JavaScript. It allows Flex and Ajax clients to share data in the same messaging application or distributed data application. Both of these initiatives from Adobe clearly demonstrate the ability of AJAX and Flex technologies to co-exist extremely well within the same application. So much so that Google use it for their Google Finance section.
The bottom line is, that if you work for an organisation as reputable as Forrester, and intend on writing educated, informative, and unbiased research articles for the purpose of educating the masses. It’s imperative that you ensure you have all your facts straight, and check any (whiff of) bias at the door. Now this could all sound like the ramblings of an Adobe fanboi – and whilst I do work for Adobe, i’m not blind to the fact that when you compare and contrast competing technologies you have to ensure balance, and factuality are paramount. Unfortunately, this just isn’t the case in Hammond’s article. This concerns me greatly, as in this day and age when there is so much mis-information out there about RIA technologies it’s imperative that research organisations like Forrester (and Gartner) provide clear, correct, unbiased views of the facts.