Skip to content

Unix Philosophy

Source: Unix philosophy - Wikipedia

The *Unix Philosohpy* is s set of cultural norms and philosohpical approaches to minimalist, modular and reusable software development.

The Unix philosophy emphasizes building simple, short, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. The Unix philosophy favors composability as opposed to monolithic design.

Do One Thing, and Do it Well

Unix programs have always been expected to follow the concept of DOTADIW, or “Do One Thing And Do It Well.” There are limited sources for the acronym DOTADIW on the Internet, but it is discussed at length during the development and packaging of new operating systems, especially in the Linux community.

Rules of the Unix Philosophy

In his book The Art of Unix Programming, Eric S. Raymond, an American programmer and open source advocate, summarizes the Unix philosophy as KISS Principle of “Keep it Simple, Stupid.”

He provides a series of design rules:

  • Build modular programs
  • Write readable programs
  • Use composition
  • Separate mechanisms from policy
  • Write simple programs
  • Write small programs
  • Write transparent programs
  • Write robust programs
  • Make data complicated when required, not the program
  • Build on potential users’ expected knowledge
  • Avoid unnecessary output
  • Write programs which fail in a way that is easy to diagnose
  • Value developer time over machine time
  • Write abstract programs that generate code instead of writing code by hand
  • Prototype software before polishing it
  • Write flexible and open programs
  • Make the program and protocols extensible.

Backlinks:

list from [[Unix Philosophy]] AND -"Changelog"