Ian Bicking: the old part of his blog

In Praise of the Web UI

John Gruber (of Daring Fireball) write The Location Field is the New Command Line, talking about the success of web applications.

The persnickety little UI details I obsess over -- these are nothing compared to the massive deficiencies of even the best web app. But most people don't care, because web apps are just so damned easy to use. What's interesting is that web apps are "easy" despite their glaring user experience limitations.

What they've got going for them in the ease-of-use department is that they don't need to be installed, and they free you from worrying about where and how your data is stored.

I would go further -- the web UI certainly has deficiencies, but it also has features that have been unappreciated by traditional UI developers. Some of these:

  1. Web applications aren't really applications. As developers we think of them as applications, but that's an abstraction that isn't really revealed to the end user. Finally the stupid idea of a "program" can be discarded. Instead it's all about resources and tasks, which is what people actually care about. It's not the rich environment of objects that some fantasized about -- most notably in the Smalltalk environment -- but resources, in the form of websites and URLs and screens, seem to be workable.
  2. They also aren't applications because there's no real line between the web as a publication, and the web as an application. Does it start being an application when you use Apache to serve static files? Static files generated by your weblog tool? RSS? A PHP weblog? A site with a search interface? An ecommerce site? Amazon doesn't look much like an application. He talks about mail readers a lot, but there's a lot of much smaller applications out there. Every dynamic website is a little application, and yet the user doesn't have to think about this.
  3. On a certain level, Web applications are highly consistent. That's not as true as DHTML techniques are more widely used, and as Flash gains popularity, but it's still basically true. You hit the submit button to perform an action. You click on links to get around. You hit back to cancel. It's a whole different set of metaphors than a typical UI -- no menus or toolbars, though analogs exist. It seems to be successful.
  4. The user is far more empowered than in a typical GUI application. Even though it's sometimes frustrating as a developer, it's wonderful for a user that the right button has been kept largely pristine all this time. The right click belongs to the user, and the browser, and not to the web page or the web application. The toolbar and menubar belong even more solidly to the user. This saves users from developers, or even more commonly from their managers. Many a time I've said "it can't be done on the web," and that's saved me from saying "it's a dumb idea and you shouldn't do it." The proper design of the web UI keeps me from being asked to implement stupid applications (usually overly controlled applications). The web UI certainly has some problems, I know that all too well. But the UI also has some great aspects -- and not just because it's easy to install.
    Created 23 Jun '04
    Modified 14 Dec '04


    The problem is that there's a lot of stuff that can be done on the Web which no-one designing a Web application should realistically consider, since it could destroy the accessibility of the application, but which managers seem to want anyway. Fuelled by ignorance in the "design" phase, bad user interfaces actually get implemented without the developers getting a decent opportunity to use the excuse that "it can't be done".

    Perhaps I'm just too honest and should deny all knowledge of bizarre DHTML tricks to copy things between frames, use CSS to make things invisible, just to pander to clueless managers who think that the Web is just a Windows application in a little box. And don't get me started on ActiveX...
    # The Badger

    Love it!! Web is the good bad thing.
    Pretty standard and everyone has to support it even if they don't support it well. (M$)

    Stateless, ohh what I would do for a stateful connection everyonce in a while. JavaScript was a bad idea and still is really nasty.

    I am thinking we are in a transistion to more flash type interfaces. What ever we get after DHTML should be pretty cool for solving some of the widget control and helping with statelessness.

    # Lateef Jackson

    I certainly hope that we don't move to flash-type interfaces. Though the SVG people seem to be interested in that -- I can only hope WHAT can provide an alternative. There are certainly some applications that really can't be done without a richer client (e.g., build-your-own applications where you get to preview the composition of several attributes in a product). But that doesn't describe most of the web.
    # Ian Bicking

    The only problem I have seen with web applications is that everyone wants EVERYTHING on the web.

    Unlike the rest of the world I take the position that even though the web is great, there are some applications that do not ever need to be "on the web."

    This is vague, but there are LOTS of applications that have high UI requirements that will never be successful on the web.

    Most web applications are consistent because of lack of controls to choose from. If you want to run everywhere you are limited to the most basic controls and as you said no menus. Lack of choice in this case is a good thing.

    If you ignore flash as a web development platform there really are no choices. There are choice in the plumbing... how you get the textbox to the browser but in the end it is at best still a textbox.

    My point is that in the end, you really still have a textbox. And for the most part a textbox that you cannot really do anything with, other than read values once a submit button is pressed.

    Are web apps really just an alternate reality where we are all working in a really bad version of VB?
    # Tonetheman

    Actually I would not say it is about resources and tasks, it is about process. Process is what is interesting. Companies have plenty of resources in their warehouses, and workers know how to do tasks, but unless an order comes from the customer, the shipping process never starts.

    A large part of UI problems arise when people focus on the tasks instead of the process. Simplistically, if you want to provide ETDBW, you must re-engineer the process, not the resources and the tasks.
    # ledlogic

    I think web apps are complete and distinct programs. Use Java Servlets you will see that web based enterprise applications are much more challenging than you think, add security issues and you can easily turn your web app into a critical system (i.e. Online Banking).

    As for the UI, there is nothing you can't do in html and flash. You can even implement the drag and drop if you want.

    # Roger