docs/unix-phil
changeset 0:cecef8bfa812
early version, mainly the outline
author | meillo@marmaro.de |
---|---|
date | Fri, 05 Feb 2010 11:09:35 +0100 |
parents | |
children | 9b555c009f19 |
files | makefile unix-phil.ms |
diffstat | 2 files changed, 198 insertions(+), 0 deletions(-) [+] |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/makefile Fri Feb 05 11:09:35 2010 +0100 1.3 @@ -0,0 +1,7 @@ 1.4 +all: unix-phil.ps unix-phil.txt 1.5 + 1.6 +unix-phil.ps: unix-phil.ms 1.7 + sh -c "`doctype unix-phil.ms`" >unix-phil.ps 1.8 + 1.9 +unix-phil.txt: unix-phil.ms 1.10 + sh -c "`doctype -n unix-phil.ms`" >unix-phil.txt
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/unix-phil.ms Fri Feb 05 11:09:35 2010 +0100 2.3 @@ -0,0 +1,191 @@ 2.4 +.if n .pl 1000i 2.5 +.de XX 2.6 +.pl 1v 2.7 +.. 2.8 +.em XX 2.9 +.nr PI 0 2.10 +.if t .nr PD .5v 2.11 +.if n .nr PD 1v 2.12 +.nr lu 0 2.13 +.de CW 2.14 +.nr PQ \\n(.f 2.15 +.if t .ft CW 2.16 +.ie \\$1 .if n .ul 999 2.17 +.el .if n .ul 1 2.18 +.if t .if !\\$1 \&\\$1\f\\n(PQ\\$2 2.19 +.if n .if \\n(.$=1 \&\\$1 2.20 +.if n .if \\n(.$>1 \&\\$1\c 2.21 +.if n .if \\n(.$>1 \&\\$2 2.22 +.. 2.23 +.ds [. \ [ 2.24 +.ds .] ] 2.25 +.TL 2.26 +Why the Unix Philosophy matters 2.27 +.AU 2.28 +markus schnalke <meillo@marmaro.de> 2.29 +.\" .AI 2.30 +.\" .ce 0 2.31 +.\" .fi 2.32 +.\" Der Autor liebt Unix und dessen Skripting-Möglichkeiten. 2.33 +.\" So auch den Shebang-Mechanismus der die Ausführung von Skripten deutlich erleichtert. 2.34 +.AB 2.35 +This term paper discusses the importance of the Unix Philosophy in software design. 2.36 +Today, few software designers are aware of these concepts, 2.37 +and thus most modern software is limited and does not use software leverage. 2.38 +Knowing and following the tenets of the Unix Philosophy makes software more valuable. 2.39 +.AE 2.40 + 2.41 +.2C 2.42 +.NH 1 2.43 +Introduction 2.44 +.LP 2.45 +Building a software is a process from an idea of the purpose of the software 2.46 +to the finished program. 2.47 +No matter \fIhow\fP the process is run, two things are common: 2.48 +the initial idea and the release. 2.49 +But the the process inbetween can be of any shape. 2.50 +The time of release and the maintainance work after the release are ignored here, for the moment. 2.51 +.LP 2.52 +The process of building splits mainly in two parts: 2.53 +the planning of what and how to build, and implementing the plan by writing code. 2.54 +This paper focuses on the planning \(en the design \(en of software. 2.55 +The here discussed ideas may be applied to any development process. 2.56 +Though the Unix Philosphy does recommend how the software development process should look like, 2.57 +this shall not be of matter here. 2.58 +Similar, the question of how to write the code is out of focus. 2.59 +.LP 2.60 + 2.61 + 2.62 + 2.63 + 2.64 + 2.65 +.[ 2.66 +%O .CW http://en.wikipedia.org/wiki/Unix_philosophy 2.67 +.] 2.68 + 2.69 +.NH 1 2.70 +Importance of software design 2.71 +.LP 2.72 +why design at all 2.73 + 2.74 +- for dev mainly: extendability and maintainability 2.75 + 2.76 +- for users: usability and flexibility (but you need to learn how to use it) 2.77 + 2.78 +no design and bad design limit the use of software 2.79 + 2.80 +.NH 2 2.81 +Architecture 2.82 +.LP 2.83 +the most important design decision. 2.84 + 2.85 +the topic here 2.86 + 2.87 +.NH 1 2.88 +The Unix Philosophy 2.89 + 2.90 +.NH 2 2.91 +what it is 2.92 +.LP 2.93 +definitions by McIlroy, Gancarz, ESR (maybe already in the intro) 2.94 +.LP 2.95 +cf. unix tool chain 2.96 +.LP 2.97 +enabler pipe 2.98 + 2.99 +.NH 2 2.100 +Interface architecture 2.101 +.LP 2.102 +standalone vs. tool chain 2.103 +.LP 2.104 +software leverage 2.105 +.LP 2.106 +possiblities 2.107 + 2.108 +.NH 2 2.109 +Results 2.110 +.LP 2.111 +The unix phil is an answer to the sw design question 2.112 +.LP 2.113 +tool chains empower the uses of sw 2.114 + 2.115 +.NH 1 2.116 +Case study: nmh 2.117 + 2.118 +.NH 2 2.119 +History 2.120 +.LP 2.121 +MH, nmh. 2.122 +They are old. 2.123 + 2.124 +.NH 2 2.125 +Contrasts to similar sw 2.126 +.LP 2.127 +vs. Thunderbird, mutt, mailx, pine 2.128 +.LP 2.129 +flexibility, no redundancy, use the shell 2.130 + 2.131 +.NH 2 2.132 +Gains of the design 2.133 +.LP 2.134 + 2.135 +.NH 2 2.136 +Problems 2.137 +.LP 2.138 + 2.139 +.NH 1 2.140 +Case study: uzbl 2.141 + 2.142 +.NH 2 2.143 +History 2.144 +.LP 2.145 +uzbl is young 2.146 + 2.147 +.NH 2 2.148 +Contrasts to similar sw 2.149 +.LP 2.150 +like with nmh 2.151 +.LP 2.152 +addons, plugins, modules 2.153 + 2.154 +.NH 2 2.155 +Gains of the design 2.156 +.LP 2.157 + 2.158 +.NH 2 2.159 +Problems 2.160 +.LP 2.161 +broken web 2.162 + 2.163 +.NH 1 2.164 +Final thoughts 2.165 + 2.166 +.NH 2 2.167 +Quick summary 2.168 +.LP 2.169 +good design 2.170 +.LP 2.171 +unix phil 2.172 +.LP 2.173 +case studies 2.174 + 2.175 +.NH 2 2.176 +Why people should choose 2.177 +.LP 2.178 +Make the right choice! 2.179 + 2.180 +.nr PI .5i 2.181 +.rm ]< 2.182 +.de ]< 2.183 +.LP 2.184 +.de FP 2.185 +.IP \\\\$1. 2.186 +\\.. 2.187 +.rm FS FE 2.188 +.. 2.189 +.SH 2.190 +References 2.191 +.[ 2.192 +$LIST$ 2.193 +.] 2.194 +.wh -1p