[bionet.software] easy vs. powerful OS

JMILLER%VXBIO.SPAN@STAR.STANFORD.EDU (03/13/91)

I see a more serious problem in the mac/unix OS debate,which I will go 
into in some detail.

****************************************************************************
>but that Macintosh propogated the (IMHO)
>counterproductive idea that you shouldn't have to read any documentation to
>use a computer. 

>Nobody ever wrote an operating system with the intention of
>making it hard for people to learn. They wrote them to be versatile and
>powerful. 

>A chain saw is powerful too, but you need to learn a few things
>before you can use it.


AGAINST THE "BLACK AND DECKER" ARGUMENT

I've seen this argument, with the exact "power tool" analogy
often enough to give it a name. It goes as follows: Really 
powerful things must have a lot of parts which must be understood for
safety. After all, cars that let you drive 180 mph require you to do
your own tuneups!. Users should expect that any powerful device (and
a computer program is a device like any other) will require you to
learn a lot of complex things to use it effectively. Things that are
easy to use can't be powerful.

  It is not valid to compare an OS to a physical entity
like a car. A complex machine in the real world and a collection 
of logical interactions programmed into a computer have vastly
different behavior in the hands of users. A computer program
is an arbitrary collection of ones and zeros that is the programmer's
concept of a particular machine. The connections between the symbols
comprising its algorithm and the symbols for controling it are
COMPLETELY ARBITRARY, and follow no laws except the whims of the
programmer.  Any set of key presses can stand for any procession of
bit-flips. There is no reason to prefer function key f10 over f9
for saving a file, for example.
  By contrast, real-world machines have real parts with real 
connections, instead of symbols and symbols connecting them. As such,
real machines, even complex ones, have an internal consistency
that people can learn readily and don't forget. One can ride a bicycle,
without practice, many years after learning how. Can the same be said
for a code-driven OS? I think not.

  The reason for this is that a computer program can be inconsistent 
in a way a real object like a car never can. Saws may break, but they 
don't "crash". The connections between parts of a program, or the 
interactions between it and the user, don't have to make any deep sense
because one can "force" a particular set of relationships impossible
in the real world. This is done all the time in computer programming,
because simplifying the program often speeds it up. This is also called a
"clever hack". A real car, for example, allows you to adjust the seat
whether or not the motor is running. A efficiently simulated car, on
the other hand, might allow seat adjustment before starting its 
simulated motor, since it was easier for the programmer to make it
this way. In short: what normally means simplicity and elegance to a
programmer will be difficult and obscure to a user.

An example: there is nothing about the task of saving a file
that connects it to any one key, picture of a disk onscreen, beep,
etc. Compare this to saving a book in a bookcase. The bookcase cannot
arbitrarily be replaced by a "symbol" to do this. That's why 
its easier to save a book than save a file! A computer can 
substitute any symbol for file saving, be it confusing or 
enlightning. The choice of symbols for this will be the decision of
the programmer alone, since no real-world constraints bar their
way.

 I hope the above gives some idea of why its harder to use a computer
than to drive a car. An OS can be anything! Mac, unix, lisp OS--they're
all philosophies other people have invented for to structure our work.
But what does this have to do with mac vs/unix? 

Currently, there are two models prevalent in computing. One is to 
create a set of abstract concepts such as stacks, pointers, pipelines,
streams, threads, etc., relate them, and construct tasks like word processing
out of these basic concepts. These tools frequently don't correspond to 
things you do in the real world (how often have you greped your car?). 
All current OS systems have these as a base. In many OS systems, these 
features are largely hidden from the user. In others (like unix) they 
comprise the level at which the user interacts with the computer. The user 
is expected to understand the philosophy behind them well enough to
translate their problem into the commands.

   In order to do this, users have to memorize a large set of tinker-toy 
