AJAX - A kludge, not a solution
AJAX is a hack. A plethora of kludges built on the assumption that users accept to run third party scripts from most sites, and that sites should provide scripts to enhance the interface for every browser. Results in a collection of compatibility code to work with a few browsers only.
Oftentimes slight modifications to the User-Agent sent by HTTP clients cause problems. For instance, google maps stopped to work in AJAX mode whenever I removed the version from my Firefox User-Agent. Every site may parse the User-Agent string differently and (mis)evaluate the features of the client.
Various circumvented ways to achieve semi-asynchroneous functionality. An attempt to dumb down sites so that users unfamiliar with the way HTTP works may have an interface closer to that of local GUI applications. As a side effect, often causes every site to use a different interface without following UI standards.
Unfortunately, the industry largely fell into the trap. This makes it hard to work on actual solutions and on their standarization. More time and effort are spent on the interface than on actual useful content. This is also a landmark of Web 2.0, but many of the Web 2.0 functionality could remain available with better, real, solutions to the problem.
What is needed
The new technologies should be secure and standarized. The W3C XFORMS, for instance, appear to have potential to advance towards a solution.