docs/unix-phil
changeset 40:422679bdf384
rework in ch01
author | meillo@marmaro.de |
---|---|
date | Thu, 08 Apr 2010 23:11:28 +0200 |
parents | c87143793d82 |
children | 13ef7042fa28 |
files | unix-phil.ms |
diffstat | 1 files changed, 40 insertions(+), 31 deletions(-) [+] |
line diff
1.1 --- a/unix-phil.ms Thu Apr 08 16:47:11 2010 +0200 1.2 +++ b/unix-phil.ms Thu Apr 08 23:11:28 2010 +0200 1.3 @@ -49,30 +49,27 @@ 1.4 .NH 1 1.5 Introduction 1.6 .LP 1.7 -Building a software is a process from an idea of the purpose of the software 1.8 -to its release. 1.9 -No matter \fIhow\fP the process is run, two things are common: 1.10 -the initial idea and the release. 1.11 -The process in between can be of any shape. 1.12 -The the maintenance work after the release is ignored for the moment. 1.13 +The Unix Philosophy is the essence of how the Unix operating system, 1.14 +especially its toolchest, was designed. 1.15 +It is no limited set of fixed rules, 1.16 +but a loose set of guidelines which tell how to write software that 1.17 +suites well into Unix. 1.18 +Actually, the Unix Philosophy describes what is common to typical Unix software. 1.19 +The Wikipedia has an accurate definition: 1.20 +.[ 1.21 +%A Wikipedia 1.22 +%T Unix philosophy 1.23 +%P Wikipedia, The Free Encyclopedia 1.24 +%D 2010-03-21 17:20 UTC 1.25 +%O .CW \s-1http://en.wikipedia.org/w/index.php?title=Unix_philosophy&oldid=351189719 1.26 +.] 1.27 +.QP 1.28 +The \fIUnix philosophy\fP is a set of cultural norms and philosophical 1.29 +approaches to developing software based on the experience of leading 1.30 +developers of the Unix operating system. 1.31 .PP 1.32 -The process of building splits mainly in two parts: 1.33 -the planning of what and how to build, and implementing the plan by writing code. 1.34 -This paper focuses on the planning part \(en the designing of the software. 1.35 -.PP 1.36 -Software design is the plan of how the internals and externals of the software should look like, 1.37 -based on the requirements. 1.38 -This paper discusses the recommendations of the Unix Philosophy about software design. 1.39 -.PP 1.40 -The here discussed ideas can get applied by any development process. 1.41 -The Unix Philosophy does recommend how the software development process should look like, 1.42 -but this shall not be of matter here. 1.43 -Similar, the question of how to write the code is out of focus. 1.44 -.PP 1.45 -The name ``Unix Philosophy'' was already mentioned several times, but it was not explained yet. 1.46 -The Unix Philosophy is the essence of how the Unix operating system and its toolchest was designed. 1.47 -It is no limited set of rules, but what people see to be common to typical Unix software. 1.48 -Several people stated their view on the Unix Philosophy. 1.49 +As there is no single definition of the Unix Philosophy, 1.50 +several people have stated their view on what it comprises. 1.51 Best known are: 1.52 .IP \(bu 1.53 Doug McIlroy's summary: ``Write programs that do one thing and do it well.'' 1.54 @@ -106,12 +103,24 @@ 1.55 .] 1.56 .LP 1.57 These different views on the Unix Philosophy have much in common. 1.58 -Especially, the main concepts are similar for all of them. 1.59 -But there are also points on which they differ. 1.60 -This only underlines what the Unix Philosophy is: 1.61 -A retrospective view on the main concepts of Unix software; 1.62 -especially those that were successful and unique to Unix. 1.63 -.\" really? 1.64 +Especially, the main concepts are similar in all of them. 1.65 +McIlroy's definition can surely be called the core of the Unix Philosophy, 1.66 +but the fundamental idea behind it all, is ``small is beautiful''. 1.67 + 1.68 +.PP 1.69 +The Unix Philosophy tells how to design and write good software for Unix. 1.70 +Many concepts described here base on facilities of Unix. 1.71 +Other operating systems may not offer such facilities, 1.72 +hence it may not be possible to design software is the way of the Unix Philosophy. 1.73 + 1.74 +FIXME 1.75 + 1.76 +This paper discusses the recommendations of the Unix Philosophy about software design. 1.77 +.PP 1.78 +The here discussed ideas can get applied by any development process. 1.79 +The Unix Philosophy does recommend how the software development process should look like, 1.80 +but this shall not be of matter here. 1.81 +Similar, the question of how to write the code is out of focus. 1.82 .PP 1.83 Before we will have a look at concrete concepts, 1.84 we discuss why software design is important 1.85 @@ -121,8 +130,8 @@ 1.86 .NH 1 1.87 Importance of software design in general 1.88 .LP 1.89 -The design of a software describes its internal and external shape, 1.90 -meaning structure and interfaces. 1.91 +Software design is the planning of how the internal structure 1.92 +and external interfaces of a software should look like. 1.93 It has nothing to do with visual appearance. 1.94 If we take a program as a car, then its color is of no matter. 1.95 Its design would be the car's size, its shape, the locations of doors,