From: bc@Apple.COM (bill coderre)
Newsgroups: comp.sys.mac.misc
Subject: Re: CLIs that teach; GUIs that don't
Date: 24 Jul 92 00:59:53 GMT
Organization: Apple Computer Inc, Cupertino, CA


I agree with many of the opinions expressed here, and would like to
underline and expand a few ones that I find especially key.



What makes a "good" interface?

I want to agree that a good interface is one that is as "effortless"
as possible. In this repsect, the Mac interface is great at opening
files -- just double-click -- and a CLI-like interface is great at
batching files -- just say "tar foo*" or something like that.



Can CLI's be "good"?

There are many CLI's that are particularly friendly. TWENEX, the
preferred OS for DECSYSTEM/20's, was a CLI with some interesting
features:
	1. Pushing <ESC> would provide short help for a command.
	2. Pushing <ESC> while typing a command name or file name
	   would complete the name, if it was unambiguous.

Note that this system provides "quick reference" help for a command
with little effort, and also provides "power users" with a shortcut --
all without any extra work on the part of the user. It doesn't make
life perfect, but it does make things easier.

I know that I personally would like UNIX a whole helluva lot better if
these help modes were available. I can never remember the order of
arguments (since it is wildly inconsistent), so features like those
above would be especially helpful.



Is the best UI one that models the way the machine works?

Someone made the point that a "good" UI would educate the user about
the machine.

Although I agree that knowing a bit how your car works is a good
thing, and might make you drive better, let me ask you a simple
question:
	   When the octane of your gasoline changes, do you want to be
	   resetting your valve timing to optimize power while
	   avoiding premature detonation?

If you do, I can suggest that you either join a racing team or get
more rest in your life.

The point is, most people want an engine computer to save them from
having to worry about these details, so that they can concentrate on
finding the same radio station that the blond{e} behind them is
singing along with.

Well, that's why I bought a computer, anyway. I don't care how MS Word
stores information -- it might be a doubly-linked list with hash codes
and location indices, or it might be little gears and springs.

All I care about is that Word creates an illusion of being a gestalt
entity that behaves exactly like the manual, and "makes sense" to me.
I can reason about how Word will work (OK, *most* of the time I can),
and accurately predict the results of my tinkering.



"Obvious" is not always the same as "effortless". Neither is "concise".

Many people like CLI's specifically because a cryptic incantation
can be both concise and powerful. For example:
     bc@apple% ps -aux | grep "IW" | wc
	  102    1138    6339
You can easily see that this invocation is "effortless" -- you don't
have to write any code, or manually compute the answer.

Many other people hate CLI's for exactly the same reason! This
invocation is far from "effortless" for them to understand. If they
ran across it in a book, for example, they'd expect to see an
explanation of what it does.



Different levels of detail optimize "effortlessness" for different needs

I think that a truly superb interface would have different levels of
detail available when necessary, without imposing unnecessary
"baggage" on the user. Alan Kay spawned a good metaphor when he called
the different levels of detail "opening the hood."

After all, even though my car has the engine in the back, 6
horizontally-opposed cylinders, two carbuerators, and no fluid
coolant, it still drives like any other car. (Only faster!) 

But when I need to, I can "open the hood" and turn the distributor 6
more degrees to adjust for the fact that I've put 102 octane "low
lead" aviation gas in the tank.

bill coderre
and his 1962-3-4-5-9 Corvair Monza Convertible.

ps. No, I am not on a racing team, which I guess means that I should
get a life!
Xref: sparky comp.sys.mac.misc:13642 comp.sys.mac.games:7548 alt.sex:24880