Mercurial > docs > unix-phil
view unix-phil-slides2.ms @ 62:ad7c253bdced default tip
modified macros for better page layout
author | meillo@marmaro.de |
---|---|
date | Sun, 18 Apr 2010 20:44:52 +0200 |
parents | 38261031d742 |
children |
line wrap: on
line source
.ps 11 .ce Seminar ``Software Analysis'' .TL \fR\s-6Why\s0\fP .br the Unix Philosophy .br .vs -4 \fR\s-6still matters\s0\fP .AU .ft R .sp .5i .sp .5i .ps 11 markus schnalke <meillo@marmaro.de> .S "Software design .rs .sp .LP \&... is about quality .I Good design \(-> good quality .I Bad design \(-> problems .sp .LP \&... and consistency .LP .sp 2 Unix Phil = guidelines for good design .S "Unix Phil and Software dev processes .rs .sp .LP The Unix Phil: .I mostly *what* .sp .LP Software dev processes: .I mostly *how* .sp 2 .LP Extreme Programming and the Unix Phil are good friends .S "The Unix Phil *itself* .rs .sp .LP Wikipedia: .ce 99 .sp The Unix philosophy is a set of cultural norms and philosophical approaches to developing software based on the experience of leading developers of the Unix operating system. .sp .S Motivation .rs .sp .LP .ce Write the best possible programs for yourself .sp 3 .LP .ce Avoid \fBcomplexity\fP first and foremost! .LP .ce Exploit software \fBleverage\fP! .S "The Unix Phil by Doug McIlroy (1978) .rs .sp .LP This is the Unix philosophy: .I Write programs that do one thing and do it well. .I Write programs to work together. .I Write programs to handle text streams, because that is a universal interface. .S "The Unix Phil by Mike Gancarz (1995) .rs .sp .2v .I Small is beautiful. .I Make each program do one thing well. .I Build a prototype as soon as possible. .I Choose portability over efficiency. .I Store data in flat text files. .I Use software leverage to your advantage. .I Use shell scripts to increase leverage and portability. .I Avoid captive user interfaces. .I Make every program a filter. .sp 1 .LP Plus ten lesser tenets .S "Case studies .LP .B "MH / nmh .LP The only MUA that is a toolchest .LP Makes use of the powerful shell .LP Great example of applied Unix Phil .sp .LP .B uzbl .LP A web browser that adheres to the Unix Phil .LP Central question: .br What is the one thing a web browser should do well? .LP Makes very visible use of software leverage .S "Why? .rs .sp .LP .ce We don't need just any solutions, we need good ones .sp 3 .LP .ce \fBComplexity\fP is the ``boss enemy'' of software developers .LP .ce \fBLeverage\fP is the largest unique benefit of software .S "Further reading .LP The paper to the slides .sp .LP My talk on this topic at the ChaosSeminar of CCC Ulm .CW \s-2http://ulm.ccc.de/ChaosSeminar/2010/03_UnixPhil\s0 .sp .LP Mike Gancarz' book \fI``The Unix Philosophy''\fP .sp .LP \fI``cat -v Considered Harmful''\fP by Pike and Kernighan .CW \s-2http://harmful.cat-v.org/cat-v/\s+2 .S Colophon .LP The paper and slides were prepared with: .br .CW "vi sed awk refer troff dpost spell make hg .sp .LP Most of the tools are from .CW \s-2http://heirloom.sf.net\s0 .LP The `slides' macros are based on .br .CW \s-2http://repo.cat-v.org/troff-slider/\s0 .sp 2 .LP The paper, the slides, and the complete sources are available on my website .CW \s-2http://marmaro.de/docs\s+2 .sp 3 2010-04-16