Wednesday, September 20th, 2006
The 4 States of Ajax Adoption
Joe Walker has written a piece on The 4 States of Ajax Adoption:
1. Denial
Usually accompanied with an explanation like “Java Applets are better“, or “Javascript makes your website inaccessible to blind people”. (Generally I don’t buy either argument although I can see a diminishing case for WebStart).
2. Progressive Enhancement
Means taking an existing JavaScript free website and adding some tweaks. It’s a conservative approach that won’t worry or annoy anyone, but it won’t turn any heads either. The BBC, Wikipedia and EBay all use this approach because it’s a safe thing to do with a big website.
3. Second Site
The problem with progressive enhancement is that it treats the minority noscript case first. The second site approach provides the best it can for the majority and for the minority too. Google, Yahoo and Amazon create far more advanced systems with this approach. It’s likely to cost a bit more, but you’re probably going to get a much better site out of it.
4. Accessible JavaScript
The full on approach tries to create accessible sites, but only when JavaScript is turned on. Microsoft’s live.com, YouTube and some Google sites do this, and there are some UIs for which there is little choice. Anyone fancy creating office type functionallity without JavaScript?
What state are you in? :)












I am in the getting burned out on programming day n night… keeping up with tech trends and staying informed is a full time job…. ahhhhg i still havent gotten a blog up. Trying to constribute to the open source scene… how do yall find the time???
Another daft list. I fall in neither, since I pick what to do according to situation and intended use(rs).
What I don’t care about though is turning heads. I bet the end result is better if you don’t.
State #2. At the moment–the best thing to do is to be open-minded about innovative ways to design, develop, and deploy web applications. Note: I say “web applications”.
turning heads…. ya but i know a heck of a lot of programmers who dont have a grain of since when it comes to screen design…. and ugly will turn away 8(.
[...] Acompanhem o artigo http://ajaxian.com/archives/the-4-states-of-ajax-adoption [...]
Mario: I’m with you. It feels like a full time job to keep up with stuff while at the same time working at my fulltime job and trying to find additional time to put up my own personal site, etc..
Mario, you’ve uncovered the dreaded State #5, into which I also fit quite squarely. Day-job pays the bills, home-based freelancing pays some more of the bills (and the occasional night out), and my open-source contributions consist of developing the Fusebox framework for PHP.
When a site I work on does allow for some javascript enhancement I typically use #4 as my basis. Luckily I’m in charge of the coding practices as well, so accessible javascript and Hijax are easy to implement.
There is another state – OH-Look-AJAX! state. They use ajax indiscriminately for the Wow factor – without any consideration about accessibility.
Somebody, please think of the children.
[...] According to Ajaxian and the four stages of Ajax adoption I’m mainly focused on progressive enhancement. In other words, read my books if want to learn how to ’speak’ Ajax, and use Ajax effects in your web sites, but still have your pages be valid and accessible, without having to create second sites. If you want to create Office in Firefox or IE, there are other books on the market because I won’t go there. Do we really need another Gmail? Another Writely? Office on the web? [...]
I’m more in favor of the Progressive Enhancement. The concept of Ajax didn’t come in until recently and it was all about making show cases when Ajax first gained its tention. Now Ajax finally become more and more pratical, it is time to use it, but the problem is many sites are done and working in the old fashion way already. It is true that with little Ajax enhancements will not help to turn heads, but it will help greatly on the existing customers. Plus, not everyone has the privilige to do a second site.
The other thing I want to share is that if your existing old fashing site has a good MVC structure, then moving to Ajax step by step is not hard. Maybe achieving one page interface is a little extreme, but turning existing functions into Ajaxed interface should be fairly easy. After all, the controller is meant to take requests, as long as you are passing the right request and flag it so that the controller knows its an Ajax call, you can easily grab the proper view (AHAH, XML, or whatever) and return back.