From: xcpslf@decsrv.NoSubdomain.NoDomain (stephen l favor)
Newsgroups: alt.religion.computers
Subject: Re: GUIs Considered Harmful
Date: 19 Aug 92 20:46:37 GMT
Reply-To: xcpslf@oryx.com
Organization: Oryx Energy Co., Dallas, Texas.

In article <1992Aug19.192513.28287@news.eng.convex.com>, Tom Christiansen <tchrist@convex.COM> writes:
|>                      GUIs Considered Harmful
|>
|> Of how much ultimate utility is that nifty new spreadsheet, editor, or
|> debugger if I can't dialup from the field and run it on my vt100?  Too
|> often a tool that "does windows" is little more than a marketing
|> gimmick to dazzle impressionable users into not noticing that they
|> don't have the real functionality they need.
|>
How do you implement an editor for seismic data or a drag and drop file
utility on a vt100?
|> 
|> It's all well and good to place a GUI wrapper around an existing tool,
|> but to design a new application with only a GUI interface in mind is to
|> forever limit that tool's flexibility.  After all, how to you write a
|> shell script that drives an automated xrn session?
|>
There are usually ascii versions of commonly used utilities.  Use rn or
another favorite reader.
|> 
|> Providing programmability for the fancy graphics software remains an
|> open problem.  The most effective use of GUIs in UNIX environments is
|> to design the nitty-gritty computational function as a "back end" that
|> can be driven either manually or automatically.

Standard programming practice in my book wher it fits.  This fails often
when it comes to compute intensive applications and those that use huge
amounts of memory.  The mechanism to transfer the data from a "back end"
adds too much time to computations.  And as we know, time is money.
|> 
|> The GUI wrapper should be a separable module.  If they're plug-replaceable, 
|> the application isn't irretrievably wedded to any specific GUI technology, 
|> such as SunView, NeWS, or even X11 or its children, like Open Look or
|> Motif.  Sending standard commands down a pipe the way the STDWIN or wafe
|> packages behave is also a reasonable approach.
|> 
Again, the overhead of transfering large amounts of information makes this
unreasonable.
|> This means your program should be runnable both with and without the
|> GUI present, and accept input from a mouse or under programmed
|> control.  Preferably that means both a shell-level interface for
|> convenience and a C-level interface for efficiency; Perl programmers
|> could elect either method.  That way, naive users can use push-button
|> GUIs, blind users can use Braille terminals, and sophisticated users
|> can program solutions to intricate problems.
|> 
It depends on exactly what it's doing.  Most programs that merit it should
have some sort of a batch mode, but this doesn't make sense in some graphical
applications.
|> It has been noted that GUIs make simple things simple, and complex ones
|> impossible.  Certainly it is worthwhile to make simple things simple.
|> But too often software is geared to only one level of expertise.  That
|> which is novice-friendly is too frequently expert-hostile, and vice
|> versa.  Being needlessly forced to click the mouse over a menu will
|> slow down the expert user who is more comfortable with a keyboard
|> interface.

Incorrect.  A well-defined GUI makes simple things simple and speeds up
specifications for the complex.  
|> 
|> Gratuitous distractions from the keyboard only slow down the experienced
|> user.  A precision pointing device that didn't require taking your hands

In X, we use acceletators of translation tables which in most applications are
user definable (for the daring).

|> off the keyboard would help.  There are cases where only a GUI makes
|> sense, like a CAD system.  Being able to delineate a region or draw a
|> figure with a mouse is probably a reasonable use for it, but selection of
|> a range of possibilities isn't, at least not after you've become familiar
|> with the tool.  

It seems that this note is from a person who has used UNIX for a long time.
It omits the fact that the greatest majority of UNIX users have not and
never will master the ideas behind UNIX.  Probably since they know they'll
be going to another OS in the next 5-10 years.  They want tools that can
help them do their jobs quickly and efficiently and that's what GUIs are
doing (for the most part).
Newsgroups: alt.religion.computers,comp.windows.misc,comp.windows.news,comp.windows.x,comp.human-factors