I've been reading Donald A. Norman's book The Design of Everyday Things. It is a fine book. The chapter I'm reading now talks about affordances, which seems to be a concise way of describing the hints that a thing shows us to explain how it is to be used. Being a computer guy, I immediately relate this to computer interfaces: Every mouse-based graphical user interface (GUI) I've used has a button control, which is designed to look somewhat like a momentary contact push switch. Every mouse that I've used has a momentary contact push switch located somewhere inside it. By making the thing on the screen look like it "affords" pushing, people easily figure out that it is operated by pushing the mouse's button. That's the idea, anyway.
For years the conventional wisdom is that a "rich" GUI offers more hints as to its usage than does an "old" command line interface (CLI). But thinking back to when DOS was still an option for most office workers, using Windows (3.0 at the time) was really not the preferred way, except for a few "power user" types who liked Excel. About a year ago Richard Wareham published an article entitled The Command Line - The Best Newbie Interface? in which he describes his experience teaching new users how to use a UNIX shell.
Now, the UNIX shell is not widely considered to be "user friendly." In fact, the "rm" command, for example, is often downright hostile. I've been using computers for twenty five years, and I still occasionally delete files that I wish I hadn't. But Wareham makes the claim that once users were accustomed to the idea, they found the CLI comforting.
I think that this is because with just a little bit of effort, the UNIX CLI gives more affordances than does a GUI. Think about it. In most of the modern GUIs there are a few ways to display the files in a directory. As large icons, or small icons. With the "details" turned on, or off. Sorted by name, date or size. A few other choices. Maybe there are menu items, or toolbar buttons, or right-click context menus, or something else to switch between these.
In a CLI, I get all of those options, and a few more. I can show only .txt files. I can show only the three newest files. I can show the files that contain the word "affordances." Each of these is a single command, one of them is two programs strung together into one line. But where are the affordances? Where is the indication of how to make these things usable?
"Man" pages are the keepers of the affordances. The "ls" command has a ridiculous number of options, more than I could ever manage in a menu. But if I remember to look at the man page for "ls," it kindly tells me how to invoke each of the options, and gives me a couple of sentences of what each one does. To give a GUI that many options would make it unusable. You would end up with so much screen dedicated to controlling the options that there would be no room left for the files. "ls" takes up no room on the screen, until you decide you want to use it, and then it is almost immediately there.
This essay does not really feel complete to me, but now I've lost track of whatever point (if any) I started with. If you have any thoughts on this topic, or interesting links, please post them in the comments area.
* 11:15 13-Jan-2005 Fixed a spelling error. If you didn't notice it before, you didn't miss much. Thanks, Meg.
No comments:
Post a Comment