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...
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.
Comments
Subscribe to comments for this post OR Subscribe to comments for all Read/WriteWeb posts
When using continuations the back button could be seen as just an (unlimited) undo, so maybe it's worth keeping it around.
http://www.zefhemel.com/archives/2005/05/09/continuations
http://library.readscheme.org/page6.html
Posted by: Gideon | May 25, 2005 11:02 PM
"The back button is not a bug in Ajax, it's a flaw in the browser metaphor."
I really think this attitude is wrong, and not just because browser makers clearly don't agree, meaning we have the Back button whether we like it or not.
The Back button is a contract with users of all ability levels. It says: you are in control. You decide what to view and when, and in what order. Designers and developers have now spent more than 10 years trying to live up to this contract, and we've gotten pretty good at it.
Users have spent 10 years learning what "back" means, and as a result it is and will continue to be one of the most significant paths through a web app or pile of content. You might as well say that the hyperlink is a flaw or bug. In fact, I'd even go so far as to say that it's thanks to thanks to the existence of controls like Back that we have gotten as far as we have with web apps.
Posted by: Andrew | May 26, 2005 2:24 AM
Why do we like using DHTML apps better than Flash/Java apps? I can't put my finger on it. They're faster? Feel more "web-like"? 'Cause Flash/Java apps are certainly a lot easier to *program* than DHTML apps (more "direct", fewer hacks required).
Posted by: Jonathan Aquino | May 26, 2005 3:05 AM
Web apps aren't everywhere beacuse most of them simply aren't designed well enough (usability and visual design-wise) compared to your average desktop app.
Is zero configuration and no upgrades big enough draw-cards against: dependablity, security, speed, control, looks and usability? I think not: zero config means yet another login to manage, ugh; and, the vast majority do not upgrade their software.
The 'page' metaphor works. The entire web is built around it - that's why we have URI's and bookmarks. Pages provide the closest thing we have to achieving state (in a broad sense) on the web, and that is something ajax has yet to address - how do I get back to exactly where I left off?.
Syndication and microcontent takes the metaphor one step futher, replacing the 'page' with a smaller unit, but basically it's still the same thing - bookmarkable content that I can return to later. Probably the most exciting thing about syndication is you can have it your way instead of the authors way.
It will be a long time before the 'page' metaphor is replaced and it will probably happen around the time the desktop metaphor of OS's is superceded.
@Jonathon
The main problem with flash and java is they can take a long time to load, often don't behave well, and are stigmatised by years of generally being more about 'gee whizz' than being useful. I am yet to be convinced overwise and still have java off and flash blocked by default.
Posted by: Terrence Wood | May 26, 2005 9:40 AM
You make a fine case Terrence, but I don't agree with all of your points. I don't think syndication and microcontent *is* all about "bookmarkable content". Take my use of an RSS Aggregator - often I open my 'Must Read' folder in Bloglines or Rojo and work through the items in there. But I'll be flagging things, making notes, marking stuff as read, ignoring other stuff... in a word *interacting* with the content. A Back button is going to do me little good in this instance, because it's not going to remember all my interactions with the content. It can't be bookmarked.
Web apps do have their cons, I can't argue there. And I've had some kickback from a few programmers on that count too. But generally I'll choose a web app over a desktop app these days, because I use multiple computers and I want to be able to access as much of my info as possible from anywhere.
Andrew, I still think users can be in control without things like the Back button. We have to make things *usable*, as we've always done. Back buttons are incredibly user-friendly, but who's to say we can't develop something just as user-friendly in other, more interactive and microcontent-aware ways?
Posted by: Richard MacManus | May 26, 2005 4:52 PM
Another great resource: Luke Wroblewski and Frank Ramirez' Web App Solutions: A Designer's Guide (http://www.lukew.com/ff/entry.asp?170) is a wonderful overview of the current technologies in and around web apps. Great for folks who are looking for the lay of the land.
Posted by: Joshua Porter | May 26, 2005 11:13 PM
I've been thinking about the limits of web applications and how much we can really do with them, compared to desktop apps. Even though Ajax and other RIA applciations are empowering web apps more than ever, we also got to remember that AJAX will allow us to go only as far as javascript and xml.
With that in mind, I just started seeing even more power added to the web applications. This time, the power of application doesn't even exist on the server anymore. I'm talking about Greasemonkey. With Greasemonkey, users have abilities to use the desktop application powers on web apps, still keeping all the web apps advantages in place (e.g. your data is stored on line, making it accessible from any PC)
Going one step further, I think with the rises of AJAX and Greasemonkey and whatever comes next (which allows much of the logic computing done on the client side), we might be entering a new phase of computing model, which is a truly distributed computing environment, where logic gets processed mostly on clients and data gets stored/searched/queried on web servers (much closer to p2p). The difference between this model and the old C/S model, which stands between mainframes and the web, is that now everything is operated on top of common standards (protocols such as HTTP) where before, there was no such a thing.
This new model is quite similar to what Adam Bosworth calls "data routers" (check out: http://www.itconversations.com/shows/detail405.html) or the Semantic Web's ongoing efforts on SPARQL, which is a query protocol on distributed DB on the web. (http://www.w3.org/TR/rdf-sparql-query/)
I still believe that the Web is the way to go, given you don't really have to go create another proprietary system because with the Web, all the dirty work of lower-level layering has already been done for you, unlike Microsoft's SharedPoint.
Posted by: twdanny | May 29, 2005 6:01 AM