set of interactions the programmer invented. This is not like learning 
to drive a car. The commands have a huge arbitrary component to their 
behavior. For example, it may be necessary to execute several of them in
a specific order. Usually, this order has nothing to do with the problem
being solved, and was imposed by the programmer to simplify and streamline
the OS. Since these commands do things with no counterpart in everyday 
experience, and are inconsistent in their behavior, the user must fill 
in all the exceptions to use, command ordering, etc. in their head. A compact, 
elegant OS on the computer is complemented by a big untidy mess of rules 
in the user's head. Most of the OS is actually in the user! To handle it 
properly, the user must set up queues, batches, stacks, etc in their head, 
and shuffles and poke the smaller passive portion on the computer. A less 
than expert user, who has not reached this stage of computerizing their 
thoughts, will be unaware of the huge number of unspoken conditions, 
exceptions, etc., to use a tool in the OS, and will usually fail.

An example: 
  Take an OS where it is necessary to open a window, and then direct
data from a file into it. This is contrary to real-world experience.
To open a book, you don't have to prespecify the paper before reading
the text! So the user runs a little program in their head, specifying
the order of execution of the commands, remembering what has to come
before what. This is what I mean by most of the OS running in the
user's head.
  The shortcuts and inconsistencies in the logical structure are filled
in by the user's brain program. A super user who completely grasps this
system can of course ride it like a bucking bronco, and do things faster
than the rest of us. To such a user, anyone else who accomplishes a similar
task more slowly and without reading a manual will of course seem counter-
productive, whether or not they get their work done!
  The logic of the typical OS (unix is hardly the worst at this, it
pales in comparsion to something like FORTH or PostScript) is contrary to 
the associative memory we normally use to work. People simply don't think
in stacks, queues, pointers, modal programming, etc., etc. They are
hard to remember once learned. They are in fact so hard to learn that
they must be learned as an end in themselves(read:power users). The
"power tools", having arbitrary properties, don't provide the feedback
they would if they were actual tools.In order to remember them, the user 
requires an emotional committment. To the extent to which the OS uses
tools that aren't anything like real-world tools, the commitment will
have to be all the greater.
  Consider the "efficient" work of a power user. Looking at a screen nearly
blank but for a character or two in the left-hand corner, they proudly
punch a single "macro" key. The keypress initiates some extremely complex set of
operations with remarkable efficienty. I state this efficiency was actually
bought at huge cost. The user memorized the OS, and preran it in their heads,
then actualized it in the computer. This takes a lot of work, since 
recent work in congitive science has demonstrated that the brain
does not operate like a computer executing programs. We don't use
pointers to remember, we find things by associative memory. We
don't build stacks or queues of significant size. These things must
be laboriously trained into our brains. I question the true efficiency 
of such an approach.
  Programmers and power users have totally forgotten the
struggle they had to learn those "simple 9-step proceedures" (an actual
quote)--it took YEARS,not a few days in a course. 
They have been re-learning constantly, as even THEIR brains
cannot remember a large collection of logical operations executed in 
a way contrary to day-to-day experience. Furthermore, since
they have to find ways to decompose problems like writing a letter into
the peculiar tools of their cherished system, they begin to see this
as the RIGHT way to think. And they want to convert the rest of us.
As such, power users and programmers are the worst judges of the value
of an OS to the vast majority of users. They want everyone to buy into
their philosophical framework for viewing reality, which is the OS 
they constantly have to practice to use at all.

  Thus, the resentment of users towards mastering a more powerful and
harder to use OS comes from more than complexity. After all,
people eagerly learn many hard things. I think the users can tell
at some level the things they are learning about the OS aren't
"truth", they're just the way the programmers decided to arrange
things, and as such learning them requires buying into their 
philosophy.

An example: I know a mac user who 1) scanned playboy centerfolds into his
computer, 2) edited the resulting file with a drawing program, and 3) 
printed it out on a color printer. He has gone so far into the world of 
the OS that he must process real-world things according to its rules. 

So much for the "power" OS..........

  The alternate approach has been taken  TO SOME EXTENT by the mac.
