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 wrap: on
line diff
--- a/unix-phil.ms	Thu Apr 08 16:47:11 2010 +0200
+++ b/unix-phil.ms	Thu Apr 08 23:11:28 2010 +0200
@@ -49,30 +49,27 @@
 .NH 1
 Introduction
 .LP
-Building a software is a process from an idea of the purpose of the software
-to its release.
-No matter \fIhow\fP the process is run, two things are common:
-the initial idea and the release.
-The process in between can be of any shape.
-The the maintenance work after the release is ignored for the moment.
-.PP
-The process of building splits mainly in two parts:
-the planning of what and how to build, and implementing the plan by writing code.
-This paper focuses on the planning part \(en the designing of the software.
+The Unix Philosophy is the essence of how the Unix operating system,
+especially its toolchest, was designed.
+It is no limited set of fixed rules,
+but a loose set of guidelines which tell how to write software that
+suites well into Unix.
+Actually, the Unix Philosophy describes what is common to typical Unix software.
+The Wikipedia has an accurate definition:
+.[
+%A Wikipedia
+%T Unix philosophy
+%P Wikipedia, The Free Encyclopedia
+%D 2010-03-21 17:20 UTC
+%O .CW \s-1http://en.wikipedia.org/w/index.php?title=Unix_philosophy&oldid=351189719
+.]
+.QP
+The \fIUnix philosophy\fP is a set of cultural norms and philosophical
+approaches to developing software based on the experience of leading
+developers of the Unix operating system.
 .PP
-Software design is the plan of how the internals and externals of the software should look like,
-based on the requirements.
-This paper discusses the recommendations of the Unix Philosophy about software design.
-.PP
-The here discussed ideas can get applied by any development process.
-The Unix Philosophy does recommend how the software development process should look like,
-but this shall not be of matter here.
-Similar, the question of how to write the code is out of focus.
-.PP
-The name ``Unix Philosophy'' was already mentioned several times, but it was not explained yet.
-The Unix Philosophy is the essence of how the Unix operating system and its toolchest was designed.
-It is no limited set of rules, but what people see to be common to typical Unix software.
-Several people stated their view on the Unix Philosophy.
+As there is no single definition of the Unix Philosophy,
+several people have stated their view on what it comprises.
 Best known are:
 .IP \(bu
 Doug McIlroy's summary: ``Write programs that do one thing and do it well.''
@@ -106,12 +103,24 @@
 .]
 .LP
 These different views on the Unix Philosophy have much in common.
-Especially, the main concepts are similar for all of them.
-But there are also points on which they differ.
-This only underlines what the Unix Philosophy is:
-A retrospective view on the main concepts of Unix software;
-especially those that were successful and unique to Unix.
-.\" really?
+Especially, the main concepts are similar in all of them.
+McIlroy's definition can surely be called the core of the Unix Philosophy,
+but the fundamental idea behind it all, is ``small is beautiful''.
+
+.PP
+The Unix Philosophy tells how to design and write good software for Unix.
+Many concepts described here base on facilities of Unix.
+Other operating systems may not offer such facilities,
+hence it may not be possible to design software is the way of the Unix Philosophy.
+
+FIXME
+
+This paper discusses the recommendations of the Unix Philosophy about software design.
+.PP
+The here discussed ideas can get applied by any development process.
+The Unix Philosophy does recommend how the software development process should look like,
+but this shall not be of matter here.
+Similar, the question of how to write the code is out of focus.
 .PP
 Before we will have a look at concrete concepts,
 we discuss why software design is important
@@ -121,8 +130,8 @@
 .NH 1
 Importance of software design in general
 .LP
-The design of a software describes its internal and external shape,
-meaning structure and interfaces.
+Software design is the planning of how the internal structure
+and external interfaces of a software should look like.
 It has nothing to do with visual appearance.
 If we take a program as a car, then its color is of no matter.
 Its design would be the car's size, its shape, the locations of doors,