Everything that can be a source- and
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
Complex front ends (user interfaces) should be cleanly
separated from complex back ends.
Whenever possible, prototype in an interpreted language before
Mixing languages is better than writing everything in
one, if and only if using only that one is likely to overcomplicate
Be generous in what you accept, rigorous in what you
When filtering, never throw away information you don't
Small is beautiful. Write programs that do as little
as is consistent with getting the job done.