docs/unix-phil

view unix-phil-slides2.ms @ 57:840cbc667009

applied corrections by Andrew Antle
author meillo@marmaro.de
date Fri, 16 Apr 2010 11:48:38 +0200
parents
children 38261031d742
line source
1 .ps 11
2 .ce
3 Seminar ``Software Analysis''
4 .TL
5 \fR\s-6Why\s0\fP
6 .br
7 the Unix Philosophy
8 .br
9 .vs -4
10 \fR\s-6still matters\s0\fP
11 .AU
12 .ft R
13 .sp .5i
14 .sp .5i
15 .ps 11
16 markus schnalke <meillo@marmaro.de>
19 .S "Software design
20 .rs
21 .sp
22 .LP
23 \&... is about quality
24 .I
25 Good design \(-> good quality
26 .I
27 Bad design \(-> problems
28 .sp
29 .LP
30 \&... and consistency
31 .LP
32 .sp 2
33 Unix Phil = guidelines for good design
37 .S "The Unix Phil *itself*
38 .rs
39 .sp
40 .LP
41 Wikipedia:
42 .ce 99
43 .sp
44 The Unix philosophy is
45 a set of cultural norms and philosophical approaches
46 to developing software
47 based on the experience
48 of leading developers of the Unix operating system.
49 .sp
52 .S "Unix Phil and Software dev processes
53 .rs
54 .sp
55 .LP
56 The Unix Phil:
57 .I
58 mostly *what*
60 .sp
61 .LP
62 Software dev processes:
63 .I
64 mostly *how*
65 .sp 2
66 .LP
67 Extreme Programming and the Unix Phil
68 are good friends
72 .S "The Unix Phil by Doug McIlroy (1978)
73 .rs
74 .sp
75 .LP
76 This is the Unix philosophy:
77 .I
78 Write programs that do one thing and do it well.
79 .I
80 Write programs to work together.
81 .I
82 Write programs to handle text streams, because that is a universal interface.
85 .S "The Unix Phil by Mike Gancarz (1995)
86 .rs
87 .sp .2v
88 .I
89 Small is beautiful.
90 .I
91 Make each program do one thing well.
92 .I
93 Build a prototype as soon as possible.
94 .I
95 Choose portability over efficiency.
96 .I
97 Store data in flat text files.
98 .I
99 Use software leverage to your advantage.
100 .I
101 Use shell scripts to increase leverage and portability.
102 .I
103 Avoid captive user interfaces.
104 .I
105 Make every program a filter.
106 .sp 1
107 .LP
108 Plus ten lesser tenets
113 .S "Case studies
114 .LP
115 .B "MH / nmh
116 .LP
117 The only MUA that is a toolchest
118 .LP
119 Makes use of the powerful shell
120 .LP
121 Great example of applied Unix Phil
123 .sp 1
124 .LP
125 .B uzbl
126 .LP
127 A web browser that adheres to the Unix Phil
128 .LP
129 Central question:
130 .br
131 What is the one thing a web browser should do well?
132 .LP
133 Makes very visible use of software leverage
139 .S "Why?
140 .rs
141 .sp
142 .LP
143 .ce
144 We don't need just any solutions, we need good ones
146 .sp 3
147 .LP
148 .ce
149 Avoid \fBcomplexity\fP first and foremost!
150 .LP
151 .ce
152 Exploit software \fBleverage\fP!
155 .S "Further reading
156 .LP
157 The paper to the slides
158 .sp
159 .LP
160 My talk on this topic at the ChaosSeminar of CCC Ulm
161 .CW \s-2http://ulm.ccc.de/ChaosSeminar/2010/03_UnixPhil\s0
162 .sp
163 .LP
164 Mike Gancarz' book
165 \fI``The Unix Philosophy''\fP
166 .sp
167 .LP
168 \fI``cat -v Considered Harmful''\fP
169 by Pike and Kernighan
170 .CW \s-2http://harmful.cat-v.org/cat-v/\s+2
173 .S Colophon
174 .LP
175 The paper and slides were prepared with:
176 .br
177 .CW "vi sed awk refer troff dpost spell make hg
179 .sp
180 .LP
181 Most of the tools are from
182 .CW \s-2http://heirloom.sf.net\s0
183 .LP
184 The `slides' macros are based on
185 .br
186 .CW \s-2http://repo.cat-v.org/troff-slider/\s0
187 .sp 2
189 .LP
190 The paper, the slides, and the complete sources are available on my website
191 .CW \s-2http://marmaro.de/docs\s+2
193 .sp 3
194 2010-04-16