posted by Richard Wareham on Mon 8th Mar 2004 20:49 UTC

"Command Line is your friend, Page 4/4"

So what can we conclude from these experiments? Certainly the CLI had many advantages to the GUI in terms of the important areas I identified. The CLI had certain drawbacks to the GUI however which were reported by the users. Chiefly was the lack of any graphics or pictures. Should time and resource have allowed I would have liked to test the users with the graphics enabled version of the links web-browser to see if the hybrid CLI/GUI it provides would be better.

All users, after an initial bootstrapping phase, preferred the CLI "discussion" method for interacting. All reported that they felt more in control and better able to find things out. This probably was due to the higher amount of interface consistency and more task-based interface that the CLI tends to encourage.

It is far easier for programmers, naturally task based people, to code a useful, easy CLI program than a GUI. GUIs take more work to code than standard command line option processing and this is often reflected in the relative quality of interface between them. CLI options force the programmer into a more restrictive interface which is actually good for the newbie. Also the barrier to providing self-documenting discoverable programs is smaller. Documentation for each option is, in many cases, written as a side-effect of implementing the command processing.


That being said, there is room for improvement in the CLI. A general notification system would be useful, much like bash's mail and task notification system whereby background tasks could communicate events to users without interrupting their flow. Such a system would present the notifications either when the current command terminates like bash currently does or in some 'status area' of the terminal display, probably based on user preference.

Perhaps these things could be combined into a new shell. One that also had a more unified method of job control, perhaps introducing 'inbg' as a built in function.

The trial also highlighted the need for a 'bootstrapping' step in the CLI to provide new users with a command or list of commands they can use to get started. The hypertext-like nature of man pages also encouraged discoverability by referencing other commands for the users to investigate. Perhaps some search command for man pages would be useful here (not apropos, that has never produced sensible answer for me).

For the future

I would ideally like to extend my little trial into a full newbie computing course where I teach the command line first before moving up into GUIs. I feel that my experiences here show that the CLI provides a far better environment for first-time computer users to find their feet. I believe it also gives them a better idea of what is actually happening inside their computer.

Subsequently many of the users in the trial contacted me with questions of how to get their computers at home into discussion mode. It appeared that while, in the space of two sessions, they had become quite the CLI power-user they were still struggling with the GUI. At that time the Mandrake Linux distribution seemed a useful suggestion and I burnt a few CDs to take into the next class. What became of these after they left I don't know. I hope that at least one is still a CLI power-user.

If I were to hold the trial now, I would probably recommend the Knoppix Linux live-CD so they could just "reboot into discussion mode".

Please note that I made very few notes during these trials and they were a couple of years ago. They were never expected to be particularly scientific so please note that your newbies may vary. However the conclusions I draw here are the same ones I drew at the time and I would expect a similar trial to give similar results today.

About the Author
Rich Wareham is a 2nd year PhD student in the Signal Processing Group of the Cambridge University Engineering Department. When not playing with Geometric Algebra and proving theorems he enjoys learning about technology, experimenting with new Unix technologies and teaching undergraduates about Software Engineering.

Table of contents
  1. "Command Line is your friend, Page 1/4"
  2. "Command Line is your friend, Page 2/4"
  3. "Command Line is your friend, Page 3/4"
  4. "Command Line is your friend, Page 4/4"
e p (0)    94 Comment(s)

Technology White Papers

See More