home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / unix / misc / 3287 < prev    next >
Encoding:
Internet Message Format  |  1992-08-19  |  4.6 KB

  1. Xref: sparky comp.unix.misc:3287 alt.religion.computers:479 comp.windows.misc:1173 comp.windows.news:472 comp.windows.x:15418 comp.human-factors:1811 comp.windows.open-look:3508 comp.windows.x.motif:5699
  2. Path: sparky!uunet!ogicse!uwm.edu!linac!convex!convex!tchrist
  3. From: tchrist@convex.COM (Tom Christiansen)
  4. Newsgroups: comp.unix.misc,alt.religion.computers,comp.windows.misc,comp.windows.news,comp.windows.x,comp.human-factors,comp.windows.open-look,comp.windows.x.motif
  5. Subject: GUIs Considered Harmful
  6. Message-ID: <1992Aug19.192513.28287@news.eng.convex.com>
  7. Date: 19 Aug 92 19:25:13 GMT
  8. Article-I.D.: news.1992Aug19.192513.28287
  9. Sender: usenet@news.eng.convex.com (news access account)
  10. Reply-To: tchrist@convex.COM (Tom Christiansen)
  11. Followup-To: alt.religion.computers
  12. Organization: Convex Computer Corporation, Colorado Springs, CO
  13. Lines: 72
  14. Originator: tchrist@pixel.convex.com
  15. Nntp-Posting-Host: pixel.convex.com
  16. X-Disclaimer: This message was written by a user at CONVEX Computer
  17.               Corp. The opinions expressed are those of the user and
  18.               not necessarily those of CONVEX.
  19.  
  20. [Despite the broad initial coverage here, please note the Followup-To:
  21.  line, which is meant only as a guideline, not a command; amend the
  22.  newsgroups line as you see fit.]
  23.  
  24.                      GUIs Considered Harmful
  25.  
  26. I am increasingly troubled by how many new applications are designed to
  27. work solely under a GUI.  While this may make some amount of sense for
  28. people coming from the PC or Mac worlds, one of the strengths of Unix
  29. has always been the ability to use it from anywhere.  These people
  30. don't seem to understand this.
  31.  
  32. Of how much ultimate utility is that nifty new spreadsheet, editor, or
  33. debugger if I can't dialup from the field and run it on my vt100?  Too
  34. often a tool that "does windows" is little more than a marketing
  35. gimmick to dazzle impressionable users into not noticing that they
  36. don't have the real functionality they need.
  37.  
  38. GUI-minded programs seldom lend themselves to being used as components
  39. in larger tools.  As such, they do not fit well into the UNIX
  40. tool-and-filter philosophy.  Instead of each being a single program
  41. that modestly attempts to do one thing well, they are a throwback to
  42. the Bad Old Days when each program was a standalone, monolithic monster
  43. that didn't interface with anything else.
  44.  
  45. It's all well and good to place a GUI wrapper around an existing tool,
  46. but to design a new application with only a GUI interface in mind is to
  47. forever limit that tool's flexibility.  After all, how to you write a
  48. shell script that drives an automated xrn session?
  49.  
  50. Providing programmability for the fancy graphics software remains an
  51. open problem.  The most effective use of GUIs in UNIX environments is
  52. to design the nitty-gritty computational function as a "back end" that
  53. can be driven either manually or automatically.  
  54.  
  55. The GUI wrapper should be a separable module.  If they're plug-replaceable, 
  56. the application isn't irretrievably wedded to any specific GUI technology, 
  57. such as SunView, NeWS, or even X11 or its children, like Open Look or
  58. Motif.  Sending standard commands down a pipe the way the STDWIN or wafe
  59. packages behave is also a reasonable approach.
  60.  
  61. This means your program should be runnable both with and without the
  62. GUI present, and accept input from a mouse or under programmed
  63. control.  Preferably that means both a shell-level interface for
  64. convenience and a C-level interface for efficiency; Perl programmers
  65. could elect either method.  That way, naive users can use push-button
  66. GUIs, blind users can use Braille terminals, and sophisticated users
  67. can program solutions to intricate problems.
  68.  
  69. It has been noted that GUIs make simple things simple, and complex ones
  70. impossible.  Certainly it is worthwhile to make simple things simple.
  71. But too often software is geared to only one level of expertise.  That
  72. which is novice-friendly is too frequently expert-hostile, and vice
  73. versa.  Being needlessly forced to click the mouse over a menu will
  74. slow down the expert user who is more comfortable with a keyboard
  75. interface.  
  76.  
  77. Gratuitous distractions from the keyboard only slow down the experienced
  78. user.  A precision pointing device that didn't require taking your hands
  79. off the keyboard would help.  There are cases where only a GUI makes
  80. sense, like a CAD system.  Being able to delineate a region or draw a
  81. figure with a mouse is probably a reasonable use for it, but selection of
  82. a range of possibilities isn't, at least not after you've become familiar
  83. with the tool.  
  84.  
  85. --tom
  86.  
  87. -- 
  88.     Tom Christiansen      tchrist@convex.com      convex!tchrist
  89.  
  90.  
  91.               A truly wise man never plays leapfrog with a unicorn.
  92.