I’m mixed on the whole AJAX thing. On one hand, AJAX is extremely cool! Some of the applications using AJAX technology are starting to feel like applications and not just web pages. On the other hand, there are so many issues with it that it’s tough to put them all into words.
AJAX is not new. All the components of technologies have existed for a while now. Yes, they have become more mature, more stable, more widely available, but they are definitely not new.
“And now, I am proud to present “SHAD!”SHower and Deodorant! You’ve used them both separately for years now, combined, they are absolutely unstoppable! Not only will you be clean but you will smell…”
…you get the idea.
There are other acronyms that have found popularity such as LAMP (Linux, Apache, MySQL, PHP/Perl) but few that have been hyped as much as AJAX. It has become synonymous with Web 2.0 and all the VC money is being poured into companies building AJAX sites that it feels mandatory that you list it as a key part of your products infrastructure to get funded. But onto the technological aspects of AJAX.
With Web Applications, the cross-platform issues is amplified not only by the number of platforms and OS versions, but also by the different web browsers and the various versions and inconsistent support for key technologies. It is further complicated by the fact that browsers are released relatively frequently and sometimes automatically introducing a new platform requiring software developers to respond immediately to avoid support issues and unhappy customers. This seems like a step backwards to me. Now, you not only have to deal with more platforms with a broader set of differences but you have to drop everything to deal with Internet Surfer Version 7.0 (name changed to protect the guilty) which not only breaks most applications and is less responsive than previous version but is being pushed out to customers in the form of automatic updates.
Ok, now for the cool stuff! Most of the difficulties in AJAX development are being mitigated by the large number of projects that have appeared to facilitate the addition of AJAX to your application. I’ve spent quite a bit of time recently researching AJAX technologies and I have to admit that this is some very cool technology regardless of the cross-platform issues.
There are several libraries that everyone who is starting with AJAX must know about. The first of these is Prototype (http://www.prototypejs.org/). You MUST know about prototype.js to use AJAX. Ok…you don’t “have” to know about it but if you don’t you will spend a substantial amount of time reinventing the wheel. Why do that if you don’t have to. A substantial education on AJAX can be had just by studying the Prototype source code.
Â The next two libraries you should know are built on the prototype library. These are the formidable Scriptaculous (http://script.aculo.us/) and the amazing OpenRico (http://www.openrico.org/) libraries. These two libraries can be used together with prototype as the basis for building a very cool Web 2.0 application.
The combination of these libraries will do almost everything you need to do. You can create dynamically loading page sections. Fade-in/Fade-out effects, accordian sections, drag-and-drop effects and more. By combining these base libraries with various techniques and add-ons like Lightbox (http://www.huddletogether.com/projects/lightbox2/) and AJAX-based tabs such as the ones you can find on this site (http://www.kollermedia.at/archive/2007/02/20/download-tabmenu-for-free/) you can build some very cool applications and not have to worry about the cross-platform details since these are taken care of by the support libraries.
I’m continuing my review and in future articles i’ll present other cool AJAX libraries. For all those people who heard me say that AJAX was a mistake, i’ll admit that while the foundations for my statement have not changed, the libraries I’ve mentioned here have made my original objections non-issues. As far as AJAX goes…whats that old saying? “How could it be wrong when it looks so right!”