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