Tech Life We really really want web applications everywhere

The Web Application Leap

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.

17 Responses

  1. JohnO 12 years ago

    Rands, I think you nailed it when you said a web application (with “enhanced usability”=AJAX) breaks the metaphor that the browser assumes. And this is the problem us developers (your a manager, you say “Do it”, and it is our headache to get the back button working 🙂 lucky dog) have. We are smushing an association of relationships into a metaphor they don’t belong (web pages/browser).

    It reminds me of “Joel’s Law of Leaky Abstractions” (http://joelonsoftware.com/articles/LeakyAbstractions.html)

    Although as developers, we can’t take remove the metaphor of the browser (although, if we were so inclined, opening the application in a window w/o address bar/back buttons is possible). This is essentially creating our own metaphor. But then the problem gets shifted; our users are very familiar with the browser metaphor.. and we would be disassociating themselves with the familiar aspects = bad usability. At least, that is my first impression…

  2. Aaron Davies 12 years ago

    Google has been able to integrate the back button into both GMail and Maps with exactly the expected functionality, and I expect no less of other web app providers. Allowing developers to take away the toolbar buttons reminds me of those horrible pop-up windows with no decorations (scroll, resize, address, etc.) that so many sites use.

  3. Zombywuf 12 years ago

    Looks like I’m going to have to add Ajax to my CV now, along with SOAP, WSDL, UDDI, Javascript, HTML, XML, DOM, CGI, etc…..

    If you want to destroy any holy shit like quality surrounding Ajax, take a look at the SOAP and WSDL (the server side *cough* protocols behind it). First time I saw it I nearly quit my job and moved to the top of the nearest mountain.

    We could have got over this whole browser metaphor gig if we had just implemented gui tookits over CORBA years ago. Oh well, too late now.

  4. So do all these “AJAX” developers just assume we’re living in a one-browser world now, or has Javascript incompatibility gone away? Even Google with their hordes of developers can only safely support a handful of common browsers.

  5. Jeremy Dunck 12 years ago

    I’m a fan of Ajax, I really am.

    But there’s a reason Java applets, as just one example, have not replaced native apps.

    I generally agree that many native apps could be made network-distributed with little loss of functionality, but it’ll never supplant native apps, and I imagine web apps will never supplant middle of the road offerings like Java, either.

    “Write once, debug everywhere” is a wise reminder of the headache you face when you try to write for every platform.

  6. Request for clarification:

    > The back button is not a bug in Ajax, it’s a flaw

    > in the browser metaphor.

    Am I interpreting you right, that you think there should be no back-button when using web-applications? If so, I would go on a rant, but I want to make sure that’s what you’re saying before wasting your and my time… 😉

  7. My suggestion is that a back button is strictly optional. As it stands now, back means “go back to the prior page”, but what your average user is thinking when they hit that button “go back to my last action”. When they hit that sucker, they get a page load when what they really want is just uncollapse that list they just expanded. The back button is often destructive in many current web applications.

    I realize the back button is not going anywhere, but it needs to be reconciled with the needs of developing serious web applications.

  8. I look at the back button as being synonomous with undo as well. So I can understand it being problematic to trash a web app when you hit it.

    At the same time, there are some pretty clear ramifications of allowing page control over more portions of your browser. Anyone remember the right click protect code? You right click a page and get a dialog box that says “LOL DON’T STEAL MY IMAGES” or whatever. The next thing you’re looking at is someone injecting ad pages into your history, or not allowing you to go back at all.

  9. Rand Wacker wrote

    “So do all these “AJAX” developers just assume we’re living in a one-browser world now…Even Google with their hordes of developers can only safely support a handful of common browsers.”

    We’re definitely not living in a one-browser world. I wish incompatibilities would have gone away. But with careful design approaches support for IE 5.5+, Firefox, and Safari can serve millions of people (currently the vast majority) very well. It isn’t easy, though. The bigger question is how to craft javascript-heavy applications and make them accessible and degrade nicely (say, via unobstrusive DHTML practices).

    More on-topic: The dissonance between the browser usage metaphors and those interface metaphors commonly used in native apps needs more careful study. I’m discovering that adoption of Gmail and like-designed apps seems to be playing a part in altering expectations for the usage of Back, Forward, and Refresh and this may only be making the expectation waters brackish rather than clearer. (I’m fascinated by this – I would love to know the expectation model users have of My Yahoo!’s richer elements!)

    Despite the burdens and risks, this kind of development can result in much better experiences for people – say, in the case of dragging out-of-visual-bounds contextual information without losing application context.

    I would add, though, that I think use of non-URI-request-based interactions (or inline-POST interactions) should be carefully considered case-by-case. An Ajax approach wouldn’t be useful or beneficial in every web application.

    Also…I *wish* we had hordes of developers! (I’m an “AJAX” developer for Google.)

  10. JohnO 12 years ago

    I have to agree with Chris. The API for working with Javascript (DOM2) across different browsers isn’t all that horrible. Although it will be interesting to see what IE7 brings to the mix. There are many many sites (quirksmode.org one of the best) of people who have run into problems, and solved them. Nearly all of the browser-specific functions have their equal in another browser, and can easily be managed (for the time being).

    I also agree that native apps aren’t going anywhere. I can forsee a larger discord (think a different digital divide) between how far web-apps will go, and how much further native-apps can go. The maxim “worse is better” still holds true. However, I would also ask those who develop native apps, where is your UI experience going in the future? It’s been my observation that the browser UI experience is catching up on the native experience; the native experience hasn’t done much to distance itself.

  11. If I recall correctly, the intent of the Web was to allow people to view representations of resources, NOT have direct interactivity with the resource. Ajax is breaking this intent and thus should be considered unsafe.

    If you want more out of your web application, then change the intent of the Web, write new rules and RFCs to better align with your ideals.

  12. I was reminded of westerns, of the spaghetti variety, when I came across the following insightful tidbit from Rands in Repose who you can imagine as Sergio Leone surveying the state of the current technology world and deciding to go local. It’s not quite the masterpiece that was The Good The Bad & The Ugly which saw a great print released last year or the earlier, crueler For A Few Dollars More, it’s rather that first shot across the bow of B-movie legend, A Fistful of Dollars. So without further ado as your novice director, let me sit back in my chair.

    Lights. Camera. Action.

    Deadwood and the Web Application Leap

    A spaghetti western in the technology world of the town of Deadwood, Wild West, USA.

  13. Wish granted.

    Take a look at http://www.bloxor.com

    The best web aggregator ever.

    Rich web application at its full potential.

  14. Patrick Whittingham 12 years ago

    One should remember that an web application and a bunch of web-pages serve 2 difference situation. One wouldn’t use Ajax for the entire CNN/MSNBC web site. But certain pieces of the sites, could have applications for ‘specific’ abilities. To the person who said that only certain browsers use ‘ajax’. First, can you say 98% (IE 5+,FF,Netscape 7.x,Mozilla) to name a few. Also, when can use hidden-iframes for those version 4 browsers. This covers the majority of a potential user base. The purpose of the web is more than a bunch of pages/documents.

  15. Hey, i dont know if you know yet, but NNW 2.0 will suck in your bloglines subscriptions and mark them read for you. its REALLy convenient. I use it on my desktop, work, and laptop computers. And then just hit the mobile bloglines site with my blackberry. Its great.

  16. I just think of the fun spyware and rougue advertisers would have with the ability to do anything to the back button. I love the concept of AJAX, but the back button thing is a big problem. I’m not sure if giving developers the option to disable it is the correct way of overcoming the problem because of potential security issues. This one needs some thought, but my suggestion would be a seperate style window, opened by a ‘A href=”” target=”AJAXWINDOW”‘ type link that browsers such as Firefox 2.0 and IE7 would know how to open. This special AJAX window would have security features built in, but enable closing the application but nothing else.

    Good article nonetheless.