Ajax Exposed – Myth and Reality

Ajax, from its onset, has seen many debates and discussions which not only have helped it flourish even more in its overall popularity but also have made it gain world wide acceptance and more standardized approach. However, there are still a lot of myths associated with Ajax and many of them have come out through discussions in forums and through the blogosphere. This article tries to relate all of them and recall their origin and the realities attached behind the scenes.

Ajax is not about XMLHttprequest Object
Most of the people think that if they know about the XMLHttpRequest (XHR) object then they are Ajax programmers. Only a part of this statement is true since the base of Ajax is about XHR. But Ajax is not just about XHR.

The article by Jesse James Garet (who originally coined the term Ajax) mentions the same as,

XMLHttpRequest is only part of the Ajax equation. XMLHttpRequest is the technical component that makes the asynchronous server communication possible; Ajax is our name for the overall approach described in the article, which relies not only on XMLHttpRequest, but on CSS, DOM, and other technologies.

Working with Ajax means that you intend to use asynchronous behavior in your web page. The next thing which comes into practicality of Ajax usage is the XHR object. Although asynchronous, your web page will be far away from using Ajax in the right manner.

Ajax was not just meant for providing asynchronous behavior, but to make a web page shed its primitive look from blocking a view whenever a request was made to a look, which more seemed as if a person was working on his desktop application, by a combination of features provided through CSS, DOM, etc along with the specialty of XHR. The driving force to the popularity that Ajax has received is majorly speed and natural responsiveness which means that a response is generated to only what is demanded keeping the other things constant without changing.

Thus a person gives a preference more to a quick responsive page rather than the one which takes intervals in each and every request initiated and makes changes to the other things as well. XMLHttpRequest might be the base but along with the asynchronous behavior that XHR inherently provides you should be using it carefully with a proper separation of concerns between DOM, JavaScript and CSS along with XML, XSLT and XHTML.

Ajax is not an acronym
The fact is that, Ajax is just a shorthand for Asynchronous JavaScript and XML. When the Ajax hype happened about a year ago all the work done in Ajax was a miracle for those who hadn’t been much into the user interface driven aspects like CSS, JavaScript and XML. With the advent of Ajax, people have recently become more enthusiastic about JavaScript which was once a hated language by programmers amidst all the heavy duty strict counterparts like Java, C#, etc.

However, people failed to realize that this comparison was baseless since JavaScript was client side UI driven technology and had nothing to do with remote technology that Java, C# provided. Both belong to the different paradigms and cannot be compared. The name might itself suggest, JavaScript is nothing more than a scripting language for browsers in order to make the DOM active in its response. It is UI related and not meant for server side. However if you have used ASP you might disagree with this statement. But that is a different thing concerning with familiarity of JavaScript users for ASP using JavaScript.

In the Story behind Ajax, Garett once again comes upfront to clearly mention this

I thought of Ajax as a convenient [term]. It was never intended as an acronym.

Ajax came into the popularity charts due its catchy term and powerful way of representing a number of different things under its hood. Many JavaScript libraries which were providing a set of dynamic functionality to a web page became full fledged Ajax Toolkits since the emergence of this term. However if you see the source of these toolkits, you would come to know that they are a pure blend of many complicated modules involving CSS, XML, iFrames, Closures,etc.

The only place where the asynchronous behavior comes into picture is where the XHR object is used or where a graceful degradation in the form of an iFrame is provided for old browser compatibility. Rest of the rich interface experience is brought by other prior existing features like JavaScript special effects and utilities. Now these have come into limelight due to the coinage of the term “Ajax“. It can be compared to as a brand name rather than an paradigm shift.

Ajax is not AJAX
When Jesse James Garett had coined the term Ajax it was used in camel case. But due to its expansion coming into the limelight as “Asynchronous JavaScript and XML” (notice the uppercase of the words) people represented it as AJAX and not Ajax. Much hue and uproar was made about this inclusion. Should Ajax or AJAX be used, is of more importance in the data driven aspects.

