In Chapter11 we
will develop in some detail the consequences of the differences
between command-line interfaces (CLIs) and
graphical user interfaces (GUIs). Which kind
an operating system's designers choose as its normal mode of
presentation will affect many aspects of the design, from process
scheduling and memory management on up to the application
programming interfaces (APIs) presented for applications
to use.
It has been enough years since the first Macintosh that very few
people need to be convinced that weak GUI facilities in an operating
system are a problem. The Unix lesson is the opposite: that weak
CLI facilities are a less obvious but equally severe deficit.
If the CLI facilities of an operating system are weak or
nonexistent, you'll also see the following consequences:
Programs will not be designed to cooperate with each other in
unexpected ways — because they can't be. Outputs
aren't usable as inputs.
Remote system administration will be sparsely supported, more
difficult to use, and more network-intensive.[23]
Even simple noninteractive programs will incur the overhead
of a GUI or elaborate scripting interface.
Servers, daemons, and background processes will probably be
impossible or at least rather difficult, to program in any graceful
way.
To design the perfect anti-Unix, have no CLI and no
capability to script programs — or, important facilities that
the CLI cannot drive.
[an error occurred while processing this directive]