“As anyone who has been paying attention knows, Unix is
comprised of many tiny little tools designed to interoperate
together, creating, modifying, and otherwise interacting with
“streams” of data, be they MP3 data, text files, or raw data. One
of the core ideas of Unix is the idea of streams of data being
modified by programs via “pipes” and “redirections” and small
programs designed to filter and modify that data stream. It’s a
useful concept, which when combined with other ideas in Unix (the
idea of devices as abstracted data streams or files, for instance),
can do some very powerful things.”
“This is how integration should work. Lots of small
independent utilities designed to do relatively small things, which
can be combined in novel ways that the writers of those utilities
never imagined. “Integration” isn’t combining all the
functions of software into one massive arcwelded chunk; integration
is the ability to use disparate parts in a consistent way.”
“Simplicity, whether it’s found in software, a clean
mathematical theorem, or an elegantly designed building, is a solid
foundation for further development. Complexity, bloated software,
overcomplex theorems are chaotic attractors for future problems —
they may explain everything, they may do the job, but in the long
run, they’re simply not adequate as a foundation for future
development. Bloatedness is a kludge to be avoided. Simplicity and
parsimony must be the core of both a mathematical theorem and a
piece of software.”