In the early minicomputer days of Unix, this was still a fairly
radical idea (machines were a great deal slower and more expensive
then). Nowadays, with every development shop and most users (apart
from the few modeling nuclear explosions or doing 3D movie
animation) awash in cheap machine cycles, it may seem too obvious
to need saying.
Somehow, though, practice doesn't seem to have quite caught up
with reality. If we took this maxim really seriously throughout
software development, most applications would be written in
higher-level languages like Perl, Tcl, Python, Java,
even shell — languages that ease the programmer's burden by
doing their own memory management (see [Ravenbrook]).
And indeed this is happening within the Unix world, though
outside it most applications shops still seem stuck with the
old-school Unix strategy of coding in C (orC++). Later in this book
we'll discuss this strategy and its tradeoffs in detail.
One other obvious way to conserve programmer time is to teach
machines how to do more of the low-level work of programming. This