AJAX (Asynchronous JavaScript And XML) is getting a lot of press these days.  MSDN even has an article which decribes how to do AJAX programming with ASP.Net 2.0.  The basic idea is that by doing client side programming in the browser, you can create a richer user experience.  There seems to be no shortage of opinions on the potential impact this technology will have on the computing industry.

In some respects, all of this attention is a little odd.  The AJAX technologies have been available for years.  (Outlook Web Access has used similar concepts in the past several versions.)  And, while AJAX does allow for a richer user experience than traditional web applications, it still falls well short of the user experience provided by traditional desktop applications.  (Most users prefer Outlook over Outlook Web Access, for example.)  It seems that the interest in AJAX is a reflection of the belief that many have in the promise of web based applications.

Policies which mandate the development, exclusively, of web based applications are another reflection of this belief.  (Many US Federal Government Agencies have such policies.)  The interesting thing about these policies is that they are almost never driven by users.  IT departments, correctly, point out the deployment and maintenance benefits of web applications.  The cost, in terms of user productivity, of web applications versus desktop applications, however, is not typically factored into the decision.  (When someone uses an application all day, extra mouse clicks add-up.  Also, numerous articles on user interface design point out the importance of quick response times. Etc.)

The current interest in  AJAX may indicate that users are starting to lose patience with the web applications we've been giving them.  It may mean that we need to start focusing on user productivity along with ease of deployment and maintenance.  AJAX is a good first step towards putting the focus back on the user.  Microsoft is working on a project, code named ATLAS to make it easy to build these types of applications using ASP.Net.  (You can find more info here.)  AJAX, however, is still limited by current browser based technologies. 

To really improve the user experience, I think we need to look at new approaches for combining the IT benefits of web applications with the user productivity benefits of desktop applications.  (At Microsoft, we group our approaches under the heading of smart client.)   In fact, I think that it may be necessary to revist the polices that mandate the creation of web only applications.

Only time will tell if AJAX enables a rich enough experience to satisfy users.  Regardless of the outcome, however, the real signficance of AJAX may be that it creates a renewed focus on user productivity. 

I'd love to hear comments on this topic, especially from US Federal readers.

-David