[kwlug-disc] user and ui

Doug Moen doug at moens.org
Mon Mar 22 22:02:58 EDT 2021


In my perspective, the defining characteristic of a CLI is that the commands you type to control the UI are code (computer programs), and you can apply abstraction mechanisms to these commands to make new commands. For example, you can use ${foo} variable substitutions, or you can put a sequence of commands into a shell script and invoke it as a new command, or you can compose commands using Unix pipelines: ls | wc. Mac-style GUIs don't allow this: at best, there is a separate scripting language that is quite distinct from the commands or gestures that you issue using the mouse and keyboard and must be learned separately.

Wirth's Oberon and Rob Pike's Acme are examples of user interfaces that combine GUI elements with the essential nature of the CLI, which is text based commands that can be manipulated as code, that let you compose new commands from existing commands. No mainstream GUI works this way AFAIK.

Doug Moen.

On Mon, Mar 22, 2021, at 8:14 PM, Chris Frey wrote:
> On Mon, Mar 22, 2021 at 12:04:00PM -0400, Mikalai Birukou via kwlug-disc wrote:
> > The following is an observation about UI approaches. What do you think?
> > Comments and other stories are appreciated.
> 
> More differences:
> 
> 	CLI
> 		- direct
> 		- physical
> 		- physical controls often mapped 1-to-1 or 1-to-few functions
> 		- memory based (even muscle-memory at times)
> 		- sometimes automated
> 		- often comes in building-block form
> 
> 	GUI
> 		- indirect
> 		- virtual
> 		- spacial
> 		- requires sight and hand/eye coordination
> 
> Driving a car is a CLI interface.  You don't have to think about where
> the inputs are, and you don't have to align your hand with the steering
> wheel visually before you can use it.
> 
> In this sense, Virtual Reality is a CLI interface too (often paired with
> a GUI inside).  If you've played Beat Sabre, there's a little menu
> to choose your song, but in the game, it's all CLI.  You don't think
> about how to "do" something, you just do it.
> 
> Hotkeys in a GUI menu system are CLI, but often incomplete.
> 
> Anything that forces you to think about your control system (like lining
> up a cursor with a button with a mouse) is a GUI, and therefore indirect.
> 
> Mere graphical output does not make something a GUI, in my opinion.
> 
> - Chris
> 
> 
> _______________________________________________
> kwlug-disc mailing list
> kwlug-disc at kwlug.org
> https://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org
>




More information about the kwlug-disc mailing list