The emergence of the AJAX programming style in the past year and a half has made rich web clients more than just a pipe dream. The fact that it uses established technologies that are in some cases a decade old means that there is relatively little vendor control over its use.

CBR Online story.

According to Coach Wei -Â founder and CTO of Java/AJAX tools firm Nexaweb Technologies Inc and one of the founders of the Open AJAX project - the top issue at this point is interoperability. With anywhere from 150 to 200 different AJAX tools out there, there are as yet no standards for making widgets, or visual controls, which are portable from one to the other. However, that’s just the tip of the iceberg. As the scripting language JavaScript (the “J” in AJAX) is notably unstructured, and consequently, best practices have yet to emerge on how to readily debug JavaScript.

AJAX, a Web 2.0 technology, does provide for some excellent applications - for example Google Analytics, Basecamp, Flickr, iStockPhoto and many more. As applications (ie tools used by a known and identifiable group of users), the AJAX integration provides for beneficial tool to enable a link between a web page and a server-side application without needing a page refresh every time you click a button or link. This may be an over simplistic abstraction, but it is the essence of AJAX. What happens within the AJAX code is limited only by your requirements.

An alternative to AJAX is Adobe Flash. Flash has also had the ability (via Actionscript) to conduct XML interactions with server-side applications. You could argue that Flash is better because it provides additional tools for developing a user interface for your application, so you can get both form and function and effectively deploy a rich application to users desktops via a web browser. This was the push behind Macromedia’s (now Adobe) Rich Media Applications that have been around for a few years now. See Pandora as an example of a Rich Media Application, essentially using AJAX principles behind the Flash interface.

So, the idea is not a new one, but the questions of how we deploy it in a standards-oriented way so that we can safely transform a set of JavaScript programs into a formal architecture which we can enhance and develop as a true enterprise-class framework.

As an aside, we should also not get carried away with the hype of new technologies and look to put Ajax into everything we do. As an application framework it is a very useful addition to the toolkit, but for straightforward web design and development it’s overkill. Remember, JavaScript = no search engine indexing of the content presented by the JavaScript. It also means potential accessibility issues if people have JavaScript disabled. Flash is more portable and may be a better option but it depends on who is going to be using the application.

AJAX will continue to grow in popularity and ubiquity, and as standards and best practices are developed it will become a more capable solution. One advantage it has over Flash is that it’s just another coding language and so is more accessible to developers than Flash which is a different proposition as it requires new applications and new techniques, and often a designer :).