There is an attempt to make the available "tools" have some of the
behavior of real-world tools. This includes consistency in their operation,
even if a more efficient way might be devised for doing the task. The tools
can be used at any time, instead of requiring specific orders of execution.
The OS handles the logical inconsistencies which arise. It mimics the real
world to some extent, allowing users to transfer their extensive,
associative knowledge about the real world to using the computer. 
Deleting a file becomes throwing it in a trash can, for example. This 
doesn't require a window/trashcan GUI like the mac or windows--a notebook
or rolodex metaphor is just as servicable. The user sees the computer as
mimicing a reality they understand, instead of creating a supposedly 
"superior" and "more efficient" new world. Basic mac operation falls into 
this catagory. Things like MultiFinder switching do not (which only a tiny 
fraction of users ever understand).
  The reason users don't react as strongly to having to learn this type
of system, aside from the fact that it is easier to learn, is that 
it tries to mimic reality. Thus, they see the OS as imitating things
they already know about (thereby implicitly acknowledging these things
are good), not constructing a whole new reality with supposedly
superior concepts of how to do things.

An Example: An abstract printing tool might require that you predirect
the output prior to running a program. Since you don't have to prespecify 
the ground as a target when you throw a ball, most new users will forget to
prespecify, and waste a lot of time running the program with misdirected 
output. The expert will explain their faulty thinking, and show them the
greater power and flexibility achieved by prespecifying the ground. Of 
course, since the user doesn't use the computer as much as the expert,
they will probably forget, and have to re-learn everything.
 
 I contend that the time wasted by large number of intermittent and new 
users with the first type of tool VASTLY outweighs the time saved by 
the small number of power users who obtain an increase in performance 
by prerunning the OS in their heads. It even outweighs the time the 
programmers have to spend making the output accessible (ie., a 
default scrolling window which doesn't have to be prespecified as
the target).

  In summary, to the extent that the OS of a computer has a recognizable
metaphor, it will be immediately useful. The less it is connected to
the real world, and the more it is connected only to its own internal
logic, it will be useful only to those wanting to bend their mind to 
run it, despite all its purported "efficiency", "flexibility" and "power".

  One might argue that scientists construct logical card castles all the
time in their theories, and talk about vast expanses of space, time, 
size beyond their possible experience as individuals. Surely tensors,
for example, have little to do with everyday experience! However,
these are still grounded in reality. The laws of nature always work
(they never crash), because they are not arbitrary. This grounding makes
the logical card castles we call theories useful, and in fact the ONLY
thing that justifys their existence. This is not true for a computer OS.
It can be grounded in nothing except its circular (kind word for 
masturbatory) connections to itself. 

 How is this relevant to the current question about how we in bioscience
will use our computers in the future?

  Typical biosci users use their computers on a weekly or monthly 
basis. This is not because they are computer ignorant, but because they
have more important things to do, like run real-world experiments.
Furthermore, they have already built particular models for the things
they study. They have no commitment to any particular style or elegance
in doing their work, they simply want to do their work. It is a waste
of time for them to learn the programmer's idea of how their problem
should be stated, despite its elegance and efficiency.  They are 
willing to make little tradeoffs in time and money to avoid re-learning
how to carry out an operation on the OS's terms which they visualize in
a completely different fashion. The ability to prespecify a bunch of 
directory paths is IRRELEVANT to them, since they don't have a 
map of the directories in their head prior to looking for their file
(like power users do). But they will, even after months, remember what 
that cute icon looked like, and where it was located spatially onscreen.
I don't see how it helps them to learn an invisible branching network,to
speed up their OCCASIONAL computing by 34.4%. 
  The model molecular biologists use for their work is not text manipulation, 
though this is the form programmer's have have cast it into. Molecular biologists
communicate with each other by drawing little pictures of fuctionally relevant
regions. As such, programs which treat sequence analysis as text manipulation,
a sort of specialized word processing, are putting an extra clumsy layer 
between the scientist and their work. Those 15.4% speed increases don't make 
up for this  unless a single individual does nothing but work with the 
program all the time (read programmer).
  
   The style of an OS has an influence on everything done in it, and
