UNIX という考え方: その設計思想と哲学
本書を知ったきっかけ
プログラミング仲間が Twitter で紹介してくれていました。
内容を一言にまとめると
著者の主張を一言に要約すると「プログラムにおいて、シンプルさは正義」といった印象です。
概要
著者のマイク・ガンカーズは、X Windows System 開発チームの一員であり、UNIX で得た経験を「UNIX 哲学」として以下のように集約しました。
UNIX 哲学:9つの命題
- 小さいものは美しい
- 各プログラムが一つのことをうまくやるようにせよ
- できる限り早くプロトタイプを作れ
- 効率よりも移植しやすさ
- データはテキストファイルに格納せよ
- ソフトウェアを梃子(てこ)として利用せよ
- 効率と移植性を高めるためにシェルスクリプトを利用せよ
- 拘束的なユーザーインターフェースは作るな
- 全てのプログラムはフィルタとして振る舞うようにせよ
本書は主に、これらの命題を深掘りすることで、「UNIX という考え方」の全体像を浮き彫りにしようという試みです。
読んで得られたもの
大きくは、以下の2点です。
- 自分のコードがきれいになった
- UNIX に親近感を覚えられるようになった
1. 自分のコードがきれいになった
こちらが最大のメリットでした🤩
これは、意外なメリットでもありました。
本書にはそもそも、コードがほぼ全く登場しません。
著者は単に、UNIX 哲学の思想について、そのような思想に至った理由や背景を述べていくのみです。
しかし、その語り口には説得力があり、頷きながら読み進めるうちに、「次にコードを書く時はこうありたい」という思いが高まっていきました。
結果として、読了後に書いたコードは、各機能がよく切り離されており、機能の追加や使い回しが容易なものにでき、満足度が高かったです😄
2. UNIX に親近感を覚えられるようになった
以前、友人に「UNIX と Linux の違いって何?」と質問されたものの、即座に答えられず、ググった結果を横流しすることになった経験があります😅
両者は似ているものの、どちらかと言うと、Linux の方が身近であり、UNIX という概念に直接触れる機会は少ないのではないでしょうか。
僕は本書を読むことで、自分の中に、UNIX を貫く思想のバックボーンについてのイメージができあがりました。
それにつられて、UNIX と Linux の違いについても、捉え方において異なった位置にマッピングされた感覚があります。
まとめ
2つ目のメリットとして挙げた「UNIX に親近感を覚えられるようになった」については、本書を読まれた方の多くが頷いてくれるだろうと思います。
例えば先程のような「UNIX と Linux の違い」を説明する際に、単に UNIX が Linux の元になったものであるというようなところから一歩踏み込んで、UNIX 的な思想について進んで説明したくなるのではないでしょうか。
こちらの投稿を読んでくださり、本書に興味をもたれてお読みになった方と、この読後感を共有できたなら幸いです。