I've been sitting on a lot of thoughts about this whole AJAX phenomena that is sweeping the industry lately. Tons of people have thrown their two cents in already and I've been meaning to post my thoughts, so here goes. :)
First off, let me beat the horse one more time and say: AJAX is nothing new. It's a nice initiative to have a standard library, but people are kidding themselves when they say this is a revolution of the web. The very browser features that AJAX is founded on have been in IE forever. If you want to wonder why people write proprietary stuff for IE it's because, pretty much up until Mozilla came along, it was the only browser that offered enough power to actually be able to create DHTML applications like those that we're just starting to see in the mainstream these days. If you want to blame someone for it not being available in other browsers, blame the creeping standards body which to this day still has no specification for something as simple as a component model in DHTML despite the fact that a proposal from Microsoft has been sitting in the queue since 1998. Yeah, it wasn't perfect, but if it was adopted even in it's original form the development world wouldn't still be writing script to emulate such an architecture to this day.
As usual, there's a bit of a double standard when it comes to standards. Why is it that people can overlook that this is a proprietary extension by Mozilla (adopted from Microsoft no less!)? Why aren't the all the standards zealots who love to constantly bitch about IE's non-compliance with the DOM going insane over the fact that there's a perfectly good specification, called DOM Level 3 Load and Save sitting there in recommendation status since 4/7/04, which Mozilla should have implemented instead of cloning IE's XmlHttpRequest? It should also be noted that in addition to the cloning of the proprietary XmlHttpRequest, Mozilla has also followed Microsoft in introducing it's own proprietary DOM document creation APIs (Microsoft has XMLDOMDocument via ActiveX, Mozilla has DOMParser/XMLSerializer as first class JavaScript objects). Why go proprietary when there is also a perfectly good specification for these things sitting around waiting to be implemented called DOM Level 3 Core?
What actually prompted me to finally sit down and write something up was my pride rising up when I read this post I came across today over on Dare's blog. :) I would argue that my company actually beat Microsoft's Auction Demo App hands down because we wrote a fully functional, browser based staff tracking application, called StaffTrak, on IE4.0. This is obviously well before there was even any XmlHttpRequest available, so how'd we do it? Well back then Microsoft had this nice little Java class called the XMLDSO, which is short for XML Data Source Object. We did all our communication with the backend by embedding the XMLDSO Java component on the page via <applet> and then automating it with JavaScript. I've written about this application before, but here's the details again. I wrote them up on 2/15/99, so when I say “last year” obviously I mean '98. Also I found this article about my old company, Square Earth, which mentions our work on the project and, if you notice, is dated 10/3/97 (note: you need to scroll down a bit). Oh and btw, yes... this application was actually deployed into a production environment and provided a real world solution for Microsoft's NYC office. ;)
In closing, I want to be clear I'm not against AJAX, Mozilla or Google in any way. In fact, I'm all for a standard script library so I can stop having to invent it all myself. :) All I'm trying to get across is that this stuff has been happening on the web for years. Google just happen to come out with a very public showcase app for these technologies when they released Google Maps and they certainly deserve all the credit they've received for the application because it rocks. In the end though, they should not receive all the credit for being the only company that's really innovating on the web by leveraging the underlying technologies that the browsers supply us with.