SWAINE'S FLAMES

Behind the Interface

The PARC/Mac/Windows user interface has grown way too complicated. There have been a few improvements from Apple since 1984, and at least one from Microsoft, but in terms of usability it's been going downhill for a decade. Anybody trying to design a replacement for this unwieldy GUI deserves our respect.

But it ain't easy.

In academic circles, you sometimes hear talk of "computer/user interface" rather than just "user interface." The former is a better term, really. An interface is the surface of contact between two realms; fully specifying the interface requires that you specify the two realms. Although "computer/user interface" isn't very specific, at least it reminds us that building an interface starts by asking a two-slot question.

Interface what to what?

Obviously, a computer/user interface interfaces the user to the computer, giving the user access to--what? To masses of information, apparently, and to functionality that the user can use to massage that information. That's what the user needs to access on every computer or computer network I've encountered. The information typically resides on disks and other storage media, and typically has an inherent hierarchical structure. There are containers and things contained, and some of the things contained are themselves containers. This hierarchy is certainly a feature of every modern operating system, and is arguably a feature of the information itself.

The user interface to this information ought, then, to represent those things and containers and their hierarchical relationship. You don't want to limit the information by requiring the interface to know something about the contents of those "things," so their representation should be generic, but they need to be identifiable, so they probably need labels. And the user needs to be able to look inside the containers to see what things they contain. Now, an interface ought to be as thin as possible. It should place the user in as close contact with the information as possible. That sounds like direct manipulation.

Labeled, generic representations of things and containers, directly manipulatable, openable containers_that sounds like nested icons that open to windows. It's hard to think what else it could sound like. The other thing that the user needs to be interfaced to is the functionality of the computer and its software. For functionality, there may also be a hierarchy, but it's not a literal hierarchy of containment. Rather, functions may fall into logical groups, such as file-oriented commands, or may be appropriate only in certain contexts, such as the commands that belong to one application rather than to another or to the operating system. At any given moment, there is a set of actions the user can take, and this set changes with context. And the actions may be better represented by text than by pictures because verbs are harder to picture than nouns.

That sounds like a dynamic menu bar. Let's see, dynamic menu bar, file and folder icons, windows: That's the PARC/Mac/Windows interface! I've tried here to show how hard it is to imagine a better interface to information and functionality, and I've assumed that that's what we always want to interface to. It may not be. Next month, an alternative model.

Michael Swaine

editor-at-large

MikeSwaine@eworld.com


Copyright © 1995, Dr. Dobb's Journal