地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

Unix 哲学

UNIXという考え方 The UNIX philosophy

定理

1. Small is beautiful. 小さいものは美しい

小さいものは、大きい物にない利点がいくつもある。小さいもの同士なら簡単に独特の便利な方法で組み合わせることができる
小さなプログラムという発想
  • 小さなプログラムはわかりやすい
  • 小さなプログラムは保守しやすい
  • 小さなプログラムはシステムリソースに優しい
  • 小さなプログラムは他のツールと組み合わせやすい

2. Make each program do one thing well. 1つのプログラムには1つのことをうまくやらせる

一つのことに集中することでプログラムに不要な部分をなくせる。
不要な部分があると、実行速度が遅くなり、不必要に複雑になり、融通が効かない。
  • 小さなプログラムは単一機能になる傾向があり、単一機能のプログラムは小さくなる傾向がある。

3. Build a prototype as soon as possible. できるだけ早く試作する

あらゆるプロジェクトにおいて、プロトタイプは重要である。
一般的にプロトタイプは設計全体のうちの一部として扱われているが、
UNIXにおいてのプロトタイプは、効率的な設計には欠かせない重要な一部である。

4. Choose portability over efficiency. 効率より移植性を優先する

現在のハードウェアに制限されないソフトウェアこそ、未来でも利用される

5. Store numerical data in flat ASCII files. 数値データはASCIIフラットファイルに保存する

移植性を保つ上で、各OSのバイナリーファイルに依存しないASCIIフラットファイルに保存し、参照可能にする。
データをわざわざバイナリーにする必要がない。

6. Use software leverage to your advantage. ソフトウェアを梃子(てこ)として使う

プログラムの再利用は、ソフトウェアの梃子を最大限に活用した強力な考えだ。
UNIXの開発者たちは、この考え方に従って、非常に多くのApplicationを比較的に短期間に開発してきた。

7. The sum of the parts is greater than the whole. 部分の総和は全体よりも大きい

小さい部品を集めて大きなApplicationを作る方が、大規模プログラムを単体で構成するよりも柔軟性に富み、従ってより役に立つ。
どちらのアプローチでも同じ機能は達成できるかもしれない。しかし、先のことを考えると、小さい部品の集に夜アプローチの方が有利だ。

8. Look for the 90 percent solution. 90%の解を目指す

どんなことであれ、100%上手くやることは大変だ。90%のことだけを上手くやれるようにするほうが、はるかに能率的であり費用対効果も最も高い。
UNIX開発者は、対象ユーザーの90%が満足する解を目指す。

9. Worse is better. 劣るほうが優れている

生き残るのは最大公約数的なSystemだと、UNIXファンは信じている。
高級品ではないが効率的なモノのほうが、高品質で効果なものよりも断然受け入れられやすいだろう。
PC互換機の世界が、UNIX界のこのアイデアに従って大きな成功を収めつつある。

10. Think hierarchically. 階層的に考える

UNIXユーザーと開発者とは、物事を階層構造で整理するのが好きだ。
例えば、UNIXでのディレクトリ構造は、ファイルシステムに適用された最初の階層構造アーキテクチャだ。
UNIXはこの階層的な考え方をさらに発展させ、ネットワークサービスでの命名法やウィンドウ管理、オブジェクト指向開発など、他の分野にも影響を及ぼした。