『UNIXという考え方』

UNIXは、このようにユーザーをシステムから遠ざけようとせず、ユーザーをシステムの中に連れていこうとする。UNIXはユーザーを論理の迷宮にひきずり込む。

Mike Gancarz,芳尾桂監訳:『UNIXという考え方―その設計思想と哲学』,オーム社,p.61,2001.2.

モジュール指向勉強会に参加申込をしたものの、前提知識がなくて不安なので、id:kompiro さんがデブサミ2010のOSGiセッションで紹介されていた『UNIXという考え方』を手始めに読んでみました。で、その感想とか。

モジュール指向についてはまだピンときませんが(なんとなく理解できたのは、小さなプログラムの良さくらいかな?)、それはそれとして、とても面白かったです。訳も素晴らしいですね。

上記は、本を読んでいて、たしかにそうだと感じた一文です。UNIXって、WindowsMacOSよりもずっと機械への理解を要求しますよね。

柔軟であるという価値

"多様性を認める"という価値観が、何事においても自分は好きなので、共感しながら読みました。

ユーザが何かの処理をしようとしたときに、他のオペレーティングシステムがユーザに一本道を示そうとするのとは違い、UNIXは複数の方法を許容します。それは、ユーザに、システムに関する学習と理解を要求しているともいえます。また、様々なオプションをシステム側で勝手に優劣をつけずに提示します。つまり、どの機能を利用するか、重視するかが、ユーザに任されているといえます。

これは、捉え方次第で、ユーザを信用しているようにも、ユーザのことはおかまいなしのようにも見えます。しかし、結果としてユーザの自由度を押し上げ、選択の多様性を支援しています。

それっていいなあ、と思います。

ユーザフレンドリーとは異なるアプローチ

他のプログラムとの接続性に重点を置いた、アプリケーションフレンドリーとでもいうべきアプローチを知りました。

単純に"便利で先進的なシステム"といわれた時、これまで自分は、MS Officeのイルカや冴子先生が今風になったような、世話焼きな対話型システムを思い浮かべがちでした。が、今回、それとは異なる種類の便利さを学びました。本に出てくる「融通性」という言葉がしっくりきます。

その他、印象に残ったところ

(1)ユーザに対してだけでなく、ハードウェアに対して柔軟であること=移植性を維持することの重要性が、繰り返し繰り返し述べられています。特定のハードウェアやベンダにロックオンすることについて、考えさせられます。

(2)プログラマもまた、何が正しい実装なのか分かっていない。だからこそ、できるだけ早く試作を完成させる。というくだりは、変化に追随するための一手段であり、興味深いです。

(3)次の一文は、システムについて述べていますが、社会や組織の中での人間行動について述べたものと錯覚しそうになりました。

プログラムに何ができるかという内向きのことばかり考えず、プログラムがどういう場所に入り込めそうかを考えてほしい。

Mike Gancarz,芳尾桂監訳:『UNIXという考え方―その設計思想と哲学』,オーム社,p.103,2001.2.

感想というより連想になってしまいましたが、何はともあれ面白かったです。

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

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