26 Welcome, New User!
Unix utilities. As a result, some utilities take their options preceded by a
dash, some don’t. Some read standard input, some don’t. Some write stan-
dard output, some don’t. Some create files world writable, some don’t.
Some report errors, some don’t. Some put a space between an option and a
filename, some don’t.
Unix was an experiment to build an operating system as clean and simple
as possible. As an experiment, it worked, but as a production system the
researchers at AT&T overshot their goal. In order to be usable by a wide
number of people, an operating system must be rich. If the system does not
provide that fundamental richness itself, users will graft functionality onto
the underlying framework. The real problem of consistency and predict-
ability, suggests Dave Mankins, may be that Unix provided programmers
outside AT&T with no intellectual framework for making these additions.
Date: Sat, 04 Mar 89 19:25:58 EST
From: [email protected]
To: UNIX-HATERS
Subject: Unix weenies at their own game
Unix weenies like to boast about the conceptual simplicity of each
command. What most people might think of as a subroutine, Unix
weenies wrap up as a whole command, with its own argument syntax
and options.
This isn’t such a bad idea, since, in the absence of any other inter-
preters, one can write pretty powerful programs by linking together
these little subroutines.
Too bad it never occurred to anyone to make these commands into
real subroutines, so you could link them into your own program,
instead of having to write your own regular expression parser (which
is why ed, sed, grep, and the shells all have
similar, but slightly different understandings of what a regular
expression is).^5
The highest achievement of the Unix-aesthetic is to have a command
that does precisely one function, and does it well. Purists object that,
after freshman programmers at Berkeley got through with it, the pro-
gram “cat” which concatenates multiple files to its output^6 now has
(^5) Well, it did occur to someone, actually. Unfortunately, that someone worked on a
version of Unix that became an evolutionary dead-end.