カフェインオーバーフロー

プログラミングに携わる中で、どなたかの役に立つかもしれないと思ったことを共有していきます。

UNIX という考え方: その設計思想と哲学

本書を知ったきっかけ

プログラミング仲間が Twitter で紹介してくれていました。

内容を一言にまとめると

著者の主張を一言に要約すると「プログラムにおいて、シンプルさは正義」といった印象です。

概要

著者のマイク・ガンカーズは、X Windows System 開発チームの一員であり、UNIX で得た経験を「UNIX 哲学」として以下のように集約しました。

UNIX 哲学:9つの命題
  1. 小さいものは美しい
  2. 各プログラムが一つのことをうまくやるようにせよ
  3. できる限り早くプロトタイプを作れ
  4. 効率よりも移植しやすさ
  5. データはテキストファイルに格納せよ
  6. ソフトウェアを梃子(てこ)として利用せよ
  7. 効率と移植性を高めるためにシェルスクリプトを利用せよ
  8. 拘束的なユーザーインターフェースは作るな
  9. 全てのプログラムはフィルタとして振る舞うようにせよ

本書は主に、これらの命題を深掘りすることで、「UNIX という考え方」の全体像を浮き彫りにしようという試みです。

読んで得られたもの

大きくは、以下の2点です。

  1. 自分のコードがきれいになった
  2. UNIX に親近感を覚えられるようになった

1. 自分のコードがきれいになった

こちらが最大のメリットでした🤩

これは、意外なメリットでもありました。

本書にはそもそも、コードがほぼ全く登場しません。

著者は単に、UNIX 哲学の思想について、そのような思想に至った理由や背景を述べていくのみです。

しかし、その語り口には説得力があり、頷きながら読み進めるうちに、「次にコードを書く時はこうありたい」という思いが高まっていきました。

結果として、読了後に書いたコードは、各機能がよく切り離されており、機能の追加や使い回しが容易なものにでき、満足度が高かったです😄

2. UNIX に親近感を覚えられるようになった

以前、友人に「UNIXLinux の違いって何?」と質問されたものの、即座に答えられず、ググった結果を横流しすることになった経験があります😅

両者は似ているものの、どちらかと言うと、Linux の方が身近であり、UNIX という概念に直接触れる機会は少ないのではないでしょうか。

僕は本書を読むことで、自分の中に、UNIX を貫く思想のバックボーンについてのイメージができあがりました。

それにつられて、UNIXLinux の違いについても、捉え方において異なった位置にマッピングされた感覚があります。

まとめ

2つ目のメリットとして挙げた「UNIX に親近感を覚えられるようになった」については、本書を読まれた方の多くが頷いてくれるだろうと思います。

例えば先程のような「UNIXLinux の違い」を説明する際に、単に UNIXLinux の元になったものであるというようなところから一歩踏み込んで、UNIX 的な思想について進んで説明したくなるのではないでしょうか。

こちらの投稿を読んでくださり、本書に興味をもたれてお読みになった方と、この読後感を共有できたなら幸いです。