Ajax

My take on Ajax is very much that of a developer. It brings many advantages:

Rich Widget set

Switching to using an Ajax application framework feels like developing a traditional GUI application where the vendor provides lots of useful widgets. Most Ajax frameworks come with a rich, consistent set of widgets (trees, tabs etc).

Though HTML/CSS can be used to display menus, tabs and trees (e.g. Suckerfish dropdowns), integrating different HTML/CSS widgets into a consistent look and feel is hard and error prone.

It would have been much better if HTML had been extended along the lines of XUL years ago; it is easy to write a consistent XUL application with a rich set of widgets. Unfortunately a XUL application will only work in Firefox.

Browser based MVC

Ajax shifts the MVC layer away from the server to the browser. This massively simplifies web development; web development becomes much more like traditional GUI development. The web server presents a service layer to a client program.

Better use of system resources

Ajax applications require far fewer resources on the server.

Issues

Ajax also brings problems. Ajax applications need to preserve the notion of the Web as browsable, searchable sets of web pages. The server has to present the model in such a way that it can also be read by search engines and web browsers. In a javascript environment, JSON services are the easiest to use but search engines and web browsers cannot consume JSON services.