If you have a tool or search engine which you use to search case sensitive terms then using Ajax will fetch different results than AJAX. The same applies to using case sensitive switch cases in your applications which might be disturbing of search intensive applications. So it is required that people across the world stick to a single norm. The reference of the usage is correctly attributed to the creator of the term itself i.e Jesse James Garette. He used Ajax (camel case). Wikipedia also uses in the same way, alongwith many big vendors, so it ought to be Ajax and not AJAX.

Arun Gupta recalls his experience in making the changes at Sun Microsystems.

Ajax is a popular term for past few months but is still being written incorrectly as “AJAX” (all capitals) instead of “Ajax” (camel case). I started using AJAX but then corrected myself and have been using Ajax since then.

Arun has mentioned a set of nice resources which prove the need of using a globally accepted term. Its analogy can be put forward to the acceptance of English as a global language. Even this site needs to make the changes to the usages of the term AJAX wherever used. So if you are in the AJAX bandwagon it would be better to jump on to the Ajax one, due to the global directives.

Ajax is not Web 2.0
Web 2.0 is a conceptual term and rather a representational term which in recent times is being used on a tremendous scale to put forward the freedom of data usage on the web. Earlier the web was used to share data statically and allow limited interactions in the form of feedbacks from the user. But today if we see the web, its a lot more interactive and user has the power to generate content, publish at ease and choose various alternatives to acquire it.

The web sites today cater more to the user inputs rather than passive information being pushed to the users. The result being the increasing number of blogs, forums, social networks and communities. In addition to the increasing user interactions, Web 2.0 is about using data freely. There is no limitation to getting data only in a pre-specified format or a pre-specified contractual terms.

The user is free to choose how he can receive the same data in various ways. The proof of the fact is the number of technologies that are being built to cater to this aspect. Web Services, RSS Feeds, Webcasts, Podcasts etc. Spreading of data more accurately and in a wide spread manner is another aspect of Web 2.0. Tagging, Online bookmarking are only the beginning of such techniques and the web is about to see a lot more than this.

In his article, De Witt Clinton tries to showcase this is a rather detailed approach on how communication has evolved,

Web 2.0 is about giving up control. It is about setting the data free. It is about providing services that work with other people’s data. It is about having a valuable resource and making no presumptions about how or where that resource will be used.

In my opinion, the web just might become obsolete in the near future. The fact being it might be something closer to having online desktops. It might be possible that computers will be replaced entirely by mobiles which would become more handy than a computer, with power packed business and multimedia features.

Ajax can be considered to as a part of the implementation process but not a concept of Web 2.0. Web 2.0 is also just a term used to replace long statements indicating the changing nature of the web and not a replacement to the existing characteristics of the web, just like Ajax did to the underlying technologies. You might read about this aspect in Wikipedia’s information on Web 2.0,

The argument also exists that “Web 2.0” does not represent a new version of World Wide Web at all, but merely continues to use “Web 1.0” technologies and concepts.

The term Web 2.0 showcases how data can be shared and used freely without any sort of restrictions while Ajax makes it possible to make innovations which attribute to the growth of Web 2.0. It’s more of a marketing strategy when you see Ajax and Web 2.0 used as synonyms just to derive maximum popularity owing to the two latest terms coined. Web 2.0 shows the way to use and spread data while Ajax is a practical approach to present the data in an effective and interactive manner.

3 thoughts on “Ajax Exposed – Myth and Reality

  1. As I see it we will soon be ignoring the Ajax part of web programming as it will be for the framework writers to deal with while programmers will simple use it. As open source project leader of Visual WebGui(http://www.visualwebgui.com) I my self am starting to forget how to use XHR and lots of other Ajax concepts. The was some one who coined the expression “Indirect Ajax” meaning you using Ajax with out knowing it. As I see it is a sign of maturity just like none of us are using assembler to write our applications. Who cares how it work as long as it works…


Leave a Reply

Your email address will not be published. Required fields are marked *