the types of programs that will be created in it. Compare the type of
programs spawned by the unix and mac OS. Programs for doing "desktop 
publishing" type documents originally required the user to think
of their document in terms of operators and character strings. This is an 
arbitary method of interacting with the computer to create the document.
It is no "closer" to the actual task at hand by being closer to the
computer OS. Small wonder the graphics design community waited until
WSWYG programs came along to shift over to computers. It was not because
they were lazy users. It was because the computer imposed an alien, 
arbitrary method for doing their work (the "right" way to do it to
the OS groupie). Certainly, one has more "power" over a laser printer
by directly writing PostScript files than using a DTP program. But most
users don't care. They don't want to build stacks in their brain, and
push and pop values off of it to create a document. They resent the
arrogance of the programmers and power users that want to redefine
their work in terms of the arbitrary logical structure of their OS. 
The mac OS is guilty here, of course, but less guilty than unix. 
Even with window dressing, unix will remain unix. Programmers will always
write in its "style" as long as the internal OS structure remains the same.
Lets face it. If unix had become a standard in 1980, I doubt very much
that there would be programs with the ease of use we find on micros.
We would still be specifying where a window goes by typing its new 
coordinates, rather than dragging it.

  In an OS where constructive use requires reading manuals, attending
classes, etc., the typical bioscience users will always be a
second-class citizen, while the power user and programmer are
first-class. 

  The core of unix, which is never going to change,
is a set of abstract routines that will be mastered only by power
users and programmers. Anything to help the rest of the users is
a addon to the real OS. The first class in unix will cover these
routines, and the later ones will cover things like mice and
windows.  Since these are addons, programs utilizing them will be 
developed as an afterthought. This is why WYSWYG programs have appeared
in unix ONLY after they have become standard elsewhere. The RIGHT way
to do it in unix is writing print files, and always will be. 

An example: I use my home computer primarily for driving a synthesizer.
Despite the cheap cost of DOS platforms, musicians buy macs 
if they can possibly afford them. The logic for writing a sequencer according
to the dictates of DOS are so contrary to the way a typical musician thinks
that it isn't worth the effort of using them. They make perfect sense to the
expert OS programmer who would dice up music according to their OS model.
They are "powerful" and "flexible". But they don't sell, except the ones 
that use an interface similar to the mac model. By contrast, the mac sequencer
programs use a multitrack tape recorder as a metaphor, and allow entry of 
notes on a normal musical stave. 

  I read a book called "The Psychology of Everyday Things" by Steve Levy. 
The book shows why you always try to open some doors the wrong way.
Some of what I said above is inspired by it. Programmers, if you actually
care about users, you should get this book. The worst designs cited in the
book were invaribly in computer software. A good example
is VCR programming. Who can program a VCR? (answer: "power users"). I
really dislike having to help people program the machines, but they
simply can't figure it out themselves! Each VCR system contains a unique
menu tree of relations which must be understood prior to ANY operation,
and this system of relations has NO connection to the problem of recording
next week's ball game. This is classic non-GUI thinking. Of course, its
a "power tool", and to use it, one must expect to do a lot of work! Bull.
There was nothing stopping the designers from making the system easier to
work. It was their programming for elegance and speed(!) which made them
create these unusable devices. 
  For the same reason, "home control systems" have never caught on. 
People who play with computers all the time are so arrogant that they
think people will actually structure their home environment using stacks,
parameter lists, and pointers! People don't think in parameter lists,
and they won't in the future.

  Of course, some of you are saying that these arcane ways of working with
the computer should be available if someone wants to use them. They are,
even on macs and PCs, usually in third-party sofware. If they are built in,
programmers are going to impose them on users. Its much easier on the 
programmer to create a fixed-order parameter list than to create an interface
that seems naturally related to the problem at hand. If the OS lets them do
it easily, they will write programs using it. I see it as the user's check
against the power of the programmers and OS junkies. 

