hirapi's blog

駆け出しwebエンジニアのなんでもないメモ書き

『UNIXという考え方―その設計思想と哲学』を読んだ

UNIXという考え方―その設計思想と哲学 | Mike Gancarz, 芳尾 桂 |本 | 通販 | Amazon

を読んだ。
自分にとって大切な本のひとつになる気がしたので、読んだという事実を世に知らせるために簡単な感想のメモを。

内容の核である「UNIXの定理」は

定理1:スモール・イズ・ビューティフル
定理2:一つのプログラムには一つのことをうまくやらせる
定理3:できるだけ早く試作を作成する
定理4:効率より移植性
定理5:数値データはASCIIフラットファイルに保存する
定理6:ソフトウェアの挺子を有効に活用する
定理7:シェルスクリプトを使うことで挺子の効果と移植性を高める
定理8:過度の対話的インタフェースを避ける
定理9:すべてのプログラムをフィルタにする

例えに出てくる固有名詞(マシンとか昔のOSとか)に馴染みがなくてイメージしにくい部分もあったけど、これら定理の正当性について展開される議論がとても鮮やかだった。
本の最後のほうで総括されているように、全ての定理は一貫していて、それゆえの説得力があった。

その一貫性の裏には「不確実性」というひとつの大きな前提がある。
本書ではっきり述べられているように、ソフトウェアの実行環境(ハードウェア)も、ソフトウェアに求められる機能も、きっと明日には変わっている。ただしどう変わっているかは今日の時点ではわからない。
だから移植性を重視するし、スモール・イズ・ビューティフルだし、世界中の車輪を使って新しいものを作っていく。
単語こそ強調はされていなかったけど、まさに「不確実性」への対処論だと思う。

どこかのレビューに「実用性が無い」って書いてあったけど、たぶんその人が求めているのはただのドキュメントなんだろうな。
「なぜそうなっているか」を理解しながら「どうなっているか」を調べるとそれを使いこなせるようになるまでの時間は格段に短くなるはずで、そういう意味ではとても実用的な本だと私は思った。

UNIXをよく噛んで飲み込んで消化できたらまたどこかに書く。