CLIvsGUI


CLI vs GUI

 

Some random off the top of my head notes on why command line interfaces (CLI), despite the "natural language" appeal and pseudo-familiarity they present to shell-centric developers, tend to be inferior to graphical user interfaces (GUI) for numerous reasons.

 

Summary

Every few years a group of clever developers comes up with an inspiration to build a "generic" CLI applicable to any/all types of data. While such an interface, even if it were workable, might be useful to a few, it's not really useful to non-developers, nor is it actually efficient for even developers to learn and remember, in comparison to a well designed GUI. Of course a good GUI is much harder to design and build than a CLI with an equivalent command set, and thus there is a tradeoff.

 

CLI flaws and disadvantages

  1. The biggest fundamental flaw with CLIs is too high a barrier to discoverability. They demo well, but that's about it.
  2. CLIs are imminently forgettable as compared to muscle memory and discoverable menus / buttons and other GUI building blocks. I can't even remember how many CLIs I've forgotten, from RSTS/E to VMS, but I can pretty much pick back up any GUI I've ever used.
  3. CLIs are actually inefficient from a human-memory/learning perspective, and eventually hackers will figure that out.
  4. CLIs make it quite easy to hurt yourself, even if you thought you knew what you were doing. E.g. 1.

generic CLI attempts

 

GUI challenges

OTOH good GUIs are very hard to design, so it's a tradeoff.

 

background

This particular rant was inspired by (a reaction to?) Brian Behlendorf IMing me late night on 2008-07-31 and asking me if I had heard of Ubiquity. I hadn't, took a quick look, gave it a (probably unfair) summary judgment, and then spewed forth the above rant. Hopefully some of the above criticisms have some constructive value.

 

 


Return to FrontPage.