Recent Articles



































Unix philosophy



         


The Unix philosophy is a set of cultural norms and philosophical approaches to developing software based on the experience of leading developers of the Unix operating system. Many individuals have examined these norms and tried to summarize them in some way.

[Top]

McIlroy: A Quarter Century of Unix

Doug McIlroy, the inventor of Unix pipes and one of the founders of the Unix tradition, summarized the philosophy in Peter H. Salus' programs that do one thing and do it well.

Write programs to work together.
Write programs to handle Rob Pike, a leading expert on the C programming language, offers the following "rules" in Notes on Programming in C as programming maxims, though they can be easily viewed as points of a Unix philosophy:

Pike's rules 1 and 2 restate Tony Hoare's famous maxim "Premature optimization is the root of all evil." Ken Thompson rephrased Pike's rules 3 and 4 as "When in doubt, use brute force." Rule 5 was previously stated by Fred Brooks in The Mythical Man-Month. Rule 6 was previously stated by Bruce in Monty Python's Flying Circus.

[Top]

Gabriel: Worse is Better

Richard P. Gabriel suggests that a key advantage of Unix was that it embodied a design philosophy he termed Worse is better. In the "Worse is better" design style, simplicity of both the interface and the implementation is more important than any other attribute of the system — including correctness, consistency and completeness. Gabriel argues that this design style has key evolutionary advantages, though he questions the quality of some results.

[Top]

Raymond: The Art of Unix Programming

Eric S. Raymond, in his book The Art of Unix Programming, summarizes the Unix philosophy as the widely-used engineering philosophy, "Keep it Simple, Stupid" (KISS Principle). He then describes how he believes this overall philosophy is applied as a cultural Unix norm, though it is not hard to find severe violations of most of the following in actual Unix practice:

Many of these norms are accepted outside of the Unix community — if not when Unix first used them, then later on. Also, many were not unique or original to the Unix community. Nevertheless, masters of Unix programming tend to accept a combination of these ideas as the foundation of the Unix style.

[Top]

References

[Top]

See also





  View Live Article   This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License