| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Stop wasting time looking for files and revisions! Dokkio, a new product from the PBworks team, integrates and organizes your Drive, Dropbox, Box, Slack and Gmail files. Sign up for free.

View
 

CLIvsGUI

Page history last edited by Tantek 10 years, 1 month ago

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

  • HyperTalk was about the closest anyone has gotten to a broadly usable CLI (beyond devs / shell-jockeys).
  • AppleScript tried to be more "generic" than HyperTalk and "verb" any application and failed miserably. It's probably one of the worst programming languages ever, and difficult for even experienced developers to code and debug.

 

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.

 

Comments (0)

You don't have permission to comment on this page.