Revisionist AJAX History

2006-01-10 13:27:00

Now that the AJAX hype is really going full-bore, we were bound to see folks posting their particular spin on the evolution of AJAX. I've seen two of these recently, both of which get things pretty much completely wrong.

One of them seems to be inaccurate by dint of narrowness of experience. Aaron Schwartz posts his A Brief History of Ajax, which does actually contain many good factual elements. But any post that purports to be about the history of AJAX that contains the phrase "Shortly before web development died out" is of course immediately suspect.

Maybe he's being hyperbolic; I don't know. But I was doing Web development starting in the late 90s right up to today, and even after the crash it seemed that companies were still moving everything slowly to the Web, and that Web-based business with sound business plans were still thriving.

His original 'history' doesn't even mention obvious primitive versions of AJAX-style dev like the hidden iframe trick, remote scripting with the JavaScript tag src, or even the ugly hack of nested framesets that lots of people were using back before XMLHttpRequest and DHTML.

He does add some correction at the bottom that mentions the iframe trick, but states incorrectly that it "never took off." This is completely incorrect in that it was a really ubiquitous hack that everyone was using in their Web apps to post stuff back to the server without reloading a page.

The other AJAX 'history' post I've seen recently is one from Garrett Smith that's out of whack due to its partisan worldview. Get a load of the title: Microsoft invented Ajax: Let's give credit where it's due. Makes you want to read it just because you'll know it's worth a chuckle.

He starts his post off by decrying Mitchell Baker's comment about how Microsoft's browser monopoly caused Web development to stagnate. Her comment, that Web 2.0 would have happened sooner without the Microsoft monopoly is not something any serious Web developer would debate. Certainly not after enduring close to five years of a slowly rotting development platform -- IE 6, that made absolutely no forward progess, saw no new development, got no new functionality after the Netscape bugaboo was safely dead.

In fact, no sane person -- not even the most rabid Microsoft patriot -- could argue, not with a straight face anyhow, that we would even have a new version of IE coming out if it weren't for the competition they are now facing from Firefox.

But the heart of the post is the bit that leaves me unable to decide whether I should laugh or cry:

Microsoft invented Ajax in 1999. It just took the rest of the software world 6 years to catch up.

To achieve this Zen-like simplicity of belief in the power of Redmond, he narrowly defines AJAX as (1) the ability to modify HTML on the client side and (2) XMLHttpRequest -- both of which states, made their debut on Internet Explorer.

In fact, DHTML, or the ability to modify the UI in the browser without reloading the page, was something that came out at roughly the same time in both browsers -- IE 4 and Netscape Navigator 4, in 1997. And if you want to go further back than that, it was possible to do primitive AJAX-style changes to the UI with image rollovers and framesets back in Netscape Navigator 3, released in 1996. IE 3, back then, was ... well, let's just say it's a very painful memory.

Sure Microsoft introduced XMLHttpRequest, and there was much rejoicing. It's a big step forward that makes the lives of all Web devs much easier. That doesn't mean they invented AJAX any more than Netscape did by creating JavaScript.

As I keep pointing out -- AJAX is not something new. Neither Microsoft, nor anyone else 'invented it.' The collection of technologies and techniques we call AJAX is just another step in the evolution of something we've been doing since there were browsers to develop Web pages and applications for.


mde (2006-01-27)

Nowadays AJAX is a broad term that refers to a lot of techniques beyond simple async calls back to the server. Unfortunately, whether you or I personally like it or not, it's often used synonymously with what we used to call DHTML back in the day.

And no, XMLHttpRequest is not the async part -- certainly as far back as with Netscape 4, you could make asynchronous calls to the server with multiple or nested framesets. JavaScript just processed the results when the new pages loaded in the frames. I did it all the time on a Web app that supports hundreds of thousands of users. XMLHttpRequest just makes the process easier.

Reid Ellis (2006-01-20)
But, but, but... isn't XMLHttpRequest the asynchronous part (i.e. the "A") in AJAX? Without it, you only have JAX. How did you do asynchronous server calls with Netswcape 3? And I don't think DHTML == AJAX. Not even a little bit.


This is the blog for Matthew Eernisse. I currently work at Yammer as a developer, working mostly with JavaScript. All opinions expressed here are my own, not my employer's.


Previous posts

All previous posts ยป

This blog is a GeddyJS application.