"The only 'intuitive' interface is the nipple. After that it's all learned."
s/intuitive/discoverable/
GOOD GUIs are nice for discoverability, and the same is true for CLIs. There are many GUIs that are absolutely horrid, which rely on non-obvious icons or assume certain usage styles and offer no assistance if you don't have the same background assumptions as the GUI's creator.
Having used many different types of programs over the last ~30 years, I have wasted far more time with bad GUIs than I have with bad CLIs. At least with the CLI I can grep the output or documentation for what I want. I cannot grep a menu or GUI form to find some option I've forgotten the name of.
What this comes down to is that it is fairly easy to make a good GUI for simple things, and good programmers can make a nice GUI for the moderate and complex tasks. This is where discoverability is primarily useful, as it assists the inexperienced user and the dilettante.
For those of us that want to use our computer in a far more serious way, what the UNIX style CLI (shell) provides us is an interface that is still very learnable (IFF you invest in the time it takes to read the documentation!), that enables crafting commands that are simply not practical in any GUI. If you don't believe this, tell me how I can, for example:
- recursively walk an arbitrary directory tree of images at ($SRCDIR)
- except for any dirfectgory that ends in '.backup'
- finding any file that is NOT a PNG,
- convert that that file into a PNG
- but saving the new files in new directory tree ($DSTDIR),
creating any necessary parent directories
That would be a mess in any GUI. In bash + imagemagick, it would be:
for i in "${SRCDIR}/**/!(*.backup)/!(*.png) ; do
dst="${DSTDIR}${i#${SRCDIR}}"
mkdir -p "$(dirname "${dst}")"
convert "${i}" "${i%.*}.png"
done
Yes, that's ugly, but at least it is possible.