3 ms·
This misses a very important distinction: low-level against high-level. CLIs, especially *NIX shells, usually offer low-level operations and let you combine the
by gordaco 13y ago
This misses a very important distinction: low-level against high-level. CLIs, especially *NIX shells, usually offer low-level operations and let you combine them as you please. GUIs, on the other hand, offer higher-level operations, which is to say, prearranged and monolithic combination of low-level features to perform the most common use cases of the software. Thus, the flexibility and the possibilities of the low-level approach are lost, although it definitely results in an easier to use system, since the operations are far closer to the "semantic" level at which a user operates most of the times.
This division is exactly what you would expect when there is a division between newbies and advanced users (which the author labels as "programmers", but they're not the same thing), which is exactly what's happening. The beginners are happy with a graphical and discoverable UI that helps them learn to use the tool, while the advanced users automatically resort to the CLI because they know that they probably need some tweaking that is probably not covered by the high-level preset functions from the GUI, and/or requires visiting different dialog boxes and it's far slower to use.
The case about Word versus LaTeX is a perfect example: after I learned to use LaTeX properly, I no longer use Word.
All this is very related to the way Linux evolved, initially only for advanced users and slowly gaining GUI functionality to make it nicer for average users.