annotate unix-phil.ms @ 0:cecef8bfa812

early version, mainly the outline
author meillo@marmaro.de
date Fri, 05 Feb 2010 11:09:35 +0100
parents
children 9b555c009f19
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
1 .if n .pl 1000i
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
2 .de XX
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
3 .pl 1v
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
4 ..
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
5 .em XX
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
6 .nr PI 0
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
7 .if t .nr PD .5v
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
8 .if n .nr PD 1v
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
9 .nr lu 0
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
10 .de CW
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
11 .nr PQ \\n(.f
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
12 .if t .ft CW
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
13 .ie \\$1 .if n .ul 999
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
14 .el .if n .ul 1
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
15 .if t .if !\\$1 \&\\$1\f\\n(PQ\\$2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
16 .if n .if \\n(.$=1 \&\\$1
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
17 .if n .if \\n(.$>1 \&\\$1\c
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
18 .if n .if \\n(.$>1 \&\\$2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
19 ..
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
20 .ds [. \ [
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
21 .ds .] ]
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
22 .TL
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
23 Why the Unix Philosophy matters
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
24 .AU
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
25 markus schnalke <meillo@marmaro.de>
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
26 .\" .AI
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
27 .\" .ce 0
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
28 .\" .fi
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
29 .\" Der Autor liebt Unix und dessen Skripting-Möglichkeiten.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
30 .\" So auch den Shebang-Mechanismus der die Ausführung von Skripten deutlich erleichtert.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
31 .AB
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
32 This term paper discusses the importance of the Unix Philosophy in software design.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
33 Today, few software designers are aware of these concepts,
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
34 and thus most modern software is limited and does not use software leverage.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
35 Knowing and following the tenets of the Unix Philosophy makes software more valuable.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
36 .AE
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
37
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
38 .2C
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
39 .NH 1
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
40 Introduction
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
41 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
42 Building a software is a process from an idea of the purpose of the software
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
43 to the finished program.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
44 No matter \fIhow\fP the process is run, two things are common:
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
45 the initial idea and the release.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
46 But the the process inbetween can be of any shape.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
47 The time of release and the maintainance work after the release are ignored here, for the moment.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
48 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
49 The process of building splits mainly in two parts:
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
50 the planning of what and how to build, and implementing the plan by writing code.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
51 This paper focuses on the planning \(en the design \(en of software.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
52 The here discussed ideas may be applied to any development process.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
53 Though the Unix Philosphy does recommend how the software development process should look like,
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
54 this shall not be of matter here.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
55 Similar, the question of how to write the code is out of focus.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
56 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
57
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
58
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
59
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
60
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
61
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
62 .[
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
63 %O .CW http://en.wikipedia.org/wiki/Unix_philosophy
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
64 .]
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
65
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
66 .NH 1
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
67 Importance of software design
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
68 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
69 why design at all
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
70
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
71 - for dev mainly: extendability and maintainability
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
72
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
73 - for users: usability and flexibility (but you need to learn how to use it)
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
74
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
75 no design and bad design limit the use of software
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
76
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
77 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
78 Architecture
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
79 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
80 the most important design decision.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
81
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
82 the topic here
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
83
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
84 .NH 1
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
85 The Unix Philosophy
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
86
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
87 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
88 what it is
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
89 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
90 definitions by McIlroy, Gancarz, ESR (maybe already in the intro)
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
91 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
92 cf. unix tool chain
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
93 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
94 enabler pipe
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
95
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
96 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
97 Interface architecture
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
98 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
99 standalone vs. tool chain
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
100 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
101 software leverage
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
102 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
103 possiblities
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
104
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
105 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
106 Results
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
107 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
108 The unix phil is an answer to the sw design question
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
109 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
110 tool chains empower the uses of sw
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
111
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
112 .NH 1
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
113 Case study: nmh
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
114
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
115 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
116 History
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
117 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
118 MH, nmh.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
119 They are old.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
120
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
121 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
122 Contrasts to similar sw
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
123 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
124 vs. Thunderbird, mutt, mailx, pine
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
125 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
126 flexibility, no redundancy, use the shell
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
127
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
128 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
129 Gains of the design
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
130 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
131
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
132 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
133 Problems
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
134 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
135
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
136 .NH 1
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
137 Case study: uzbl
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
138
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
139 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
140 History
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
141 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
142 uzbl is young
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
143
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
144 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
145 Contrasts to similar sw
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
146 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
147 like with nmh
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
148 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
149 addons, plugins, modules
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
150
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
151 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
152 Gains of the design
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
153 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
154
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
155 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
156 Problems
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
157 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
158 broken web
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
159
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
160 .NH 1
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
161 Final thoughts
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
162
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
163 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
164 Quick summary
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
165 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
166 good design
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
167 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
168 unix phil
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
169 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
170 case studies
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
171
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
172 .NH 2
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
173 Why people should choose
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
174 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
175 Make the right choice!
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
176
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
177 .nr PI .5i
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
178 .rm ]<
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
179 .de ]<
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
180 .LP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
181 .de FP
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
182 .IP \\\\$1.
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
183 \\..
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
184 .rm FS FE
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
185 ..
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
186 .SH
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
187 References
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
188 .[
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
189 $LIST$
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
190 .]
cecef8bfa812 early version, mainly the outline
meillo@marmaro.de
parents:
diff changeset
191 .wh -1p