The significance of AJaX

The name AJaX comes from one article written in January of 2005which was the first to use the acronym AJaX. In it is mentioned the technology (i..e the one function ‘XMLHttpRequest’) had been around for some time and is probably the only significant contribution that Microsoft has made to the internet’s development to date.

AJaX as a development model breathed new life back into Javascript, which, after the browser wars of the late 1990s, was generally considered a bit ‘toffee’ in the web development community as it was “another language” to know and didn’t have much use other then validating form input before it was submitted to the server (which you could do on the server anyway), and Flash had taken it out on the animation front being more flexible and powerful generally.

Suddenly you could talk directly to the server without having to reload the page (which is slow and tedious and means you lose “state” unless you do all the boring scripting in the server to make sure it carried across page loads), which means you could get data from the database (almost) direct in Javascript! No only could you now validate the data you could save it as well at a fraction of the data transmission cost and hence time. “Web applications” could now compete with the traditional desktop applications.

Microsoft have only recently announced they will move the entire office suite to the web (google have done it too!), and charge a subscription, which has totally changed the software market model completely. For the software companies this means they can cut out the packaging/shipping etc but more importantly worrying about the hardware setup on a zillion different types of home computers. They just have to worry about the browser version. The Browser IS the platform now. It also means that Google a web technology company is competing in the same market as Microsoft who are traditionally an OS and desktop applications company.

What this means to me from a system architecture point of view is that you can keep your “business logic” (the rules that govern you systems operation such as: “is this available for sale give they have 3 already in their shopping cart”) in one place on the server and just ask questions in response to users actions in real time, which greatly simplify software design as before you had to have all that logic on the web page when its loads if you wanted to respond to users without a page load (which even in this day-n-age of broadband is still tedious).

So the design and is simplified and in conjunction with the so called “Unobtrusive Javascript” style of coding, separating the behavior form the mark-up (XHTML) from the presentation (CSS), web development today is radically different from what it was 3-4 years ago.

There are a number of good Javascript library’s that make Ajax a core feature. The 3 big ones are:

  • Prototype, adopted by the ‘Ruby on Rails’ framework which is the trendiest thing on the web right now
  • jquery, small set of tools adopted by the popular Drupal content management system, which I’m starting to work with a lot now. Also Visual JQuery is quite good too.
  • Dojo, my personal favourite being one of the most experimental JS Frameworks as they annoyingly change it completely every 3 months, but the project leader seems to be the most hardcore JS guy on the planet I think, having invented the “Comet” approach which is like the next step after Ajax.

Comments are closed.