Ajax (the name) Considered Harmful

| 5 Comments | 1 TrackBack

Having updated Java in a Nutshell (see below), and nearing a feature-complete release of Jude (also see below) , I'm turning my attention back to JavaScript, in order to begin an update of JavaScript: The Definitive Guide

Of course what I discover is that everyone is talking about Ajax.

And I want it to stop! The concept is great. The name is lousy.

The term "Ajax" was coined in a blog entry by Jesse James Garrett of Adaptive Path. It stands for Asynchronous JavaScript and XML..

Here's why I don't like it:

It emphasizes the wrong points

  1. Client-side JavaScript is event-driven. Any program with an event handler is asynchronous.
  2. The XMLHttpRequest object, which is the core technology under discussion, can operate in synchronous or asynchronous modes -- there is nothing fundamentally asynchronous about it.
  3. XMLHttpRequest is itself misnamed: it can be used to retrieve any type of content from a web server, and should simply be called HttpRequest. If you retrieve XML data, the XMLHttpRequest object will parse it into a DOM tree for you, but you can also, very fruitfully, use it to retrieve data encoded in a simple form, such as plain text.

So, if we take the Asynchronous and XML out of Ajax, we're just left with ja. No longer such a catchy term, is it?

To my mind, the most important parts of the "AJAX" model are the ability to dynamically retrieve content, and the ability to transform XML content using XSLT. But retrieval and transformation are not part of the acronym

Ajax is a marketing term

In a FAQ at the end of his blog entry, Jesse says: "I needed something shorter...when discussing this approach with clients."

In other words, the person who coined the term Ajax believes it should be used when speaking to clients. We in the developer community should not adopt the term because it doesn't really capture what we're talking about. Because it does not say what it means, it has already turned into hype.

Ajax is probably trademarked

You can buy it for your kitchen sink for 89 cents .

What should we call it?

I know this is a battle I cannot win, but allow me to offer two humble alternatives:

DIRT: Dynamic Information Retrieval and Transformation.

STAR: Scripted Transforms And Retrieval

Heck, even calling it DHTTP would be more accurate than calling it Ajax, and that term would go nicely with DHTML!

1 TrackBack

I picked up a copy of David Flanagan's JavaScript The Definitive Guide a while back because I had full intentions of actually learning JavaScript in order to create a few Dashboard widgets for around work (submitting support requests, getting server... Read More

5 Comments

The name is not the best, but it seems like it has took hold and its gonna stick. So I see your points, but just forget the fact that the name is inaccurate and be happy that everyone knows what you mean when you want to talk about your dynamic synchronous event-driven web app. =)

To JATR or to JART that is the question

DHTTP is good -- much preferable to the A***-word. The echo of DHTML makes the meaning strongly implicit, and lends and instant sense of 'heritage'.

And from the author of *the* javascript book, it must also carry (the most) authority. Be sure to use 'DHTTP' somewhere in the next edition.

I had the same reaction the first time I heard the "A" term as well. Too bad that article was referenced by Slashdot (among others), giving it such a headstart. I have refused to use the term around my office, but lacking an alternative, I simply made reference to the XMLHttpRequest object (which, as you pointed out, is really the only thing that matters). I vote for DHTTP as well. If the W3C ever gets a move-on with CSS3's save and load, DHTTP would fit that as well.

DHTTP is very good!.

Books

Comprehensive coverage of Ruby 1.8 and 1.9

"The New Most Important Ruby Book"
Peter Cooper,
rubyinside.com

Completely updated for Ajax and Web 2.0

"A must-have reference"
Brendan Eich,
creator of JavaScript

The classic Java quick-reference

Advertising

Pages

Hosted By

Powered by Movable Type 4.21-en