Mercurial > docs > unix-phil
comparison unix-phil.ms @ 40:422679bdf384
rework in ch01
author | meillo@marmaro.de |
---|---|
date | Thu, 08 Apr 2010 23:11:28 +0200 |
parents | c87143793d82 |
children | 13ef7042fa28 |
comparison
equal
deleted
inserted
replaced
39:c87143793d82 | 40:422679bdf384 |
---|---|
47 .FE | 47 .FE |
48 | 48 |
49 .NH 1 | 49 .NH 1 |
50 Introduction | 50 Introduction |
51 .LP | 51 .LP |
52 Building a software is a process from an idea of the purpose of the software | 52 The Unix Philosophy is the essence of how the Unix operating system, |
53 to its release. | 53 especially its toolchest, was designed. |
54 No matter \fIhow\fP the process is run, two things are common: | 54 It is no limited set of fixed rules, |
55 the initial idea and the release. | 55 but a loose set of guidelines which tell how to write software that |
56 The process in between can be of any shape. | 56 suites well into Unix. |
57 The the maintenance work after the release is ignored for the moment. | 57 Actually, the Unix Philosophy describes what is common to typical Unix software. |
58 .PP | 58 The Wikipedia has an accurate definition: |
59 The process of building splits mainly in two parts: | 59 .[ |
60 the planning of what and how to build, and implementing the plan by writing code. | 60 %A Wikipedia |
61 This paper focuses on the planning part \(en the designing of the software. | 61 %T Unix philosophy |
62 .PP | 62 %P Wikipedia, The Free Encyclopedia |
63 Software design is the plan of how the internals and externals of the software should look like, | 63 %D 2010-03-21 17:20 UTC |
64 based on the requirements. | 64 %O .CW \s-1http://en.wikipedia.org/w/index.php?title=Unix_philosophy&oldid=351189719 |
65 This paper discusses the recommendations of the Unix Philosophy about software design. | 65 .] |
66 .PP | 66 .QP |
67 The here discussed ideas can get applied by any development process. | 67 The \fIUnix philosophy\fP is a set of cultural norms and philosophical |
68 The Unix Philosophy does recommend how the software development process should look like, | 68 approaches to developing software based on the experience of leading |
69 but this shall not be of matter here. | 69 developers of the Unix operating system. |
70 Similar, the question of how to write the code is out of focus. | 70 .PP |
71 .PP | 71 As there is no single definition of the Unix Philosophy, |
72 The name ``Unix Philosophy'' was already mentioned several times, but it was not explained yet. | 72 several people have stated their view on what it comprises. |
73 The Unix Philosophy is the essence of how the Unix operating system and its toolchest was designed. | |
74 It is no limited set of rules, but what people see to be common to typical Unix software. | |
75 Several people stated their view on the Unix Philosophy. | |
76 Best known are: | 73 Best known are: |
77 .IP \(bu | 74 .IP \(bu |
78 Doug McIlroy's summary: ``Write programs that do one thing and do it well.'' | 75 Doug McIlroy's summary: ``Write programs that do one thing and do it well.'' |
79 .[ | 76 .[ |
80 %A M. D. McIlroy | 77 %A M. D. McIlroy |
104 %I Addison-Wesley | 101 %I Addison-Wesley |
105 %O .CW \s-1http://www.faqs.org/docs/artu/ | 102 %O .CW \s-1http://www.faqs.org/docs/artu/ |
106 .] | 103 .] |
107 .LP | 104 .LP |
108 These different views on the Unix Philosophy have much in common. | 105 These different views on the Unix Philosophy have much in common. |
109 Especially, the main concepts are similar for all of them. | 106 Especially, the main concepts are similar in all of them. |
110 But there are also points on which they differ. | 107 McIlroy's definition can surely be called the core of the Unix Philosophy, |
111 This only underlines what the Unix Philosophy is: | 108 but the fundamental idea behind it all, is ``small is beautiful''. |
112 A retrospective view on the main concepts of Unix software; | 109 |
113 especially those that were successful and unique to Unix. | 110 .PP |
114 .\" really? | 111 The Unix Philosophy tells how to design and write good software for Unix. |
112 Many concepts described here base on facilities of Unix. | |
113 Other operating systems may not offer such facilities, | |
114 hence it may not be possible to design software is the way of the Unix Philosophy. | |
115 | |
116 FIXME | |
117 | |
118 This paper discusses the recommendations of the Unix Philosophy about software design. | |
119 .PP | |
120 The here discussed ideas can get applied by any development process. | |
121 The Unix Philosophy does recommend how the software development process should look like, | |
122 but this shall not be of matter here. | |
123 Similar, the question of how to write the code is out of focus. | |
115 .PP | 124 .PP |
116 Before we will have a look at concrete concepts, | 125 Before we will have a look at concrete concepts, |
117 we discuss why software design is important | 126 we discuss why software design is important |
118 and what problems bad design introduces. | 127 and what problems bad design introduces. |
119 | 128 |
120 | 129 |
121 .NH 1 | 130 .NH 1 |
122 Importance of software design in general | 131 Importance of software design in general |
123 .LP | 132 .LP |
124 The design of a software describes its internal and external shape, | 133 Software design is the planning of how the internal structure |
125 meaning structure and interfaces. | 134 and external interfaces of a software should look like. |
126 It has nothing to do with visual appearance. | 135 It has nothing to do with visual appearance. |
127 If we take a program as a car, then its color is of no matter. | 136 If we take a program as a car, then its color is of no matter. |
128 Its design would be the car's size, its shape, the locations of doors, | 137 Its design would be the car's size, its shape, the locations of doors, |
129 the passenger/space ratio, the luggage capacity, and so forth. | 138 the passenger/space ratio, the luggage capacity, and so forth. |
130 .PP | 139 .PP |