Photograph

« 9rules Network | Back to Home | Subscriptions: The Third Wave »

May 11, 2005  Ajax: 99% Bad

What is Ajax?

Ajax was coined by Mr Garrett of Adaptive Path in his essay Ajax: A New Approach to Web Applications. This was on February 18, 2005, and even though it's only been under three months, the term has spread quickly.

Before defining Ajax in detail, Mr Garret described two examples: "Google Suggest and Google Maps are two examples of a new approach to web applications that we at Adaptive Path have been calling Ajax. The name is shorthand for Asynchronous JavaScript + XML, and it represents a fundamental shift in what’s possible on the Web."

So as not to be left without specifics, Mr Garrett goes on to describe the components of Ajax in detail: "standards-based presentation using XHTML and CSS; dynamic display and interaction using the Document Object Model; data interchange and manipulation using XML and XSLT; asynchronous data retrieval using XMLHttpRequest; and JavaScript binding everything together." It's certainly a mouthful, which is why having a nice, friendly name like Ajax is so helpful. So what's the problem?

99% Bad?

In part, I'm being facetious. The title of this post is an allusion to Jakob Nielsen's famous post from October 29, 2000 called Flash: 99% Bad. In the article, Mr Nielsen says: "Although multimedia has its role on the Web, current Flash technology tends to discourage usability for three reasons: it makes bad design more likely, it breaks with the Web's fundamental interaction style, and it consumes resources that would be better spent enhancing a site's core value."

I love Flash, so when I originally read his article, I thought he was off-base. That said, I did see where his resentment came from. Flash was a great tool, but in the wrong hands it was making a mess of otherwise reasonable websites. Interestingly, the three complaints Mr Nielsen had about Flash are directly applicable to Ajax. Because the data is delivered without a reloading of the page, the URL is not descriptive of the contents on the page. This was one of the biggest complaints about all-Flash websites.

Popularizing the use of Ajax also has the problems of popularizing Flash. Although Flash is well-suited for behavioral and programmatic animations, many unscrupulous designers would simply use it to present a canned introduction to the site, along with the perennially despised "Skip Intro" link. Likewise, JavaScript presents the unscrupulous designer with a similar metaphorical rope with which to hang himself.

Take, for example, the design of the Designing User Experience (DUX) 2005 website. It's a nice looking site, as one would expect from a conference of user experience design, yet clicking on the links reveals a deeper problem. The content is replaced using JavaScript, and thus the URL of the page remains fixed even as the content changes. This prevents someone from bookmarking or sending a link to a certain piece of content to someone else. The people of Zago Design have ingeniously replicated the same poor design from their own website here for the DUX conference.

All these issues are not inherent to using JavaScript, nor are they inherent to using a full Ajax approach. Indeed, the DUX 2005 website is not written using XMLHttpRequest at all, even though it does rely on XHTML+CSS, DOM, and JavaScript. Why then do I claim the Ajax is 99% bad?

The Rabbit Hole

In addition to the reason that popularizing Ajax is giving unscrupulous designers rope to hang themselves, there is one other fundamental point that erks me.

First, the two examples that Mr Garrett points to do not qualify as Ajax. Google Suggest doesn't use XML/XSLT for data interchange and manipulation. It uses JavaScript arrays. Why did Mr Gibbs choose JavaScript arrays over XML/XSLT? Because it's a better approach. Does Google Suggest use XHTML? No. Why not? None of the Google sites save Blogger rely on XHTML code. So for someone to point to Google Suggest as the canonical example of their newly coined term, when in fact it doesn't match two of the five criteria is not only incorrect, it's a misrepresentation.

Adaptive Path is looking to sell a service. Telling people "this is how we build things, which is almost like how Google does it, but they use a slightly different approach 20% of the time" is much more complex than saying "Google does Ajax, and so do we." Unfortunately, this is, at worst, a lie and, at best a stretch.

1% Good

What's really going on here? Well, despite my complaints, I do want to give Adaptive Path credit. They have started a dialog around these architectural issues, and that is a great thing. It's gotten a lot of people eager to try some of these techniques out.

37 Signals put it best when they said: "As with anything, it’s not the technology that matters, it’s the proper application and the execution of that technology that counts. And most of all it’s how well we hide the technology."

I believe this is part of the reason for Google's success. Instead of writing a paper on the five technologies you need to make a cool website, they hired Chris Wetherell and Aaron Boodman and got to work.

