|
Most GUI advocates miss the big fact that a CLI can have a grammar - a format for context around any particular word that augments or changes the meaning of the word. In a Unix "sh" command, the word "cat" could constitute the name of a command, or the name of a file for the command to act on.
Any "grammar" that a GUI has either gets fixed into it by the programmer(s) (for this selection, these buttons get greyed-out) or the users (first click on that, then click on the other). I'm not aware of any mass-market GUI that provides a "grammar" to its users. Sure, firms market products like "LodeRunner" that put a programming language on top of a GUI, but then you're instantly back to the moral equivalent of a command line.
The distinction between "has a grammar" and "doesn't have a grammar" seems trivial at first. Remember your "theory of computation": think of the difference between what format languages you can express with a regular expression versus what languages you can express using even a simple LL(1) language.
GUIs that do not allow a "grammar" will always remain ineffably inexpressive. I am Spartacus
|