Now blogging at diego's weblog. See you over there!

Why web apps don't always cut it

Russ recently started a discussion on user interfaces. There were many threads to the discussion, touching on usability, ease of development, and others. One of the main conclusions that Russ arrived at (if I understood correctly) was that web-apps are better for many reasons: homogeneity of the interface and ease of use, ease of development, and standards-based technologies that evolve more gracefully than binary code.

All those reasons are good. But there is an important point that should be remembered, and it can be summed up with one word: affordances.

The concept of affordances if well explained in Don Norman's classic The Design of Everyday Things. Essentially an affordance is something that "invites" a particular use according to our context, be that physical (e.g., a handle on a door "invites" us to grab it with our hands), cultural (e.g., in many cultures red is a sign for danger), and others.

Affordances are at the center of why software interfaces can only evolve slowly. Since they are learned (a button) as well as perceived more intuitively (the handle) anything that makes good use of common affordances would be easier to use than something that doesn't.

For example, calendars on the computer look very much like real world calendars because we know, from common experience, how the items are organized and how we should navigate the set of available information. Desktop applications are better suited to create something like that because they allow for greater flexibility. A web application could of course replicate that UI, but then it would look less like a web application and more like a local application fitted inside a web browser, and it would seem we're back to square one, plus the flexibility of web development.

Not quite. This is where the affordances of the context in which an application runs come into play.

Desktop applications can create innovative interfaces easier than web applications because the users understand that the application "lives" in its own context, and so can create its affordances, optimized for the situation at hand. Web applications, on the other hand, have to conform not only to the affordances required by the application, but also to the affordances required by the web-browsing environment. Navigating back, and forward, URL navigation, and so on. And this is confusing and limiting in many ways.

Each interface has its uses.

Eventually, desktop and web-apps will merge seamlessly, specially at the back-end. On the front-end, we will switch into web-browsing without knowing we are doing it. The point is, applications will choose the best interface for the job, be it a UI for playing media or a list of results for a query on a search engine. What's important about the web (and the Internet) are the protocols and standard data formats, not the interfaces. The SOAP interfaces exposed by Google and Amazon (among others) point the way.

Categories: technology
Posted by diego on November 21 2002 at 11:53 AM

Copyright © Diego Doval 2002-2011.
Powered by
Movable Type 4.37