Icon of a thin page Icon of a thick page

The Command Line is Dead; Long Live The Command Line

David A. Harding

Someone recently suggested to a group of people I was a part of that we should explain to new users how to accomplish tasks using a Graphical User Interface (GUI) instead of the command line. I think this idea prevents users from effective learning. The Unix command line is, in many ways, a language; and GUIs are, in many ways, dumb automated translators. Worse, GUIs don't translate the command line language into native language; they translate it into an arbitrary set of concepts users must be familiar with (for example, most GUI file managers make directories look like file folders).

My family members have used GNU+Linux for a total of over 4 years (hi Jen, hi Dad). I've shown them how to do most things using the graphical tools, but they still feel unable to administer their own computers. I think that's because they never learned the command line language. Everyone who understands how Unix works either learned using the command line (top-down) or by reading about the API (bottom-up).

By explaining system administration to new users using a GUI, we make three mistakes:

  1. We're endorsing the highly abstracted artificial concepts GUIs employ. This means, for example, most users will use a Microsoft Windows style window manager forever. The innovative window managers free software has encouraged will be never be used by anything but a minority
  2. Explaining what buttons to press requires many words and is easily misunderstood. The most efficient way to explain GUIs is to take pictures. Either way, we spend more time, and waste more disk space, writting or picture taking, and we still confuse new users.
  3. We communicate with new users in a different language than we speak among ourselves. We therefore exclude them from our discourse about the complex and the innovative. We, effectively, encourage them to be second class citizens.

Update 28 May 2007 @ 1100Z: J.D. Abolins comments on the above mistake three.