Saturday, February 2, 2008

RIAs vs AJAX


*Excerpted from a recent email for AJAX World conference


There is currently a lot of hype about a supposed battle between RIAs and AJAX. In my humble opinion, the whole business is greatly misconstrued. Here is what I think are some of the misconceptions:

  1. That there is such a thing as "AJAX". AJAX, is a made up term that was created to sell people on DHTML, which was a made up term to sell people on what you can do in the browser using just HTML and javascript. So, “AJAX” is not a platform, a RIA, or a new technology.
  2. That RIAs are anything new. RIA might as well be named “Reactionary Internet Applications”. No paradigm shift has been introduced. They represent a qualitative improvement over Applet and ActiveX control solutions of past years. (Likewise, Adobe AIR and WPF are qualitative improvements on traditional desktop installs.)
  3. That there is a choice to be made between AJAX and RIA. Just about any RIA will be embedded in an HTML page that uses javascript to communicate with it. Some RIAs will even make use of HTML and javascript as content (a selling point of Adobe AIR), so the only question is whether to use an RIA or not for a particular problem. If you are working on a web application, you are using HTML and javascript.
  4. That RIAs are going to rise up and squash “AJAX”. This would mean that RIAs would render browser based applications obsolete as anything other then a launching pad for RIA content. The ramifications would be (among other things):
    • Literally hundreds of millions of web pages of content would have to be transformed into RIA content
    • The cost of creating content on the web would, for the first time ever, go up rather then down, as the means of creating content became locked behind proprietary systems with much higher learning curves then HTML and javascript.
    Besides all of that, there is also the simple fact that the browser has historically evolved to fill the gaps that RIA solutions provide, and it will continue to do so. Basically, anything that RIAs are doing exclusively today, will be in the native browser domain some point in the future, and that future is often closer then you think. For example, look at the dojo charting and vector graphics packages.

  5. That the debate is at all related to innovation in Web Software. I can’t think of any real paradigm shift in web development that has hinged on a distinction between using Flash or Silverlight or JavaFX vs Javascript, while many of the innovations in the past 8 years have been related to the openness and document structure of browser-based development. Google maps wouldn’t have been much different if it had used Flash (as Yahoo maps in fact does) to do the map drawing. What is important to note about the Maps and subsequent Mashup explosion that came out of that, was that it was achieved by exposing aJavascript API that was scriptable in the browser. The mapping component could be Flash, Silverlight, or anything else, but the way you talk to it is with javascript and where it lives is in the DOM. Likewise, it is hard to imagine document and hyperlink based collaboration patterns such as Wikis and Blogs emerging in a world that is completely dominated by RIAs.
  6. That the limitations of browser based applications are a bad thing. Limitations have a lot of benefits. Most software is overbuilt by a wide margin which increases cost, stifles innovation, and frustrates end-users. Web applications have been so successful at delivering inexpensive software because of the limitations of the browser rather then in spite of them. Google has proved over and over again that people want simple and clear interfaces without a lot of moving parts, yet the writing on the wall is ignored over and over again.

So there you have it. Please, feel free to use Flash, Flex, Air, Silverlight, JavaFX, or even Applets or ActiveX wherever you find it needed, but please, lets stop debating RIA vs Browser-based HTML and javascript as if it were an apples-to-apples comparison.

3 comments:

ToddF said...

The single place that Flash has produced a paradigm shift over native browser functionality: Video.

Andy said...

You make some good points, and while been very skeptical of RAIs in the past, I'm starting to come round to the idea while reading Flexible Rails.

1. To call something 'Ajax' you must be transferring updates from the server without page refreshes. You could do this awkwardly with iframes in the past, but it wasn't really until XMLHttpRequest became widely understood that we started to see changes in how people designed apps. That was the point when we went from DHTML to the next stage.

3. There are probably no quantative studies yet, but I would guess the cost of developing an RIA app would be in the same ballpark as developing for a single version of a browser - there should be much less worrying about cross-browser or version issues. Everything that you could do in Flex/Silverlight probably could probably be done in Ajax, but it'll be a pain. (I actually see a good opportunity for using RIAs when prototyping 'traditional' web apps).

n kolba said...

Andy,

1. Yes its true that AJAX, really refers to the Async exchange of data. (and I think the Iframe counts as AJAX).

2. While it is true that in the right hands, RIA development is certainly a lot faster for some apps then working with HTML and Javascript, I think RIAs are more expensive because they are proprietary and have a higher bar to entry for developers. While RIAs can be made to be open, HTML and JS are inherently open. Your right, it would be very interesting to see a study of this.