Recently, I’ve had conversations with a few of my developer friends who are all a twitter about AJAX. Saying how great it is and all the cool things Google is doing with it. Honestly, after taking a real close look at it, I find it to be hardly more than another buzzword. It simply does not offer anything of real value for web development. Yes, it can make interfacing with certain web applications smoother, and it solves some problems inherent in web applications. However, it introduces a whole set of other problems, that in my opinion, make it widely unsuitable for most work.
For sites that sell products or services this is simply not acceptable. It might be OK for an intranet or for something provided free (as in all things Google), but when customers pay, it is not wise to do anything that impedes them from reaching into their wallet and giving you money. Of course, the GAP developers may argue that it works in IE and in fact makes it easier for the 85% to give money to GAP. It all comes back to how long/likely will that remain true. Just ask all the folks who built sites that worked best in Netscape in the 90s and you will learn that the browser market is not something you want to bank on. I would argue that they have not made it any easier for the 85% who are IE users and did not really gain anything.
Other AJAX problems include the fact that it is still a client/server interaction… network glitches, slow connections (dial-up users are still out there) will cause any AJAX app to flounder, if not fail just like any other web app. You can still outpace the data flow of an application. As an example, go to Google maps and zoom or move it around as fast as you can and you will see glitches. In fact, if you are on a slower connection you may get map image parts that never load because the mapping engine has moved on to load other data. If you look at the graphic outlines provided in Jesse Garrett’s essay on AJAX you can see the layer of complexity that AJAX adds. Simply, the effort to make something work as an AJAX implementation and then also work as a basic web app is not worth the time or effort for most organizations.
Having said all that, I do think AJAX has its purpose. It seems to me the best use of AJAX is where you do want some cool interaction, on a non-mission critical application. If you do use it, whether for a mission critical app or not, one must be very careful to pay attention to the details of the interaction. Particularly, making sure to use AJAX in ways that also create effects to inform the users of what is going on… as it is easy to use Ajax in ways that the user will not notice, particularly when/where it is important for them to notice. Again, to me, a web application is only useful if it works for the widest possible number of clients. If you have very tight control of the audience/browsers such as a corporate intranet, then you may invest in the effort to use Ajax, but don’t be surprised to find that your corporate users are not as homogeneous as you think. Personally, I have not found a need to use it in any of my projects, and I am not inclined to start introducing it just to satisfy the itch. To me, developers who run off to implement some new geegaw often lose focus of the real purpose of a site and usually end up with something that may look spiffy, but is a headache to maintain and/or only works in a particular browser and ultimately fails (partialy or completely) for the audience you most want to reach.
I acknowledge Ajax can deal with some web app problems in very useful ways. A long standing problem with basic web applications is the session and state management of interactions between client and server. AJAX can be used to solve those in ways that were not easily done with basic web apps. Ardent supporters of Ajax will argue there is always going to be some browser problems that no matter what you do. So using AJAX may not be a a bad thing at all. In the end, if your organization has the resources to throw at using AJAX, go for it. Especially, for something that doesn’t necessarily deal with e-commerce or mission critical services. Otherwise, you can file it in your buzzwords file and move on to more important problems… like fixing all the accessibility problems your (and mine) site still has.
For more reading, you can read the following reference links to learn more about issues with AJAX;