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