橋本 Hashimoto   Baku

橋本 Hashimoto   Baku

UNIX Philosophy (Scratchpad)

This page is a personal scratchpad.

Unix開発者によってまとめられてきましたが、以下は1994年、マイク・ガンカーズによってまとめられたもののうち、制作ツール開発に直接関係しそうなものの抜粋です。

  • 定理1:スモール・イズ・ビューティフル
    • 小さなプログラムは分かりやすい
    • 小さなプログラムは保守しやすい
    • 小さなプログラムはシステムリソースにやさしい
    • 小さなプログラムは他のツールと組み合わせやすい
    • Orthogonality
    • 巨大で複雑なプログラムの開発者は、「将来が予想可能で、そして現在とそう大きくは変わらない」という勝手な思い込みを前提としている。(P.22)

  • 定理2:一つのプログラムには一つのことをうまくやらせる
    • 新しい仕事をするために、新しい「機能」を追加して古いプログラムを複雑にするのではなく、新しいプログラムを構築する。(W)
  • 定理3:できるだけ早く試作を完成する
  • 定理4:効率より移植性
  • 定理9:すべてのプログラムをフィルタにする
    • すべてのプログラムの出力が、まだ見ぬべつのプログラムになることを期待する。出力に余計な情報を入れない
  • さらなるUNIXの考え方
    • 小定理1 好みに応じて自分で環境を調整できるようにする
      • アプリケーションに十分な柔軟性があれば、ユーザーはそのアプリケーションをできるだけ使いやすくしようと、その方法を学ぶことに時間をかける。そして、自分で調整した環境に馴染めば馴染むほど、調整が難しかったり出来なかったりする環境には移りたがらない。(中略)最初は、あまりの柔軟性にユーザーはとまどい、選択肢の多さに圧倒されるかもしれない。しかし、最後には、多くのオプションを利用するほうを選び、その学習に時間をかける。

    • 小定理7: 部分の総和は全体より大きい
    • 小定理8 90%の解を目指す
    • 小定理9 階層的に考える

出典