Please remove the sarcasm from my previous post about Ajax. I won’t go so far as to say that I have reversed my opinion, but I will admit that I was focusing on the wrong part of Ajax.
I am currently building something that uses Ajax in some pretty basic ways. I still think that manipulating the DOM in response to user events is pretty gross, but I have found something to like in Ajax. What I like is the pseudo web services that naturally arise when you build something with Ajax in mind. You end up with servlets (or CGIs or whatever) that handle a single piece of functionality and return XML. These small services can easily be turned into a cohesive XML API or SOAP interface. When you’re performing atomic actions in response to a user interface behavior and then updating the interface to reflect that change, it’s almost like writing a desktop app. And that’s precisely what I’ve always strived for in writing webapps, though historically I’ve focused more on making the back-end more app-like by building a framework around Struts.
I still wish we weren’t doing all this with JavaScript and DOM manipulation though. Maybe something like XUL would be better. Of course, then we’d just be talking about plain old web services, without the browser standardization that makes Ajax so buzzwordy.