ugh.book

(singke) #1
For Programmers, Not Users 55

This is not to say that the source code contained worthwhile secrets. Any-
one who had both access to the source code and the inclination to read it
soon found themselves in for a rude surprise:


/* You are not expected to understand this */

Although this comment originally appeared in the Unix V6 kernel source
code, it could easily have applied to any of the original AT&T code, which
was a nightmare of in-line hand-optimizations and micro hacks. Register
variables with names like p, pp, and ppp being used for multitudes of dif-
ferent purposes in different parts of a single function. Comments like “this
function is recursive” as if recursion is a difficult-to-understand concept.
The fact is, AT&T’s institutional attitude toward documentation for users
and programmers was indicative of a sloppy attitude toward writing in gen-
eral, and writing computer programs in particular.


It’s easy to spot the work of a sloppy handyman: you’ll see paint over
cracks, patch over patch, everything held together by chewing gum and
duct tape. Face it: it takes thinking and real effort to re-design and build
something over from scratch.


Date: Thu, 17 May 90 14:43:28 -0700
From: David Chapman <[email protected]>
To: UNIX-HATERS

I love this. From man man:

DIAGNOSTICS
If you use the -M option, and name a directory that does not exist, the
error message is somewhat misleading. Suppose the directory /usr/foo
does not exist. If you type:

man -M /usr/foo ls

you get the error message “No manual entry for ls.” You should get an
error message indicating that the directory /usr/foo does not exist.

Writing this paragraph must have taken more work than fixing the
bug would have.
Free download pdf