Part of me wishes the Adaptive Path article had simply stated: Google has been writing madd JavaScript, and we think that's cool.

Posted by johnnie at May 11, 2005 12:04 AM

Trackback Pings

Want to TrackBack?

Listed below are links to weblogs that reference Ajax: 99% Bad:

» Ajax: 99% Bad from Oloop.org
Ajax was coined by Mr Garrett of Adaptive Path in his essay Ajax: A New Approach to Web Applications. This was on February 18, 2005, and even though it’s only been under three months, the term has spread quickly. Johnnie Manzari: Ajax: 99% Bad... [Read More]

Tracked on May 11, 2005 10:48 AM

» Ajax Is The New Flash from Whitespace
Ajax (let's not argue about naming) represents the next cool technology for web designers. Yes it has been available for years, but not until Google started using it has it gotten this much attention and been spread so rapidly amongst... [Read More]

Tracked on May 16, 2005 06:05 AM

» Ajax Is The New Flash from Whitespace
Ajax (let's not argue about naming) represents the next cool technology for web designers. Yes it has been available for years, but not until Google started using it has it gotten this much attention and been spread so rapidly amongst... [Read More]

Tracked on May 16, 2005 06:06 AM

» Ajax: 99% Bad from davidbisset.com
Watching that it doesn't follow in the path of the "skip intro" Flash problem. ... [Read More]

Tracked on May 16, 2005 08:47 AM

» Ajax 99% bad from JD on MX
Ajax 99% bad: This article hits the same points that Thomas Vander Wal and Manish Jethani discussed this weekend, about how the criticisms which were solely levelled against the Macromedia Flash Player over the last five years can now be applied to Jav... [Read More]

Tracked on May 16, 2005 04:53 PM

» Ajax Is The New Flash from Whitespace
Ajax (let's not argue about naming) represents the next cool technology for web designers. Yes it has been available for years, but not until Google started using it has it gotten this much attention and been spread so rapidly amongst... [Read More]

Tracked on May 18, 2005 12:44 PM

» AJAX: Your Take from Asterisk2
AJAX or, Asynchronous JavaScript and XML, is probably one of the most talked about (hyped) developments in Web development this year. In essence, AJAX is a group of somewhat related technologies that allow for new (and arguably exciting) ways to... [Read More]

Tracked on July 6, 2005 08:36 AM

» AJAX: Your Take from Asterisk2
AJAX or, Asynchronous JavaScript and XML, is probably one of the most talked about (hyped) developments in Web development this year. In essence, AJAX is a group of somewhat related technologies that allow for new (and arguably exciting) ways to... [Read More]

Tracked on July 6, 2005 08:38 AM

» AJAX: Your Take from Asterisk2
AJAX or, Asynchronous JavaScript and XML, is probably one of the most talked about (hyped) developments in Web development this year. In essence, AJAX is a group of somewhat related technologies that allow for new (and arguably exciting) ways to... [Read More]

Tracked on July 6, 2005 01:02 PM

» Johnnie Manzari: Ajax: 99% Bad from Keebler/Blog
Interesting look at how, “popularizing the use of Ajax also has the problems of popularizing Flash”. There’s a great quote from 37 Signals: Johnnie Manzari: Ajax: 99% Bad “As with anything, it’s not the technology that ... [Read More]

Tracked on July 12, 2005 04:53 PM

» 认识 Ajax 从Google开始 from Shake Wang's chief blog
记得去年 Gmail 刚火的时候,我也从别人哪里得到一个邀请,就匆忙尝鲜. 开始的界面太朴素了,可以说有点土. 但出于对google搜索的信任,还是继续尝试着去用它的相关产品. 随后而来的一系列的事... [Read More]

Tracked on August 4, 2005 09:43 AM

» [转载]AJAX的七宗罪 from kenera
AJAX对搜索引擎的支持不好;编写复杂、容易出错;冗余代码更多;破坏了Web的原有标准;缺少一个没有标准之争、没有back和history的浏览器;XML只是用来打幌子;世界这么大却找不到自己的家... [Read More]

Tracked on December 10, 2005 07:16 AM

» multiplayer video poker from multiplayer video poker
Based on multiplayer video poker [Read More]

Tracked on February 27, 2007 02:34 PM

» how to win at poker from how to win at poker
Nowadays how to win at poker [Read More]

Tracked on February 27, 2007 05:16 PM

» 829d21460d5934e1ba59 from 829d21460d5934e1ba59
829d21460d59 [Read More]

Tracked on March 20, 2007 01:11 PM

» wqiedou fduacu from oc aot
oy oj [Read More]

Tracked on March 21, 2007 09:10 AM

Comments

Fortunately, the popularization of Ajax techniques probably won't bring with it nearly as many negative side effects as that of Flash. It's not proprietary, it's not self-contained, and it's in many ways a lot harder to implement for most people.

Posted by: Taylor Hughes at May 11, 2005 04:38 PM


I hope so. The DUX site scared me. I felt like some people were so excited to write a bunch of JavaScript that all the lessons we learned from 1995 to 2005 were thrown out the window. That said, I've already run in to a number of sites that are setting good examples, and (unlike Google) are posting code samples and explanations.

Posted by: Johnnie Manzari at May 11, 2005 05:54 PM


To me, Ajax will only be "99% bad" if it is used to break the web, like Flash has been. That is, if it prevents bookmarking of pages or states (much less of an issue in web apps), causes major accessibility concerns, or harms usability in some serious way.

The DUX site is pretty scary, yeah. But that's not even Ajax. If you look at the markup, all the content *for all the sections* is there -- the navigation is just showing and hiding DIVs with Javascript. (I am under the impression that Ajax is all about interacting with a database behind the scenes.)

Posted by: John Zeratsky at May 11, 2005 10:44 PM


The difference between Mr. Nelson and your article is that your comments are actually off-base and factually incorrect.

Google Maps uses XHTML, XmlHttpRequest and JavaScript. They also do not "prevent someone from bookmarking or sending a link to a certain piece of content to someone else."

I have yet to see a Flash application that provides any additional benefit to the user that can't be accomplished using a well-architected and constructed xhtml-based application.

Feel free to provide examples that may pursuade me to change my stance that Flash cannot provide anything other than amusing animations.

Posted by: Nick Danger at May 13, 2005 08:34 AM


Flash works well on a website when it's used as you would use Quicktime, PDF, or other multimedia format. Hillman Curtis at hillmancurtis.com does a good job of this. I see it as primarily a multimedia format, so you're right about the "amusing animations".

Flickr just announced today that they are pulling (all? some?) Flash out of their site and going with more DHTML.

Posted by: Johnnie Manzari at May 13, 2005 10:37 AM


You beat me to it Johnnie. It's fun to watch all the flash-haters pull back on many of the tried-and-true arguments against flash, because they also apply to Ajax. Now they're left a few worn out ones like "Flash is only good for animations blah blah", "anything you can do in Flash I can do in DHTML and seven different versions of Javascript to cover the different browsers blah blah."

Posted by: Jed Wood at May 16, 2005 05:42 PM


What are we talking abou there? a Web-Page or a Web-Application, each are accessed by one client-side technology and so they both should share the exact same criteria in useability?

The browser was made for the Web-Page world, it was not made for the "Web-Application" world. We forced that onto the software and by doing that we pay the ultimate price in terms of sacraficing certain useability constraints such as "bookmarking'.

We also inherit other concepts like "Font-size" increase/decrease capabilities.

Yet, how many thick-ware clients toe that line? not many i'll grant you. In fact most application rely soley on how the Operating System sets font-settings.

I think AJAX/FLEX/FLASH are being beaten up way too much for not-doing/doing something that is a result of the actual Browser.

All we are doing is shifting the goal posts.

Posted by: Scott Barnes at May 16, 2005 08:43 PM


Nick,

When was the last time you sent someone a URL to an email you found amusing, or the particular page in a word/pdf document that was somehow enlightening or useful?

The point that many people have been trying to get across about Flash apps is that they are just that ,applications! Not websites.

The problem is that very often some people don't realize that what they are doing with Flash could be done much better with plain old vanilla HTML and very often other people are so blinkered by their 'safe' HTML approach that they don't even think to approach design problems with an event based programming model such as is available in Flash.

Ultimately it is a matter of picking horses for courses. Sometimes Flash will be a better fit and sometimes HTML/DHTML will be a better one. There is no "one size fits all" solution.

Oh, and you asked for an example where Flash is better than DHTML. Go have a chat with the folks at TJ Maxx. Over christmas their Flash based shopping cart had a 50% better conversion rate of shoppers to buyers than the DHTML one. Not bad considering the only part of their cart that is done in Flash is the checkout process.

Posted by: Spike at May 16, 2005 10:29 PM


I've got one for you. Visit maps.google.com with JS disabled.

Here's what I got:
JavaScript must be enabled in order for you to use Google Maps. However, it seems JavaScript is either disabled or not supported by your browser. To view Google Maps, enable JavaScript by changing your browser options, and then try again.

Does this prove anything? No. But the point is something that depends on JavaScript should never be considered reliable. JS may be turned off by choice, by a system admin, etc. Not your typical scenario but it is possible.

On the flip side something that would otherwise accomplish the same thing in Flash of course requires the user has the flash player installed (go visit Macrodobe for the liklihood of this occuring). If the flash player is enabled it is not quite that easy to hinder the users experience.

I do accept some points about setting bookmarks etc. as short comings of current flash implementations but I think some are being to critical of what flash is capable of doing in modern times. And yes flash can create kick ass animations, but is that a bad thing?

Posted by: Steve at May 17, 2005 06:31 AM


AJAX is a good thing offer to the web but it is too soon to use it. Don't foget that the XMLHTTPREQUEST is not provide by the W3C. It is not a web standard ! We have to wait for the DOM Load and Save spécification provided by the W3C.
Second thing : Google use AJAX, but their websites are not Valid ones ! I can't understand that they use web standards and they are not valid !
Is anybody knows an ajax website valid ?

Posted by: Cedric Eyraud (french) at May 17, 2005 08:14 AM


One thing I didn't mention that Cedic brought up is that, I believe, XMLHTTPRequest was developed by Microsoft. It didn't really fit in with the rest of my post, so I left it out, but I find it funny.

Posted by: Johnnie Manzari at May 17, 2005 08:24 AM


URL can describe the contents of the page even though using ajax.

You can use location.hash() or location.search() to change the URL fitting the contents of the page dynamically with javascript.

Posted by: mizzy [TypeKey Profile Page] at May 18, 2005 11:11 PM


URL can describe the contents of the page even though using ajax.

You can change the URL into the descriptive URL with location.hash() or location.search() dynamically.

Posted by: mizzy [TypeKey Profile Page] at May 18, 2005 11:15 PM


The URL problem was already settled.

http://nazo.yi.org/suggest/


http://nazo.yi.org/suggest/#ajax

Click "to English".

Posted by: sis at May 19, 2005 01:07 AM


RE: Taylor - Comment #1

Regarding flash, I've actually heard a lot of talk about integrating the flash and AJAX together to create some other type of platform for developers. Not sure if that will go anywhere, but it's something I've been hearing about.

Posted by: Jonathan at July 8, 2005 11:30 AM


I don't think DUX website's problem is AJAX,
it's just a simple XHTML site,and it's very popular now in lots of sites.Maybe we can check 1% good website,like "http://my.msn.com" is a very site to improving web UI and hope we can get more convenient in the future.
I agree the biggest problem in "AJAX" is that "link and back" become invalid.
But I think this problem can be easily solved by ECMA,they can make new objects to follow. For examples, we can use javascript to replace browser's url without refreshing and making some "hidden change page" to make back button valid.

Posted by: Sean Chen at August 22, 2005 01:23 AM


I too had the same thoughts you have raised here... I extended those thoughts and said... way do I have to brake my balls every time I want a treeview... lets say that you take a ready DHTML control... you still have to do all the plumbing of an xml rendering file that will produce this data... and here you get a security hole... you have to secure this page... to see that only the right people see the right data... is that the way to go... a couple of years ago I set down on a database oriented idea... interfaces represented by tables... started to write stored procedures... had a very nice system running in query analyzer... but now I had to spend twice the time writing the UI cause I wanted a web UI... that is what people want... cant argue with that... and that how I invented WebGui....

See my webcast
here

See my site
a href="http://www.webgui-platform.com">here

See the light... Guy Pelled

Posted by: Guy Pelled at March 10, 2006 06:19 AM


Nice article. I do not have a clue about ajax, but I think its time to change it...

Posted by: erde at September 4, 2006 05:33 PM


i do agree with you, ajax is not always so good.

Posted by: jabber at September 8, 2006 11:45 PM


Post a Comment




Remember Me?


Type the word 'Manzari' in to the box below:
(This is to limit spam)

the 9rules Network logo