The UNIX philosophy.

The components of UNIX philosophy originate from a series of maxims by UNIX and C language experts. They focus on software composition, simplicity, and optimization.

Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is the universal interface.

—Peter H. Salus

Rob Pike offered a series of rules that advise that we don’t optimize algorithms until we’ve measured a bottleneck and only if it overwhelms the rest of the program at that, because fancy algorithms are buggier and only offer improvements at large scales. Ken Thompson simplifies it to:

When in doubt, use brute force.

—Ken Thompson

From these statements and actions of early design master, a series of rules may be extracted.rR9


  1. Eric Steven Raymond, “Basics of the Unix Philosophy,” 2003, http://www.catb.org/~esr/writings/taoup/html/ch01s06.html. (See notes.)