One last thing. I find really disturbing that so many power users have
expressed contempt for things that look "cute" or "pretty" like icons. I
feel this represents a basic hostility against the way ordinary people
think, and anger that they dare to accomplish something in terms different
than the lattice of their OS.  I have encountered this attitude 
everywhere, INCLUDING "mac power users"(what a concept). 
It is a hostility to the use of a metaphor with some of the properties 
of the world, as opposed to the spaceless, timeless, dimensionless, 
colorless card castle of connected bit-flips that is a computer. Those 
who have converted to this way of using a computer will try to force it
on the rest of us, using the Black and Decker argument, combined with
contempt for solving the problem in a less powerful way. This has to be
resisted by users that have the computer for a job instead of a career. 
   We should oppose people wanting us to "learn to use power tools" 
for the same reason we should scream bloody murder about not being able
to program our VCRs, microwaves, etc., without reading the manual. 
Has everyone noticed how many soft drink dispensers now require you
to enter a code to get your drink? In the old days, there were big plastic
buttons on the machines, with the brand label visible through them.
You hit them, and out came the soda. Now a microprocessor is used, and 
people go through a learning curve that didn't previously exist to do what
they did before. Of course, the machine now occasionally dispenses
"drinks on the house", speaks in a buzzy monotone,etc. I guess its
a "power tool" now, and you should only expect to read the manual. I watch
people I know are intelligent being confused by these clumsy machines!
I see little difference between this and those who look down about mice,pens,
cute li'l pictures, etc., etc.
 
  As to "nobody writes an operating system with the intention of making it
hard to use", I disagree. Once the basic concepts of the OS are established,
they will be maintained even if there is a simpler way to do it, to keep
consistency with the supposedly primal "power tools" that define the OS.
If this weren't true we wouldn't have OS fanatics who want us to share the 
correct way of doing things with the rest of us. Everyone has met the power
user who has tortured their machine into doing something another does
easily, in order to continue working in their "way".
The first good OS will be recognized by the fact that nobody has strong
opinions about it! 

Finally, don't take this as some sort of homage to "the macintosh way". 
Practically, they have been a great help, in bioscience, and this goes for
PCs as well. Millions of people who never would have used computers now use
them because they run an relatively simple, intuitive OS not controlled to a
super user. In our own lab, nobody has to train a user to run the word 
processor, OR the basics of DNA and protein sequence analysis. I think 
that is tremendously productive. 
But macs are still too hard to use. In fact, I'll probably jump ship on
the mac in the near future, but I won't be growing a point on my head
and typing greps till the wee hours. Nope, I'm going for GO, which has mac
users saying the same things PC users said about the mac in 1984.


-Peter Markiewicz

JS05STAF@MIAMIU.BITNET (Joe Simpson) (03/13/91)

I would like to follow up on Peter Markiewicz's thoughtful discussion
about easy vs. powerful.
 
I define reliability as "Did the operator obtain the expected benefit
with an acceptable expenditure of resourse?".  How reliable is your
computer?  How reliable is my Mac?  I don't think that there exist
ANY truely reliable computers across a reasonable domain of activity.
 
Laudable benefits of the Mac that distinguish it from many compeditors
include:
Vendor enforces strong standards for information exchange across
       software packages.
The O/S has strong display, print, and network services models.  Of
       course the best O/S would have a single image model and
       the primative notions "display" and "print" would vanish.
The community of consumers supports strong interface standards.  This
       decreases the learning curve for new applications and supports
       the illusion that one has a single homogeneous computing
       system.
 
IMHO the Mac user interface/desktop metaphor is nice, is reasonably
       intuitive , and has some real problems that any good UNIX
       wizard could point out.
 
Why hasn't the NeXT, or SUN, or RS/6000 taken the world by storm?
They fit most of the Mac values that I admire.  I believe that it
is because most users don't want to learn the underlying UNIX so
they can set up their computer to do the "simple" things.
 
