1. GUI vs CLI: Operation vs Expression →

    “GUIs are modeled on physical metaphors and ultimately are grounded in the same motivations. They are intended to make you operate something, to get the job done. They want to narrow your set of choices at each juncture, towards the “right” choice.

    The “right” choices are baked into the design, through a deliberate thought process. How will this be used? What are its users trying to accomplish? Which actions are more common than others? Which actions have the potential for confusion? Which actions are likely to be mistakes and should be discouraged? All these decisions are made by the designers and encoded in the user interface.

    CLIs, on the other hand, are modeled on more abstract, non-physical models. GUIs continuously offer cues to the user about what to do. They strive for an externalization of knowledge. CLIs are for users with internalized knowledge. This fundamental cognitive difference is important. Internalization is critical for power use.”