The philosophy behind UNIX:

  • Write programs that do one thing and do it well

  • Write programs to work together (no extra output, don't insist on interactive input)

  • Write programs to handle text streams, because that is a universal interface

UNIX also embraced the "Worse is better" philosophy.

This thinking is powerful. On a higher level, you can see it a lot in functional programming: build atomic functions that focus on one thing, no extra output, and then compose them together to do complicated things; all functions in the composition are pure; no global variables to keep track of.

Perhaps as a direct result, the design of UNIX focuses on two major components:

  • Processes

  • Files

Everything in UNIX is either a process or a file. Nothing else.


Last updated