Jon Udell’s recent postings on AJAX and “Web friendly” Flash got me to thinking (as most of his posts do – I miss working at the same place as him, if for no other reason than he was constantly finding new technologies to be excited about).

Mostly, Jon’s posts got me to thinking about why we (that’s you and me – Web users) are OK with degraded user experiences. I mean, for years we had great desktop applications to do things like calendaring and email and even mapping software. Then came the initial Web, where HTML 3.2 and some JavaScript meant that Web apps just couldn’t be as nice as local apps. And now we’re all very excited about things like Evite, Gmail, and Google maps. But compare Google Maps to Streets and Trips, which I did recently, and the experience with S&T is much better. Same with Outlook vs. Gmail (usually, anyway). Heck, most people read blogs through a Web browser, not an aggregator, even though aggregators are much more efficient.

So why do we let ourselves settle?

I think there are a couple of answers: 

  • It’s easy. Click, click, and you have a map. Click again and you have email. Click again and you have today’s news. The Web-style linked UI is easy to learn, in part because it flattens user experience – there are fewer options for what you can do, and the options are generally very discoverable (buttons and links). A new “application” is simply a click away, with no app to install locally.
  • There’s content. Everything is online these days: yellow pages, white pages, maps, shopping, news, friends. We’ll give up a lot in terms of great UI if we can have the content we want. 
  • We know it’ll get better. We have faith in technology – we know that, even if something stinks today, it’ll get better tomorrow.

Of course, the final point is that Web experiences are thought of as “easy to build.” I’m not quite so sure about that, but…

On that third point, a lot of folks these days are investing in pushing the browser to (and past) its limits. XmlHttpRequest was a very powerful technology Microsoft built into IE a long time ago that developers have finally started to really exploit. And they’re running into a bunch of interesting issues, not the least of which is that programming this type of app is hard. Another thing is that sometimes using XmlHttpRequest isn’t the right solution – technologies such as WebDAV, RSs, or SOAP can actually be far better. The third thing is that, for everything you can do with AJAX, it’s still not a local application – developers still need to stuff data into the local browser cache in order to get the kind of responsiveness we expect from a local application.

All of this comes up because I’ve been playing with a bunch of AJAX programming frameworks for the last two weeks – AJAX.NET, Ruby On Rails, Sajax, and DWR. I wanted to see if a patzer like me could use them to build Web applications. My verdict: not quite yet. Yes, I could build things. I couldn’t build anything as sophisticated as Google Maps. I could build applications that worked better. I also found a host of irregularities in how different browsers render things. And I really wished I had a good set of tools to build the applications with.

I’m not sure if AJAX is an amazing transformational technology, or simply the pinnacle of what you can do with Javascript. Nor am I sure that I wouldn’t have been better off writing a ClickOnce Windows Forms app for most of what I was doing.