少し前にUNIXという考え方という本を読んだ。そして、これこそまさにプログラムするWebを理解するために読むべき本だと思った。
そしてしばらくしたところに現れたサービスが Yahoo! Pipes。自分でWebのAPIを触っているような人は発想自体への新規性は感じず、むしろ納得のサービスだったのではないだろうか。それにしても、Pipesという一部の人にはこれ以上なく直感的なネーミングは絶妙だと思った。
さて、そんなPipes(Yahoo!じゃない方の)についても触れられているUNIXという考え方。これは名著だ。しかも類著がない。(ふつリナ?そうかも。)
UNIXという考え方は、UNIXを使う人ではなくむしろUNIXを使ったことがない人に読んで欲しい。それもソフトウェアを作る人に。なぜならこの本にはUNIXの使い方ではなく、UNIXという優れたコンセプトに横たわる設計思想が書かれているからだ。
語られる思想の中心にあるのは、「小さなものを組み合わせる」ということだ。「スモール・イズ・ビューティフル」を持ち出すまでもなく、ここにあるのは引き算のデザインの美学である。そして、これが組み合わせたときのスケールを生む鍵になる。
本書の中で語られる10の定理を列挙してみよう。
- スモール・イズ・ビューティフル
- 一つのプログラムには一つのことをうまくやらせる
- できるだけ早く試作を作成する
- 効率より移植性
- 数値データはASCIIフラットファイルに保存する
- ソフトウェアの梃子を有効に活用する
- シェルスクリプトを使うことで梃子の効果と移植性を高める
- 過度の対話的インタフェースを避ける
- すべてのプログラムをフィルタにする
これはUNIXという考え方からの抜粋だ。けしてWebという考え方の抜粋じゃない。それでも、そのように見まがうくらい今のWebアプリケーションに求められる考え方がつまっている。
「いかにスケールするか」という共通の目的に向かった設計思想が自然と似た指針を生んだのだろうが、興味深い。細かい内容の方も「拘束的プログラム」や「動かせないデータは死んだも同然」など楽しくもためになる指摘がたくさんある。
(委員会的に)正しいソフトウェアじゃなく、本当に役に立つプログラムを作りたい人はぜひ読んでほしい。
オーム社 (2001/02)
売り上げランキング: 57554