docs/unix-phil

diff 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 diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/unix-phil.ms	Fri Feb 05 11:09:35 2010 +0100
     1.3 @@ -0,0 +1,191 @@
     1.4 +.if n .pl 1000i
     1.5 +.de XX
     1.6 +.pl 1v
     1.7 +..
     1.8 +.em XX
     1.9 +.nr PI 0
    1.10 +.if t .nr PD .5v
    1.11 +.if n .nr PD 1v
    1.12 +.nr lu 0
    1.13 +.de CW
    1.14 +.nr PQ \\n(.f
    1.15 +.if t .ft CW
    1.16 +.ie \\$1 .if n .ul 999
    1.17 +.el .if n .ul 1
    1.18 +.if t .if !\\$1 \&\\$1\f\\n(PQ\\$2
    1.19 +.if n .if \\n(.$=1 \&\\$1
    1.20 +.if n .if \\n(.$>1 \&\\$1\c
    1.21 +.if n .if \\n(.$>1 \&\\$2
    1.22 +..
    1.23 +.ds [. \ [
    1.24 +.ds .] ]
    1.25 +.TL
    1.26 +Why the Unix Philosophy matters
    1.27 +.AU
    1.28 +markus schnalke <meillo@marmaro.de>
    1.29 +.\" .AI
    1.30 +.\" .ce 0
    1.31 +.\" .fi
    1.32 +.\" Der Autor liebt Unix und dessen Skripting-Möglichkeiten.
    1.33 +.\" So auch den Shebang-Mechanismus der die Ausführung von Skripten deutlich erleichtert.
    1.34 +.AB
    1.35 +This term paper discusses the importance of the Unix Philosophy in software design.
    1.36 +Today, few software designers are aware of these concepts,
    1.37 +and thus most modern software is limited and does not use software leverage.
    1.38 +Knowing and following the tenets of the Unix Philosophy makes software more valuable.
    1.39 +.AE
    1.40 +
    1.41 +.2C
    1.42 +.NH 1
    1.43 +Introduction
    1.44 +.LP
    1.45 +Building a software is a process from an idea of the purpose of the software
    1.46 +to the finished program.
    1.47 +No matter \fIhow\fP the process is run, two things are common:
    1.48 +the initial idea and the release.
    1.49 +But the the process inbetween can be of any shape.
    1.50 +The time of release and the maintainance work after the release are ignored here, for the moment.
    1.51 +.LP
    1.52 +The process of building splits mainly in two parts:
    1.53 +the planning of what and how to build, and implementing the plan by writing code.
    1.54 +This paper focuses on the planning \(en the design \(en of software.
    1.55 +The here discussed ideas may be applied to any development process.
    1.56 +Though the Unix Philosphy does recommend how the software development process should look like,
    1.57 +this shall not be of matter here.
    1.58 +Similar, the question of how to write the code is out of focus.
    1.59 +.LP
    1.60 +
    1.61 +
    1.62 +
    1.63 +
    1.64 +
    1.65 +.[
    1.66 +%O .CW http://en.wikipedia.org/wiki/Unix_philosophy
    1.67 +.]
    1.68 +
    1.69 +.NH 1
    1.70 +Importance of software design
    1.71 +.LP
    1.72 +why design at all
    1.73 +
    1.74 +- for dev mainly: extendability and maintainability
    1.75 +
    1.76 +- for users: usability and flexibility (but you need to learn how to use it)
    1.77 +
    1.78 +no design and bad design limit the use of software
    1.79 +
    1.80 +.NH 2
    1.81 +Architecture
    1.82 +.LP
    1.83 +the most important design decision.
    1.84 +
    1.85 +the topic here
    1.86 +
    1.87 +.NH 1
    1.88 +The Unix Philosophy
    1.89 +
    1.90 +.NH 2
    1.91 +what it is
    1.92 +.LP
    1.93 +definitions by McIlroy, Gancarz, ESR (maybe already in the intro)
    1.94 +.LP
    1.95 +cf. unix tool chain
    1.96 +.LP
    1.97 +enabler pipe
    1.98 +
    1.99 +.NH 2
   1.100 +Interface architecture
   1.101 +.LP
   1.102 +standalone vs. tool chain
   1.103 +.LP
   1.104 +software leverage
   1.105 +.LP
   1.106 +possiblities
   1.107 +
   1.108 +.NH 2
   1.109 +Results
   1.110 +.LP
   1.111 +The unix phil is an answer to the sw design question
   1.112 +.LP
   1.113 +tool chains empower the uses of sw
   1.114 +
   1.115 +.NH 1
   1.116 +Case study: nmh
   1.117 +
   1.118 +.NH 2
   1.119 +History
   1.120 +.LP
   1.121 +MH, nmh.
   1.122 +They are old.
   1.123 +
   1.124 +.NH 2
   1.125 +Contrasts to similar sw
   1.126 +.LP
   1.127 +vs. Thunderbird, mutt, mailx, pine
   1.128 +.LP
   1.129 +flexibility, no redundancy, use the shell
   1.130 +
   1.131 +.NH 2
   1.132 +Gains of the design
   1.133 +.LP
   1.134 +
   1.135 +.NH 2
   1.136 +Problems
   1.137 +.LP
   1.138 +
   1.139 +.NH 1
   1.140 +Case study: uzbl
   1.141 +
   1.142 +.NH 2
   1.143 +History
   1.144 +.LP
   1.145 +uzbl is young
   1.146 +
   1.147 +.NH 2
   1.148 +Contrasts to similar sw
   1.149 +.LP
   1.150 +like with nmh
   1.151 +.LP
   1.152 +addons, plugins, modules
   1.153 +
   1.154 +.NH 2
   1.155 +Gains of the design
   1.156 +.LP
   1.157 +
   1.158 +.NH 2
   1.159 +Problems
   1.160 +.LP
   1.161 +broken web
   1.162 +
   1.163 +.NH 1
   1.164 +Final thoughts
   1.165 +
   1.166 +.NH 2
   1.167 +Quick summary
   1.168 +.LP
   1.169 +good design
   1.170 +.LP
   1.171 +unix phil
   1.172 +.LP
   1.173 +case studies
   1.174 +
   1.175 +.NH 2
   1.176 +Why people should choose
   1.177 +.LP
   1.178 +Make the right choice!
   1.179 +
   1.180 +.nr PI .5i
   1.181 +.rm ]<
   1.182 +.de ]<
   1.183 +.LP
   1.184 +.de FP
   1.185 +.IP \\\\$1.
   1.186 +\\..
   1.187 +.rm FS FE
   1.188 +..
   1.189 +.SH
   1.190 +References
   1.191 +.[
   1.192 +$LIST$
   1.193 +.]
   1.194 +.wh -1p