Message-ID: <bnews.pyuxcc.285>
Newsgroups: net.micro,net.lan,net.works
Path: utzoo!decvax!harpo!eagle!mhuxt!mhuxa!mhuxh!mhuxm!pyuxjj!pyuxcc!adi
X-Path: utzoo!decvax!harpo!eagle!mhuxt!mhuxa!mhuxh!mhuxm!pyuxjj!pyuxcc!adi
From: pyuxcc!adi
Date: Sat Jul  3 01:50:21 1982
Subject: Query : End user interface
Posted: Fri Jul  2 10:55:22 1982
Received: Sat Jul  3 01:50:21 1982

Does anyone in the <net-land> have some experience or thoughts on
the question below ?

     Given  an intelligent terminal  or  local/personal  computer
     with  graphics  capability  (including mouse and/or touchpad
     devices), which of the following is a preferred way  to  put
     an  application  together  for  a non-computer but technical
     user ?  (i.e. the user is a college graduate, perhaps in EE,
     ME,  or some other engineering or related field, but has had
     very little contact with computers.)

     1. A powerful command language ( a la Unix )

     2. menu driven application - usually single letter or single
        word responses required.

     3. menu driven - menu consisting of graphics characters

     4. menu driven, but allowing pointing to  an  entry  by  the
        pointing device

     5. Some other method (please explain)

If you  have  direct  answers  or  some  pointers  to  literature
(preferably  making  definite recommendations), please respond by
mail.

Please accept my thanks in anticipation.

                                A. D. Ingle
                                ...!pyuxcc!adi

Message-ID: <bnews.sdcsvax.2165>
Newsgroups: net.works
Path: utzoo!decvax!harpo!floyd!cmcl2!philabs!sdcsvax!norman
X-Path: utzoo!decvax!harpo!floyd!cmcl2!philabs!sdcsvax!norman
From: sdcsvax!norman
Date: Thu Jul 15 04:27:11 1982
Subject: on menus vs. command languages
Posted: Sun Jul  4 12:08:58 1982
Received: Thu Jul 15 04:27:11 1982

+
Recently, A. D. Ingle of
philabs!floyd!harpo!eagle!mhuxt!mhuxa!mhuxh!mhuxm!pyuxjj!pyuxcc!adi
asked a series of questions about user interface.  It seemed to me that
the likelhood of succesfully returning an answer through that path was
low, but in any event, it also seemed to me that the questions and
answers should be of general information to net.works, so I post my
contribution directly.

The original question was  (edited):
     Given an intelligent terminal or local/personal computer with
     graphics (and fancy pointing devices) ... which of the following
     is a preferred way to put an application together for a
     non-computer but technical user ?
     	1. A powerful command language (a la Unix )
     	2. menu, selection by typing
     	3. menu, selection by using a pointing device
     	4. icons

Those are typical questions, but I believe they are inappropriate.
They assume that there is a single, correct answer.  There can't be.
Those 4 different selection schemes all have virtues and deficits.  I
firmly believe that any selection/control scheme has its virtues (which
are usually what the designer thought of in the first place and
focussed upon) and deficits (which is what the user complaints will
focus upon).  Therefore, for each of these schemes, one gets a series
of tradeoffs and the designer must pick and chose among them.  The
point is that no single method will suffice.  Each method has virtues,
each has problems.

Note that the characterization of the user is incomplete.  Users
vary in amount of knowledge and experience  about the problem being
worked on, knowledge and experience with the software tool being used,
and knowledge and experience with  the computer system (which yields a
large number of variables with which to characterize the user).
Moreover, even an individual user varies along these dimensions for
different aspects of the problem and at different times.  Thus, even
the most technically naive users (e.g., the typical word processor users)
become quite expert at the tasks they do continually, although often
with little or no understanding of the processes that they so
skillfully manage.

Command languages are superior in allowing efficient, ready access to
operations.  UNIX whizzes prefer UNIX command language.  Command
languages are deficient for the learner because there are a lot of
different commands to learn, the problem of selecting proper names for
the commands is very complex (and unsolved), and it is difficult to
enforce or maintain a consistent naming scheme and syntax for arguments
(e.g., look at a typical UNIX system).  I prefer a command language
when I am doing something I know well, but I prefer other modes in
other situations.

Menus, whether selected by pointing or typing, are superior for the
learner because they can be explanatory.  They are also useful for the
expert who is doing something unfamiliar or who has become rusty on
some aspect of the system.  Menus use recognition memory rather than
recall memory, and so are superior in that way.  But they are inferior
for the frequent user because they tend to be slow and tedious.  If a
lot of commands are available, then you must either crowd the screen
towards unreadability or have submenus, which often expands to
sub-sub-sub menus.  if there are many arguments or flags required,
selecting them by menus (or pointing) can be a burdensome chore.  These
problems occur whether the selection device is by typing or pointing
(which includes mouse and joystick).

Icons are really a form of menu selection, except that they require
either specially labelled keys or a pointing device, and the meaning of
icons are not self-explanatory.  However, usually the meanings are
quickly learned if the shapes are selected with sufficient care (the
Xerox Star is a good example).  Icons can be placed wherever they are
most convenient on the screen.  They also lend themselves to
modularity, in that the user can decide which icons to leave available,
which to hide away.  This helps overcome some of the problems of
hierarchichal menus.  Otherwise, they are really just an alternative
menu scheme.  A system that only uses icons and does not allow for
names loses in flexibility, especially whenit comes to arranging a
large number of files in ways that can later be easily recovered (the
Xerox Star has problems here).

Which scheme should you use?  I believe the answer depends upon a
careful study of your user population.  In general, I think it best to
have several schemes available.  Command languages for experienced
users, but easy fallback to menus.  Menus that are selected by
pointing, but that also allow selection by typing.  Menus that are
easily escaped to command language mode.   And as for icons, if your
screen can handle them, I would use them much as I use menu items, but
even in a full command langauge system I can see a use for a few icons
tucked away in the corners of the screen.

Is there much literature on this?  No.  There is hardly any intelligent
literature at all on the topic of user interface.  Wait a few years.
There are several new conferences in progress, several new groups of
researchers.  [I am about to put my money where my mouth is with UNIX
based OS project using a network of SUNs.  With design based on
psychological principles, even if we have to make up the principles as
we go (psychologists are a mixed bag, knowing a lot less than you might
imagine aout the most important issues, knowing a lot about some of the
less important details.  The problems, you see, are more difficult than
you might think.  But then, I am a psychologist).   Give our project
about 2 years.]

(Advertisement: we will soon be looking for a programmer to work with
us.  We want a UNIX wizard with sympathy and understanding for the
novice user, if that isn't a  contradiction.)

Don Norman   ucbvax!sdcsvax!norman	norman@nprdc)
(Cognitive Science; University of California, San Diego; La Jolla, CA 92093))