comparison unix-phil.ms @ 1:9b555c009f19

further text in intro
author meillo@marmaro.de
date Fri, 05 Feb 2010 14:06:43 +0100
parents cecef8bfa812
children fbd7baf6a61f
comparison
equal deleted inserted replaced
0:cecef8bfa812 1:9b555c009f19
1 .if n .pl 1000i 1 .if n .pl 1000i
2 .de XX 2 .de XX
3 .pl 1v 3 .pl 1v
4 .. 4 ..
5 .em XX 5 .em XX
6 .nr PI 0 6 .\".nr PI 0
7 .if t .nr PD .5v 7 .\".if t .nr PD .5v
8 .if n .nr PD 1v 8 .\".if n .nr PD 1v
9 .nr lu 0 9 .nr lu 0
10 .de CW 10 .de CW
11 .nr PQ \\n(.f 11 .nr PQ \\n(.f
12 .if t .ft CW 12 .if t .ft CW
13 .ie \\$1 .if n .ul 999 13 .ie \\$1 .if n .ul 999
17 .if n .if \\n(.$>1 \&\\$1\c 17 .if n .if \\n(.$>1 \&\\$1\c
18 .if n .if \\n(.$>1 \&\\$2 18 .if n .if \\n(.$>1 \&\\$2
19 .. 19 ..
20 .ds [. \ [ 20 .ds [. \ [
21 .ds .] ] 21 .ds .] ]
22 .\"----------------------------------------
22 .TL 23 .TL
23 Why the Unix Philosophy matters 24 Why the Unix Philosophy matters
24 .AU 25 .AU
25 markus schnalke <meillo@marmaro.de> 26 markus schnalke <meillo@marmaro.de>
26 .\" .AI 27 .AI
27 .\" .ce 0 28 .ce 0
28 .\" .fi 29 University Ulm
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 30 .AB
31 .ti \n(.iu
32 This term paper discusses the importance of the Unix Philosophy in software design. 32 This term paper discusses the importance of the Unix Philosophy in software design.
33 Today, few software designers are aware of these concepts, 33 Today, few software designers are aware of these concepts,
34 and thus most modern software is limited and does not use software leverage. 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. 35 Knowing and following the tenets of the Unix Philosophy makes software more valuable.
36 .AE 36 .AE
43 to the finished program. 43 to the finished program.
44 No matter \fIhow\fP the process is run, two things are common: 44 No matter \fIhow\fP the process is run, two things are common:
45 the initial idea and the release. 45 the initial idea and the release.
46 But the the process inbetween can be of any shape. 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. 47 The time of release and the maintainance work after the release are ignored here, for the moment.
48 .LP 48 .PP
49 The process of building splits mainly in two parts: 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. 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. 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. 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, 53 Though the Unix Philosphy does recommend how the software development process should look like,
54 this shall not be of matter here. 54 this shall not be of matter here.
55 Similar, the question of how to write the code is out of focus. 55 Similar, the question of how to write the code is out of focus.
56 .LP 56 .PP
57 57 This paper discusses the connection between software design and the Unix Philosphy.
58 58 Software design is the work between the requirements and the plan of how the internals and externals
59 59 of the software should look like.
60 60 However, the term ``Unix Philosophy'' was used but not explained yet.
61 61 .PP
62 .[ 62 The Unix Philosophy is the essence of how the Unix operating system and its toolchest was designed.
63 %O .CW http://en.wikipedia.org/wiki/Unix_philosophy 63 It is no limited set of rules, but what people see what is common to typical Unix software.
64 .] 64 Several people stated their view on the Unix Philosophy.
65 Best known are:
66 .IP \(bu
67 Doug McIlroy's summary: ``Write programs that do one thing and do it well.''
68 .[
69 %A M. D. McIlroy
70 %A E. N. Pinson
71 %A B. A. Taque
72 %T UNIX Time-Sharing System Forward
73 %J The Bell System Technical Journal
74 %D 1978
75 %V 57
76 %N 6
77 %P 1902
78 .]
79 .IP \(bu
80 Mike Gancarz' book ``The UNIX Philosophy''.
81 .[
82 %A Mike Gancarz
83 %T The UNIX Philosophy
84 %D 1995
85 %I Digital Press
86 .]
87 .IP \(bu
88 Eric S. Raymond's book ``The Art of UNIX Programming''.
89 .[
90 %A Eric S. Raymond
91 %T The Art of UNIX Programming
92 %D 2003
93 %I Addison-Wesley
94 %O .CW \s-2http://www.faqs.org/docs/artu/
95 .]
96 .LP
97 These different views on the Unix Philosophy have much in common.
98 Especially, the main concepts are seen by all of them.
99 But there are also points on which they differ.
100 This only underlines what the Unix Philosophy is:
101 A retrospective view on the main concepts of Unix software;
102 especially those that were sucessful and unique to Unix.
103 .PP
104 Before we will have a look at concrete concepts,
105 we discuss why software design is important
106 and what problems bad design introduces.
107
65 108
66 .NH 1 109 .NH 1
67 Importance of software design 110 Importance of software design
68 .LP 111 .LP
69 why design at all 112 why design at all