SQL database system
 
Manual page for Tenets(of)

from The Unix Philosophy by Mike Gancarz.
ISBN:1-555558-123-4. Copyright 1995 Butterworth-Heinemann.
Reprinted with Permission of Digital Press


9 main tenets of the Unix philosophy

1. Small is beautiful.

  • Small programs are easy to understand.
  • Small programs are easy to maintain.
  • Small programs consume fewer system resources.
  • Small programs are easier to combine with other tools.


2. Make each program do one thing well.

  • "The best program...does but one task in its life and does it well."
  • "The program is loaded into memory, accomplishes its function, and then gets out of the way to allow the next single-minded program to begin."


3. Build a prototype as soon as possible.

  • Prototyping is a learning process.
  • Early prototyping reduces risk.


4. Choose portability over efficiency.

  • Next ---'s hardware will run faster.
  • Don't spend too much time making a program run faster.
  • The most efficient way is rarely portable.
  • Good programs never die--they are ported to new hardware platforms.


5. Store numerical data in flat ASCII files.

  • ASCII text is a common interchange format.
  • ASCII text is easily read and edited.
  • ASCII data files simplify the use of Unix text tools.
  • Increased portability overcomes the lack of speed (of flat ASCII text files...)
  • The lack of speed is overcome by next year's machine.


6. Use software leverage to your advantage.

  • Good programmers write good code; great programmers "borrow" good code.
  • Avoid the not-invented-here syndrome.
  • Allow other people to use your code to leverage their own work.
  • Automate everything.


7. Use shell scripts to increase leverage and portability.

  • Shell scripts give you awesome leverage
  • Shell scripts leverage your time, too.
  • Shell scripts are more portable than C.
  • Resist the desire to rewrite shell scripts in C.


8. Avoid captive user interfaces.

  • CUIs assume that the user is human.
  • CUI command parsers are often big and ugly to write.
  • CUIs tend to adopt a "big is beautiful" approach.
  • Programs having CUIs are hard to combine with other programs.
  • CUIs do not scale well.
  • CUIs do not take advantage of software leverage.


9. Make every program a filter.

  • Every program written since the dawn of computing is a filter.
  • Programs do not create data--people do.
  • Computers convert data from one form to another.
  • Use stdin for data input;
  • Use stdout for data output;
  • Use stderr for out-of-band information.


Ten Lesser Tenets

  • Allow the User to tailor the environment.
  • Make operating system kernels small and lightweight.
  • Use lower case and keep it short.
  • Save Trees.
  • Silence is golden.
  • Think parallel.
  • The sum of the parts is greater than the whole.
  • Look for the 90 percent solution.
  • Worse is better. (I won't try to explain this one...)
  • Think hierarchically.


Copyright Steve Grubb  


Markup created by unroff 1.0,    March 18, 2004.