
The Two Cultures of Computing - luu
http://pgbovine.net/two-cultures-of-computing.htm
======
gordaco
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.

