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