The size of the fervent rush towards the Ajax reminds me that folks are dying to discover the Next Big Thing. It’s been awhile since we’ve had a Netscape-magnitude holy shit and while there are have been many false positives… has any Internet technology in the past two years seriously knocked your socks off? Well, Ajax has not knocked my socks off, but I believe it’s a indication of a revolution that will involve all of us… but understanding that revolution will take one leap of faith on your part.
First, what is Ajax? You can skip the next two paragraphs if you’re Ajax_Aware. There’s scads of content regarding Ajax everywhere, but if you want the simple explanation, go fire up Google Maps, enter the address of your best friend, and hit enter. Great. Another web-based map solution. I’m shaking in my boot, Rands. Where’s the holy shit? Of course, the holy shit is when you draaaaaaaaag the map and see the real time redraw of the map. You think? Flash? Java? You glimpse at the source and see no such thing. It’s HTML people and, guess what, that’s not Ajax.
Ajax is a web development technique which shares a common technology with Google Map’s non-obvious coolness that is XMLHTTPRequest. Believe it or not, you have Microsoft and ActiveX to thank for XMLHTTPRequest. Gasp. Wheeze. The idea behind this technology is simple enough. It allows a browser to do a round trip request for information without reloading the page. If I told you this before I showed you Google Maps, you’d say, “So what?” Now, I can tell that when you’re dragging that map, Google is doing an XMLHTTPRequest for the new maps grids it needs and now you think, “Coolness”.
What is innovative about Ajax is, first, it provides a simplified development model for using XMLHTTPRequest, but, more importantly it gives a pronounceable name to a horribly named technology. It’s a little thing… picking a good name… but when you do it well, you get a lot more credit than you deserve.
So, when I’m saying Ajax, I’m actually saying “improved interactivity within web pages” and that’s where part of the revolution lies, but I need to give you some more background before we make our leap.
Another hot topic. Web Applications. Stale idea, but in need of a definition. Off the top of my head, one definition is “an application served via a web browser which attempts to borrow native application interface concepts.” Using this idea, the perfect web application would one where the end user would have no clue that they were in a web browser versus any other type of application on their desktop. The most obvious advantage of this perfect application is usability — the user has the same set of familiar widgets on their desktop as they have in their browser. This minimizes the knowledge tax from moving from one application to the next.
You can argue that your average user has no concrete idea about the technical difference between their my.yahoo.com page and Word. Still, they do know when they’re in a browser… they know they can hit the back button to, well, go back. It’s not surprising that we’re seeing versions of the back button show up in native applications because folks are so used to the concept. Go. Back. I digress.
The perfect web application does not exist. We’re not even close. In fact, the concept of web applications is no longer en vogue. You can go search HotJobs and find all sorts of web application jobs, but the buzz surrounding the concept has faded. Who cares, right? The Internet is merrily evolving while the idea of web applications gathers dust. Here’s the deal. We really really want web applications everywhere.
There are two phenomenal advantages of web applications. First, they require zero installation. They may require some configuration, but, as soon as you click on the link, you’ve “installed” the application. This is a big deal, but not as big of a deal as the second part, no upgrades. The maintenance of a web application to the end user is zero and end users will really like that. End users may not notice the absence of install/upgrades because they just vanish, but your IT guy/gal, the person responsible for installing every damn bit on your desktop, they drool over the idea of web applications. All they have to do is upgrade the server and then everyone gets the new version. Web applications can save IT departments a stunning amount of money.
The second advantage of the web application is that it has no baggage. The only thing you really need to gain access to your web application is a name, a password, and a connection to the Internet. This means you have access to whatever information your web application manages from any Internet computer on the Planet Earth as long as you can remember your name and password.
Case study. I’ve been using RSS readers for a really long time. Started with NetNewsWire and eventually moved to the NewsFire. Problem with both solutions was that my subscriptions were hiding on my machine at home which meant I didn’t really read my news until the end of the day… and I’ve got NADD… the end of the day is forever from now. So, I move to Bloglines… decent interface, but more importantly, it makes my RSS subscriptions omnipresent. I need nothing but what’s in my brain to get everything I need. What happened? My list of subscriptions has doubled in a week because I’m paying more attention to what I read AND I’m reading more. That’s called empowerment and I like to be empowered.
Web applications are cheaper to maintain, they empower their users, so why the hell aren’t they everywhere? Well, there are lots of web applications out there. Gmail, My.Yahoo, Wells Fargo… long list… very long list, but they aren’t the perfect web application because, well, they still feel like a web page. This leads me to the first part of the leap:
Because of Ajax-like advances, the interface of web applications can vastly exceed your expectations.
Google Maps is the popular example of this, but there is more coming. I predict you will not see much of this innovation precisely because these new applications will meet expectations you already have of native applications. Think of demo of Google Maps to the person who says, “Yeah, so? That’s how it should work.” They’re right.
It’s illuminating that the first stumbling block folks who are playing with Ajax are finding is that damned back button. At my prior gig, we had the same problem. We gave our users a complex web application that provided all sorts of cool filtering and sorting controls… that could be instantly totally nuked by the back button… a shift reload… you name it… ka-blooey, your state is gone. Ajax’s doesn’t care about the stateless nature of a web browser. Ajax just wants to quietly update your current page… and that’s the second part of the first leap:
Stop thinking of a web application as a collection of pages.
The back button is not a bug in Ajax, it’s a flaw in the browser metaphor.
I hearby serve notice to the following browser controls: forward, back, home, reload, and that URL field. You need to die… unless I need you. These controls are (rightfully) designed around the idea of the web as a collection of pages, but an application is collection of objects where you, the user, are guided by a well designed interface to get your job done. We don’t actually need to kill these controls because they do serve a purpose, but the web application developer should be able to choose when they’re available because the developer is designing the application and they are incented to do what’s right for their users.
No. The perfect web application will never be a direct replacement for your favorite native application. The medium, the technology that is the Internet, will always change the content that it delivers, but web applications are still in the dark ages. Take a leap with me and think about web applications that do not compromise in user interface, that do not settle for interaction models designed around a clumsy metaphor. All the richness of the best desktop application belongs in web applications… all you gotta do is want it.