-
Everything that can be a source- and
destination-independent filter
should
be
one.
-
Data streams should if at all possible be textual (so they can
be viewed and filtered with standard tools).
-
Database layouts and application protocols should if
at all possible be textual (human-readable and
human-editable).
-
Complex front ends (user interfaces) should be cleanly
separated from complex back ends.
-
Whenever possible, prototype in an interpreted language before
coding C.
-
Mixing languages is better than writing everything in
one, if and only if using only that one is likely to overcomplicate
the program.
-
Be generous in what you accept, rigorous in what you
emit.
-
When filtering, never throw away information you don't
need to.
-
Small is beautiful. Write programs that do as little
as is consistent with getting the job done.