docs/unix-phil

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