Rands in Repose has written the best post about web apps I've read this year. I'll pick out the highlights here and finish with some thoughts on re-inventing the page metaphor. Also you may want to check out the Web Apps Compendium v1.0, a great attempt at listing out all the main web apps on the Web today.
What is a web app? Simply defined, it's a software program that runs in a Web browser (proper definition here). What are they good for? Rands explains that there are two main advantages of web applications:
1) Zero installation and no upgrades for the user.
2) Access anywhere with an Internet connection (which Rands terms "no baggage")
The main benefits of web apps then are: they're cheap to maintain and they empower users. So why, Rands asks, "aren't they everywhere?"
Good question, but then I've met loads of developers who still think web apps are too limited in functionality, compared to desktop apps (applications you install on your PC). And that really is the main drawback of web apps - they're constrained by the limitations of the browser. But wait, Rands might say - this is where Ajax comes in.
I like Rands' concise definition of Ajax: "improved interactivity within web pages". He believes that due to Ajax, "the interface of web applications can vastly exceed your expectations." That's certainly true of Gmail and Google Maps, still the two quintessential Ajax apps.
One thing I'm wondering though: with all the current activities around synchronization for desktop apps, is that lessening the gap between desktop apps and web apps in terms of "no baggage"? When I say synchronization, I mean desktop apps that use Internet connectivity to allow users to synch their data over more than one PC or application - which solves the "access anywhere" issue for desktop apps. An example is Newsgator Online. I'd be interested in hearing some developers opinions on that...
We're Not in Pages Anymore, Toto!
The best part of Rands' essay, for me, was this statement:
"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."
This was one of the themes of the Web 2.0 for Designers article I co-wrote recently with Josh Porter. We wrote that the Web is no longer a collection of "pages", but a flow of “microcontent” units distributed over dozens of domains. Rands refers to "objects" instead of microcontent, because he's talking about web apps in a programmatic sense. I'm looking at it more from an information unit sense. But we're essentially on the same, er... page.
In summary - web apps today are aggregators, remixers, search interfaces, tagging and bookmarking apps, news services, and much more. It's all microcontent and so I have to agree with Rands and say that the back button is less relevant in web apps today. Often we don't want to go back to the previous page - we want to re-aggregate information, or re-contextualize, or do another search, or remix data, etc. In Web 2.0 we need an interaction framework that overcomes the "page" metaphor and recognizes that we're dealing in much smaller and more fluid units of information.