Thursday, February 1st, 2007

Adam Bosworth: Why Ajax Failed (Then Succeeded)

Category: Editorial

Darryl Taft has written up a talk that Adam Bosworth (now at Google, created Ajax at Microsoft) gave in New York entitled Physics, Speed and Psychology: What Works and What Doesn’t in Software, and Why.

Bosworth said he has been building software for about 30 years and “not all of it works” all the time. “The reason, on reflection, turned out to largely depend on physics and human psychology,” he said. And “a lot of it had to do with Tom Cruise,” Bosworth said, citing the actor’s line in the movie “Top Gun” where Cruise says, “I feel the need, the need for speed.”

Indeed, speed or lack thereof has played a role in hampering the success of various software innovations, including AJAX, Bosworth said. Had chips been a little faster and broadband been more ubiquitous, AJAX might have caught on a lot faster. However, the physics of the technology was only one of the factors holding AJAX back.

He goes on to explain why Ajax failed (misperceptions of the realities of the way people would use the technology: “Gestures like tooling, icons, right-click and drag-drop are too obscure”), and how it got a second life:

However, in the end, AJAX got a second life, primarily because the physics changed, Bosworth said

For one thing, the use of broadband soared suddenly, and then chips became “massively faster” than they had been in 1997. This helped make carefully crafted applications “quick enough,” though it’s still hard to write these applications, Bosworth said.

Meanwhile, usage also changed. “A large number of people started using Web applications more than once a day,” particularly for functions like e-mail, calendars, social networking and trading.

Posted by Dion Almaer at 10:59 am

3.6 rating from 25 votes


Comments feed TrackBack URI

Ajax only took off recently because until a couple of years ago the XMLHttpRequest was not implemented across all the major browsers. It’s as simple as that really. A nice essay nonetheless.

Comment by Dean Edwards — February 1, 2007

I think Dean has a good point. I recently did backwards compatibility tests for XMLHttpRequest objects in old browsers. XHR had a rough birth. Earlity implementations couldn’t POST and even some browsers in use today still are buggy in fundamental ways.

Comment by Peter Michaux — February 1, 2007

I’m not sure that compatibility in older browsers really had much to do with it…Internet Explorer was the pretty much the only major browser back then. Netscape was around (I used it), but it had a pretty small market share.

Comment by Andy Kant — February 1, 2007

I don’t agree with the broadband-point..

Posting data to the server using XHR/post isn’t more demanding on bandwidth than posting through, let’s say an iframe.

The regular way of posting a form should require -more- bandwidth, as an entire page has to be downloaded.

Comment by Tommy Valand — February 1, 2007

I’d say that it’d mainly because it has been implemented by traffic driven site such as Google and Yahoo.

Comment by TreeLife — February 1, 2007

Scarce bandwidth and processing power don’t limit Ajax usage per se. On the contrary, in many circumstances, Ajax makes apps MORE efficient — selective content loading and all that. I think Dean is right.

On the other hand, the aforementioned scarcity does limit rich, widget-heavy web apps. That’s what Bosworth seems to be talking about. Things like the new Yahoo Mail or Yahoo Photos probably wouldn’t have been feasible a few years ago. But that’s different from Ajax.

I use Ajax all the time to speed up web experiences; I use rich widgets and such much more rarely, only when the richness really contributes something worthwhile.

Comment by Justin Kramer — February 1, 2007

I think that Adam is dead on. If you look at most
successful applications, they give users results in
seconds, not minutes or longer. This may be
overlooked by some developers because we live
in a complex world of incredibly delayed gratification
when we work with computers. Google…a few seconds
to search the internet, YouTube….push a button and
instant mini TV….etc…

Of course such “simple” design is usually very complex
to accomplish.

Comment by Steve Kohler — February 1, 2007

“I’m not sure that compatibility in older browsers really had much to do with it…”

Maybe not a lot, but it didn’t help. Back in 2000-01, I was the web developer for an ill-fated, episodic, web-based videogame by Electronic Arts (Majestic). We had played around with XMLHttpRequest and were excited about trying it in the game. But EA–or, more accurately, AOL, with whom EA had some business agreement at the time–forbade us from having any pages containing technology (e.g., XHR, IFrames, and certain CSS and Javascript) that didn’t work pretty consistently in all of IE 5, Netscape 4, and the last few versions of AOL’s browser.

Ultimately, to make the game work, we had to use ugly tricks like hidden frames, quickie http redirects, and even a plug-in/ActiveX control we required users to install before playing. Bad times.

(We did use Flash some, but, but prior to the game’s release, it had to be v4; XML capabilities came in v5. By the time we were allowed to use v5, we were well on our way to cancellation, anyway.)

I don’t know if other companies had strict restrictions like that. But that could’ve slowed things down.

Comment by Greg Gibson — February 1, 2007

Now the XAML/Aero needs even more power to build 3D/2D applications, such as, online multi-player-games or near real-time simulation of real events, such as, Air-traffic or weather. NVIDIA are working on the graphics Speed, we need to see how long it would take that to happen.

Comment by Venkat — February 5, 2007

Leave a comment

You must be logged in to post a comment.