Published Thursday, March 17, 2005 1:27 AM by mtaulty

"Ajax"

I keep hearing about "Ajax" and it's not the cleaning product that I remember from childhood.

There's a really well written description of Ajax up here at the Adaptive Path website - essentially Ajax is about getting a better web browsing technique by avoiding the refresh of the entire HTML page whilst you make XML (web service like) requests to a back end over HTTP from within script on the browser.

It's a strange thing that this is being described as a new technique as I've seen ISV's doing this with their browser based applications in the UK for years - it might be true to say that those applications are mostly intranet applications so maybe it's got some newness in terms of public internet apps or possibly it's getting more attention as it's being used in a couple of the big Google pages right now - namely for the new maps service and for the suggest service, both of which are pretty cool.

The "Ajax" stuff also lines up with a CNET article around Google's potential for building a platform with these kinds of applications and (once again, in a Network Computer style manner) making the local machine redundant.

In the Ajax world the user sits in a browser and downloads a bunch of HTML and script which the interpreter runs and when they play with bits on the page that script submits more XML back to the server side to refresh certain portions of the visible document through the DOM model.

If we compare that with the .NET "Smart Client" model that Microsoft has for applications today then the user would sit in a rich application that's designed for the device they're running on which is compiled up and when they play with their data the client submits XML (in the form of SOAP) back to the server side to refresh certain portions of the UI through the Windows Forms object model.

These two models are not a million miles apart in that in both cases the intention is to build a better user experience through a richer client making use of XML-Web-Service like back-end infrastructure.  The main differentiators in all this would seem to be;

1) Reach. Web browsers are pretty much everywhere whereas the .NET Framework isn't everywhere today and isn't really anywhere when it comes to non-Windows platforms. There's nice technology in .NET 2.0 to slipstream the deployment of the .NET framework so it's less of an issue for the users of the applications.

2) Programmer experience. The "Ajax" stuff depends on manipulating the HTML DOM from interpreted script code. To me, that's pretty ugly. I really don't like manipulating the DOM and I really don't like writing script code of any kind. Anything that doesn't have type safety as a starting point is just a backwards step for me. I know that's not the case for everyone but I think it's hard to argue that script is a productive way to be writing code.

3) Working online and offline. There's nothing in the "Ajax" stuff right now about what you do if the network isn't there. I know we're supposed to be living in a world of constant connectedness but in reality I find I'm disconnected from the network a lot of the time. Sometimes it's because I'm out on my travels and sometimes it's because the network simply isn't working right now. I want applications that run for me when the network's not there. A prime example would be the way Outlook 2003 has my mail on my hard drive when I can't connect to the network. I need that. Even more so, I need my photos when I'm not connected to the network, I need my MP3's and my movies too. Local storage is what I want until the network is as ubiquitous as the power supply and, today, it's not even close.

It's going to be interesting to see how this all pans out - more interactive applications in the web browser or more interactive applications on the client or (fairly likely I guess) both :-)

# re: "Ajax" @ Monday, March 21, 2005 12:27 PM

How'd you like "Zuggest"? It's built similarly to Google Suggest but searches Amazon as you type.

Would love to get some feedback on it.

mtaulty

# re: "Ajax" @ Thursday, July 07, 2005 10:41 AM

I've been using AJAX for a little bit now and I really like it. It's really helpful for those slower connection clients and for actually just about everyone. It saves from having to use a meta-refresh which loads all the images and everything all over again, so it saves bandwidth and load on the webserver itself.

It's very old technology, but it was recently sparked by Google in the use through GMail and Google Maps. Microsoft first created the technology, but I really like it, despite that fact :grin:

mtaulty