2017/01/29

「UNIXという考え方」を読んだ

UNIX という考え方―その設計思想と哲学を読みました。
重要な 9 の定理と、10 の小定理から UNIX についての文化や考え方、哲学を説明している本です。
この合計 19 の定理については他のサイトやブログでもまとめられているので、すべてを見たいときはそっちを確認しよう。

驚いたこと

平成 13 年の 2 月に出版された、16 年ほど前の本であること。

「スモール・イズ・ビューティフル」ではマイクロサービスアーキテクチャを、
「できるだけ早く試作を作成する」を読んでいるときは、アジャイルを、
「効率より移植性」では Docker を、
「ソフトウェアの梃子を有効に活用する」では GitHub(OSS)を、
頭の中に思い浮かべながら読んだ。

思い浮かばせたそれぞれのワードは、僕が社会人になってから今までの 5 年の間で生まれた/ホットになったものばかり。

15 年以上も前の思想や哲学が今現在の技術にも生きていることに驚いたし感心した。

共感したこと

よいプログラマはよりコードを書く。偉大なプログラマはよいコードを借りてくる

「第 5 章 これこそ梃子の効果!」に書かれていた言葉で、その通りだなあと思った。

車輪の再発明は学習するという点においては有用だけど、それだけでしかない。
自分で作るとそれを保守しないといけないし、すでにあるものの方が有用。何よりも再発明に使っている時間がもったいない。

自分は車輪の再発明や独自技術症候群に陥りやすいので、この章に書かれている言葉はより深く体に染み込ませたい。

わかっていないこと

第 3 章にある、「人間による三つのシステム」は一回読んでもすんなりと理解できなかった。
この章でも、後の章でも X ウィンドウについて何回も愚痴をこぼしている。この愚痴の話が一番印象に残った。

こう思った

Go 言語 / Docker は覚えるべき技術

移植性についての章では、C よりシェルスクリプトと記されているけど、現在ではクロスコンパイルのある Go 言語がベターだろう。
Docker も一つの解。コンテナに包めば、Docker が動く環境であれば簡単に移植できる。

すでにあるアプリケーションはコンテナにし、これから作るアプリは Go 言語で書く、というのはいい手なんじゃないかな。

内容が色あせない

15 年以上経っても内容が色あせないってすごい。
また 5 年後にでも、その時の技術を思い浮かべながら読み返したいと思った。