Skip to content

Commit e44b9d9

Browse files
authored
Merge pull request #2 from jumptable/unix-background
Fix spelling error (populare -> popular) and add commentary for Unix
2 parents a418b2e + 171fdc1 commit e44b9d9

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,19 @@ Quote from Dennis Ritchie for Vision of Unix:
5151

5252
* Programs should be like specialized tools in a carpenter's toolbox
5353
* Avoid `create programs to rule them all`
54-
* Don't create programs that are like a Swiss Army Knife
55-
* Meaning they do too much
54+
* Don't create programs that are like a Swiss Army Knife... meaning they do too much
55+
* One simple example would be sorting... either you can do one of the two following things:
56+
* Write a bunch of programs to do various tasks, each of which has an option to sort its output
57+
* Choose a common representation for your system (e.g. streams of ASCII text), create a mechanism for composing pieces of the system (Unix pipes), and only write the sorting functionality once
58+
* A less simple example would be the [LLVM compiler](http://www.aosabook.org/en/llvm.html) (and compilers in general), which uses an intermediate representation (IR) that is understood and operated on by all pieces of the system as the compiler does all the passes required to generate its target (e.g. lexing, parsing, optimization, code generation, etc.)
59+
* In general, choosing a common representation for a system will turn the problem of interfacing the various pieces from an m*n problem into an m+n problem (where m is the number of different outputs in the first stage, n is number of inputs that are received in the second stage)
5660
* Tools can be combined using pipelines and the shell to get your work done
57-
* This philosophy became populare in [Kernighan & Plauger Books](https://www.amazon.com/Software-Tools-Brian-W-Kernighan/dp/020103669X)
61+
* One famous example is Doug McIlroy's word count program, compared to Donald Knuth's, as described [here](http://www.leancrew.com/all-this/2011/12/more-shell-less-egg/) and elsewhere
62+
* This philosophy became popular in [Kernighan & Plauger Books](https://www.amazon.com/Software-Tools-Brian-W-Kernighan/dp/020103669X)
63+
* Some example presentations that discuss the Unix philosophy include:
64+
* [Unix Pipeline (Brian Kernighan) - Computerphile](https://www.youtube.com/watch?v=bKzonnwoR2I), which discusses the concept of the Unix pipe
65+
* [Bringing the Unix Philosophy to Big Data by Bryan Cantrill](https://www.youtube.com/watch?v=S0mviKhVmBI), which discusses the Unix philosophy in relation to big data
66+
* [Pycon UK 2016: Python and the Glories of the UNIX Tradition by Brandon Rhodes](https://www.youtube.com/watch?v=zFMdhXYlFfY), which discusses the Unix philosophy in relation to Python
5867

5968
#### Do One thing Well
6069

0 commit comments

Comments
 (0)