Update
This commit is contained in:
parent
6132b2add1
commit
fa1f0b9cbd
8 changed files with 1702 additions and 1682 deletions
|
@ -2,6 +2,8 @@
|
|||
|
||||
Unix philosophy is one of the most important and essential approaches to [programming](programming.md) (and by extension all [technology](tech.md) design) which advocates great [minimalism](minimalism.md) and is best known by the saying that **a program should only do one thing and do it well**. Unix philosophy is a collective [wisdom](wisdom.md), a set of design recommendations evolved during the development of one of the earliest (and most historically important) [operating systems](os.md) called [Unix](unix.md), hence the name. Having been defined by [hackers](hacking.md) (the true, old style ones) the philosophy naturally advises for providing a set of many highly effective tools that can be combined in various ways, i.e. to perform [hacking](hacking.md), rather than being restricted by a fixed, intended functionality of huge do-it-all programs. Unix philosophy advocates [simplicity](kiss.md), clarity, modularity, reusability and composition of larger programs out of very small programs rather than designing huge monolithic programs as a whole. Unix philosophy, at least partially, lives on in many project and Unix-like operating systems such as [Linux](linux.md) (though Linux is more and more distancing from Unix), has been wholly adopted by groups such as [suckless](suckless.md) and [LRS](lrs.md) (us), and is even being reiterated in such projects as [plan9](plan9.md).
|
||||
|
||||
NOTE: see also *[everything is a file](everything_is_a_file.md)*, another famous design principle of Unix -- this one is rather seen as a Unix-specific design choice rather than part of the general Unix philosophy itself, but it helps paint the whole picture.
|
||||
|
||||
As written in the [GNU](gnu.md) coreutils introduction, a Swiss army knife (universal tool that does many things at once) can be useful, but it's not a good tool for experts at work, they note that a professional carpenter will rather use a set of relatively simple, highly specialized tools, each of which is extremely efficient at its job. Unix philosophy brings this observation over to the world of expert programmers.
|
||||
|
||||
In 1978 [Douglas McIlroy](mcilroy.md) has written a short overview of the Unix system (*UNIX Time-Sharing System*) in which he gives the main points of the system's style; this can be seen as a summary of the Unix philosophy (the following is paraphrased):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue