7/6/08

Javascript, AJAX and beyond.

Recently when I was discussing with a friend about my tag clouds, and he commented something along the lines of: "such a nice AJAX application". That triggered my necessity to post on that.

"Is not AJAX. Is just plain Javascript". He said: "but Prototype is an AJAX library".

This hype around AJAX is cool. Lots of nice web applications, improved usability, better user interfaces, etc. But, as with everything, people sometimes misunderstand the concepts and, for the fatal blow, use them wrong.

AJAX is more than an acronym

Ajax (and not AJAX) is not Asynchronous Javascript XML anymore. Why? Because you can make requests synchronously if you want. Because not only Javascript, but Java, ActionScript, VBscript, whatever that runs on the client side and know how to do it can make requests. And XML, heck, it isn't even human readable. Plain text, javascript, html and JSON, among others, are possible results.

Is hard to define what AJAX is. Our friend Wikipedia defines AJAX as a group of interrelated web development techniques used for creating interactive web applications. Certainly the definition comes short, and one can interpret it as most convenient.

AJAX is not javascript

My tag clouds are not AJAX. Most of javascript effects, widgets and toolkits are not AJAX, at least not depend fully on it. People tend to think drag & drop, modal windows, fading elements or loading bars are AJAX. They alone are not. But most of them use AJAX techniques to communicate in some manner to a server, so the line is blurry.

What has changed since the coming of AJAX as such is the way people use those chunks of javascripts. In my opinion, I think it's mainly because designers are not the only ones to develop web applications anymore. Now, in order to successfully develop a web site (of any kind), a minimum of programming background is required. Or good tools. Or even better: good employees.

AJAX is not forever

Wow, that one is hard. AJAX has many weak points that prevent web applications to achieve their fully potential. Web 2.0 starts sounding too old. RIAs are growing, and there are several applications out there to prove it. I don't think that web application will replace desktop applications, not fully. But I think offline web applications will eat a big piece of the cake. Sooner or later, but being able to have an application inside another one, whose main job is communicating, is something still being worked. AJAX, as other technologies, will rather evolve or die.

I am aware we belong to a rapid-evolving era not only for web application but for technology in general. AJAX is not the exception, and we as developers have to catch up quickly, have a clear understanding of the panorama and use tools accordingly.