I'm reading this inflamatory, yet spot-on post by Bruce Eckel, and while its main topic is about why Java failed on the web (because applets are fugly and java is a PITA to install - no grand revelations here), the part which I really want to "me-too" on is Bruce's account of Ajax apps ("The Web is a Mess"). A few days ago I had an interesting discussion with Cédric on why I still wasn't using gmail (I do have an account but I hardly use it). Aside of all the migration problems (which can certainly be solved), the main reason is still that, as an application, gmail's shortcomings still far outweight its advantages.
I want my mailer to be a full-fledged, well integrated desktop application, not something which desperately tries to look like one but will never be. I want my mailer to look like the other apps on my desktop. I want to be able to drag'n drop attachments to and from messages. I want to be able to locally grep my messages. I want keyboard shortcuts to work, not having to think if they'll conflict with another shell application which shouldn't even be there in the first place.
Or may be that replacement is already there.
While I hardly use gmail, I do use flickr a lot. As a web-application, flickr is great. As an application, it's passable. But flickr has understood that the best way to expand an app is to open it, so they've provided a nice API which plenty of "real" application use. So for instance I never use flickr's upload pages to add photos to my stream, instead I use flickr's own uploader from my macbook, or kflickr from my linux box.
Another solution which I haven't tried yet is flock, which IMHO is what the "web 2.0" really should be (rather than one of the silliest buzzwords ever devised).
As for gmail, the solution wouldn't be a web API, there's already POP and IMAP (the latter gmail unfortunately still doesn't support).
Web APIs are probably the sane alternative to Ajax, however they leave the burden of app development to 3rd parties, and the service provider will probably want to have more control than this. So it boils down to the same age-old problem all over again : remote applications.
X11 solved this a couple of decades ago, but in a way which just doesn't work over a WAN connection. If you want to "send" an application over the wire, you need to describe it more concisely than through heaps of drawLine() directives. In the same article, Bruce Eckel evokes Macromedia Flash re-invention, Flex. Having briefly worked with it, I concur it's a pretty good solution and I hope it will expand. Many would probably think that the best solution remains to be designed (or is probably running in some lab somewhere), but it would take some serious corporate muscle to get any kind of recognition (if only to write the dev tools in the first place).
Bottom line : the web is likely to remain a mess for some time, and the sooner the Ajax balloon deflates, the better.