I hope that diversity will rule until we come up with simple, extensible,
and deep operating systems.  I look forward to observing GO.  Being old
and a typist and all, I suspect I can compute much more efficiently via
keyboard/pointing device than via pen.  Now I sound just like an old
UNIX advocate don't I!

brsmith@cs.umn.edu (Brian R. Smith) (03/16/91)

In bionet.software you write:

[An unbelievably long diatribe against unix, the main points being
that it is counter-intuitive and not metaphoric, due to programmer's
convenience, etc.  Lots of generalizations and misinformation
deleted.]

You seem to be missing the point.  Unix is (WAS + compatibility)
primarily a programmer's system.  All those commands and concepts you
find so alien were intended for a completely different audience.

Fortunately, an "operating system" is not comprised entirely of the
utility commands it comes with.  Unix isn't popular because of all
those wonderfully obscure commands; it's popular (IMHO) because of the
underlying (POWERFUL) features:
  Multiple processes.
    REAL background jobs.
  Virtual memory.
    You aren't required to have enough physical memory for all your
      processes.  (So you can run really BIG processes.)
    Memory protection.  Poorly-made programs don't crash your system.
  Security.
    Multiple users, file protections, encryption, PASSWORDS.
    Viruses?  Where?
  Networking.
  
What's more, a decent user interface (with all those wonderful tools
and their metaphors) CAN be built on top of Unix.  NeXT has made a
pretty good start.  (On a completely non-standard windowing system
with an obscure object oriented version of C, though, which has its
own complications.)

It will take a while before Unix/X really comes up to speed with
graphical user interfaces.  The mac had the advantage there because
Apple started from scratch - no compatibility or previous user base to
consider.  Of course, it's taking Apple quite a while to get virtual
memory into MacOS...

So - if you want the power of unix, you're stuck with the god-awful
user interface.  Not how it SHOULD be - how it IS.

My $0.02.
--
Brian

unasmith@phoenix.Princeton.EDU (Una Smith) (03/20/91)

I read Peter Markiewicz's article about modes and metaphors of
computing with interest.  He touches on most of the issues, but
in my opinion he draws too strong a distinction between the goals
and functions behind the Mac and Unix operating systems.  The
designers of each of these systems have the same goals (in fact,
they are sometimes the same people!):  to make the best computer
possible.

There should be computing standards, but there should always be
more than one standard.  Human beings will never invent the ideal
computing systems, but the computing systems that humans invent
will be continue to improve.  According to evolutionary theory,
the rate of evolutionary change is increased when diversity is
high, but the success of a species often depends on how common
it is.  At the same time, success tends to lead both to commonness 
and to greater diversity.  I see the same dynamics in many human
endeavors, especially in the computer industry, and I think that 
is a very good thing.

"Power" is relative, and the most powerful computer system will tend
to be the newest, and thus the least polished and perfected;  this
means that "power tool" computing systems will probably always need
manuals.

As computer designs evolve, there will be a continuing cycle of
emphasis on functionality at the expense of usability, and usability 
at the expense of functionality.  With each cycle, however, the
cumulative effect will be to increase both.

Different people have different computing needs;  some need the
functionality that Unix systems offer, while some need the user
interface of Mac systems.  Let's respect one another's needs, and
stop asking "which is the best system."  The real question is 
"which is the best system for what I want to do?"

Although both are much improved nowadays, Macintosh computers are
STILL hard to program, and Unix systems are still hard to use,
but each does some things better than any other system.

I am an ecologist, and I use computers frequently.  If I were
very, very wealthy, I would want a Mac, a PC, a Unix-based
graphics supermini, and an IBM mainframe, all connected to one
another using the very best communications protocols.  I like
them all, and I use them all regularly;  each one makes my 
life simpler because it does something for me that none of the
others can do nearly as well.  Take your pick, and enjoy.

	- Una