Note to the CS snob: Web 2.0 is not just pretty, it’s real

Web 2.0 as a concept many flaws in it, but one of these is not the “the dictatorship of the presentation layer” as described by Bill Thompson in his post on Web 2.0 and Tim O’Reilly as Marshall Tito. A nice turn of phrase perhaps— but as we say in Spanish: “mas flojo que un mojon mojado” as far as the argument goes.

The whole fallacy starts when Thompson characterizes AJAX (one of the cornerstones of Web 2.0) as the:

answer for developers who want to offer users a richer client experience without having to go the trouble of writing a real application.

Not true. Having just spent the last year and a half building a content creation tool that is 100% browser-based and “AJAX powered,” and having just this weekend* matched the level of functionality that I spent the 2.5 years before that building into “real applications,” I can attest to the fact that the AJAX version is easily an order of magnitude harder to write than a native Win32/Mac OS application. You’ve got to deal with runtimes that are all a little bit different, you’ve got to deal with server roundtrips, network latency, and a protocol that is (despite the best intent of XmlHttpRequest) straw-thin and dumb simple. You’ve got scalability, concurrency, memory footprint, and a badly baked-in set of user affordances (hello, Back button?). And when you’re done with all of that, you’ve got a ADD-inspired user that will spend about 5 seconds trying to figure out what you app is about before riding a hyperlink out never to return again. If mitigating risk in the face of complexity were the main goal, I would take scaling algorithms and Thompson’s “message passing between distributed objects” any day over the primordial soup that all of us working to build rich Internet applications in open and extensible ways swim in every day. Hands down.

Put simply, AJAX is not about easier GUIs and cool effects. What makes the suite of associated bits known as AJAX (and specifically DOM manipulation and asynchronous server calls) so important is that it is mashable, transparent, and most importantly, late-binding in the way that it can be recombined post-facto to build value the original application designer never intended. Witness the huge explosion in innovation that Google Maps brought to the world after it was launched.

If it was just about easier GUIs, we’d all be using Flash— much more controlled runtimes and much easier debugging. But Flash is terrible for what makes Web 2.0 special because it lacks the two great enabling attributes of AJAX: “View source” (and all of the associated shallow ramp that comes with it) and IPC (Inter Process Communication) facilitated via the webpage. I’m sure the Adobe guys are not stupid and are working hard to fix this— but with AJAX as it now stands, we’ve already got it, and it makes the absolute pain in the ass that it is to build rich interactive applications out of what was fundamentally conceived of as a display render worth it.

Thompson’s piece is fairly light-weight and so I found myself wondering why it irked me so. And then I realized why— because I’ve spent too much time in lecture halls and at conferences listening to the architecture astronauts talk about the “real computer science—” time I would gladly trade for more time with guys like the hackers at Tabblo who work very hard to make less than ideal technologies like AJAX sing.


releasing books

* And, while I am on that— if you don’t believe me, come back in six hours to see it for yourself.

[NOTE: This post is actually a cross-post from my regular blog but given what we're launching tomorrow, I thought it was worth using it as a preface for what is coming]

Comments are closed.