Eric.S.Raymond『The Art Of UNIX Programming』

多くの人々は、これからの、IT 社会の未来を考えるときに、なぜか、その
基盤
となっている、「OS」の歴史から、考えようとしない。未来の社会は、こうなふうになっているのではないか。そういうことを空想するのは結構だが、いったい、その見通しの発想の元はどこにあるのだろうか? 案外、そう言っている本人の願望(そうなれば、自分の会社が発展する)といったところなのかもしれない。
別にそれが問題だと言っているわけではない。そんな、自分の野心もなしに、未来を構想しているなんて言う人間の方が、聖人君子を気取る信頼ならない奴と思われるだろう。しかし、だからといって、そう露骨に露悪的になられても、逆にそんなことをわざわざ言われても、巷にあふれている言説はみんなそれなのだから、げんなり、させられる、といったところだろう。
そういったところが、言わば、
センス
ということだろうか。凡庸な議論は退屈であり、極論はしらける。
しかし、これは、まさに、OS の歴史そのものである。OS つまり、オペレーション・システムと呼ばれる、コンピュータの基本システムは、歴史的に見ると、実に、多くの種類のものが開発されてきた。しかし、そのほとんどは、
絶滅
した。そして、今残っているものも、もう、数えるほどしかない。というか、UNIX系(Linux など)と、Microsoft Windows くらいしかない(といっても、Windows のここ何年かで、やっと安定してきた印象も、多分に、UNIX に似てきた、ということのようだが)。
なぜ、これほどまでに、UNIX がこの世界を席巻することになったのだろうか。もちろん、さまざまにマーケティングで言われる、業界標準と「なった」その事実そのものが、一番の理由なのかもしれないが、それは、極論であって、やっぱり「明らか」なアドバンテージがあったはずなのである。

以上の Unix 思想は、すべて煎じ詰めると1つの鉄則に集約される。それは、大技術者の「KISS原則」と呼ばれているものだ。
K.I.S.S.
Keep It Simple, Stupid!
「単純を保て、愚か者よ」

結局は、これに尽きるだろう。よく、学者風の知識人で、総花的な話し方をしがちな人がいる。ある人は、こう言ってる。別の人はこう言ってる。また別の人は...。これらをまとめると、幾つかに分類できる。...
もう、この時点で、こいつの言ってることは、ゴミだ。気持ちは分かる。一人弁証法をやってしまえば、もう誰も敵はいなくなる。しかし、そういう、やたらと図体ばかりでかい「統一理論」は、まず、ある場面に適用する段階で、さまざまな相互関係を考慮させられ、膨大な時間とコストをかけされたれて、
機動力がない。
(近年、理論社会学が人気がなく、誰も見向きもしなくなったのは、そういう理由なのだろうか。)
私たちの武器は、できるだけシンプルでなければならない。そうでなければ、
人々を魅き付けない。
(おそらく、彼らは何か勘違いをしていたのであろう。)
では、上記の命題を、もう少し、具体的に検討してみよう。

  1. モジュール化の原則:クリーンなインターフェイスで結合される単純な部品を書け。
  2. 明確性の原則:巧妙になるより明確であれ。
  3. 組み立て部品の原則:他のプログラムと組み合わせられるように作れ。
  4. 分離の原則:メカニズムからポリシーを切り離せ。エンジンからインターフェイスを切り離せ。
  5. 単純性の原則:単純になるように設計せよ。複雑な部分を追加するのは、どうしても必要なときだけに制限せよ。
  6. 倹約の原則:他のものでは代えられないことが明確に実証されない限り、大きなプログラムを書くな。
  7. 透明性の原則:デバッグや調査が簡単になるように、わかりやすさを目指して設計せよ。
  8. 安定性の原則:安定性は、透明性と単純性から生まれる。
  9. 表現性の原則:知識をデータのなかに固め、プログラムロジックが楽で安定したものになるようにせよ。
  10. 驚き最小の原則:インターフェイスは、驚きが最小になるように設計せよ。
  11. 沈黙の原則:どうしてもいわなければらなない想定外のことがないなら、プログラムは何もいうな。
  12. 修復の原則:エラーを起こさなればならないときには、できる限り早い段階でけたたましくエラーを起こせ。
  13. 経済性の原則:プログラマの時間は高価だ。マシンの時間よりもプログラマの時間を節約せよ。
  14. 生成の原則:手作業のハックを避けよ。可能なら、プログラムを書くためのプログラムを書け。
  15. 最適化の原則:磨く前にプロトタイプを作れ。最適化する前にプロトタイプが動くようにせよ。
  16. 多様性の原則:「唯一の正しい方法」とするすべての主張を信用するな。
  17. 拡張性の原則:未来は予想外に早くやってくる。未来を見すえて設計せよ。

たとえば、UNIX でシェルを書くとき、「パイプ」と呼ばれる、非常に簡単ではあるが、強力な記述(「|」)をよく使う。コマンド(プロセス)が吐き出した結果を、別のコマンド(プロセス)に喰わせる手法で、これは一種の
プロセス間通信
になっている。また、UNIX 内の各デーモンは、今のインターネットのように、実に、簡単なインターフェース(プロトコル)で、プロセス間通信を実現できる。
各プロセスは、非常に簡単なことしかできないが、それらを、パイプでつないでいくことによって、非常に複雑な結果を生み出す。つまり、
あるのは、シンプル「だけ」
ということである。これが、UNIX の思想と言えるだろう。
しかし、どうだろうか。これは、ただの、OS の話ですむのだろうか。ほとんどの分野に通底する話なんじゃないか。思想家とかのたまってる自称哲学者たちが、もし、自分の語る理論が、たんなる、今現在の流行にとどまらず、
未来に残りうる可能性をもつ
ものでありうるには、どこまで、上記の法則に忠実であるか、に尽きると言ってもいいだろう。
しかし、この話はもっと究極の対象、つまり、自分自身においてさえ、適用される。

ソフトウェアの設計と実装は楽しい仕事、一種の高等遊戯であるべきだ。このような姿勢がふざけたものだと感じられたり、よくわからないようであれば、立ち止まって考えよう。もう忘れたしまったことを自問してみるのだ。なぜ、お金を稼ぎ、あるいは時間を過ごすために、他でもないソフトウェア設計を選んだのか。かつては、ソフトウェアに自分の情熱をかけようと思ったことがあるはずだ。

(私たちはなぜ、行動するのか。その「動機」を、深い理論によって、説明することは、Unix の思想に反する。楽しいからやる。やりたいからやる。まず、
それ以外の理由が必要
とかいう、「複雑」な理論は、逆にその動機を複雑にして、その行動の品質を劣化させるのがおちなわけだ。)
文系とはソフトウェアのことである。これをなぜか、文系の人たち自身が理解していないというのはなんなのだろうか...。
それでは、この議論をもう少し広げて考えてみるために、少し寄り道をしてみよう。
コンピュータには、どこまでのことができるのか? と私も前に問うた気がするが、この問いはミスリードな気がする。
コンピュータは、ノイマンチューリングが構想した自動計算機械を、忠実に再現しているものにすぎない。結局は、この計算速度を向上させることを、ずっと追求してきた。そのために、メモリやHDの容量を増やし、CPU の性能向上に努めてきた。
私たちがパソコンを使っていて、嫌でも意識させられるのが、コンピュータが必死に仕事をしているときは、自分のことを、あまり、かまってくれない、という当然の事実である。
裏で、全ディスクのウィルススキャンなど始めようものなら、とたんに、ブラウザは反応が遅くなる。ある意味、「ある部分に対して」遅い、ということは本質的でないとも言える。たとえば、エディタで文字を入力しているとする。しかし、ネットワークの関係なのか、表示が遅かったとしても、どんどん入力できているなら、画面なんか見ないで、一気に書き尽してしまえば、落ち着いた頃には、ちゃんと表示されているだろう。しかし、CPU 100% でふりきれっぱなしのようなときには、そもそも、ブラウザのボタンが固まっていて、動かない。
こういうのが、今のコンピュータの最大の弱点だと思う。上記の引用にもあるように、ユーザの時間は有限である。その反射をコンピュータ側の都合で「遅らせる」というのは、非常に質の悪いサービスだと言えるだろう。
しかし、まあ、反応は遅くても、反応してるだけ、ましじゃないか、と言う人もいるだろう。この仕組みは、以下となる。

Unix は、スケジューラが実行中のプロセスに一定周期で割り込み(プリエンプション)をかけ、次のプロセスにタイムスライスを与えるプリエンプティブなマルチタスクをサポートしている。現代のOSは、ほとんどすべてプリエンプションをサポートしている。

非常に短かい単位で、各プロセス(やスレッド)の処理は、割り込みによって、止められたり、進められたりする。そのことによって、あるプロセスばっかり先に処理を進めて、他は後回しということがなくなるので、極端に待たされることはない、ということになるのだが、いずれにせよ、この過程は、
忙しい
ことになっているのだけは間違いない。あまり能率的とは思えないだろう。
普通に考えれば、分かることだが、この方向には限界がある。それが、CPU の処理速度だ。どんなにアルゴリズム半導体の性能を上げるにも、限界がある(少なくとも、革命的な技術革新でもない限り、ジリ貧だろう)。
だとするなら、どういう方向がありうるだろう。当然、コンピュータの複数化ではないか。
そもそも、いくら、マルチタスクだといっても、ウィルススキャンのように、ほぼ、CPU100%のバックグラウンドタスクなど、ナンセンスもいいところだろう(やりたかったら、別のパソコンが、こっちのハードディスクにつながって、やればいい)。
できるだけ、シングルタスクの
専用マシン
の方が、ユーザにとっては、快適なんじゃないか(私は、そういう意味で、人々は多くのウェアラブルバイスを体に身に付ける時代が来るのでは、と予感しているのだが...)。
頭脳は、「できるだけ多い方がいい」。これは、悩細胞は、できるだけ多い方がいい、と対応するだろうか。民主主義も、できるだけ、「多くの頭脳」が考えていた方がうまくいく...。
では、そういった頭脳たちにとっての、情報媒体や計算ツール(電子情報やソフトウェア)は、どういった形態としてあるのだろうか。
これも、UNIX の「オープンソース」性こそ、その特徴をよくあらわしているように思える。
たとえば、以下の

ネット帝国主義と日本の敗北―搾取されるカネと文化 (幻冬舎新書)

ネット帝国主義と日本の敗北―搾取されるカネと文化 (幻冬舎新書)

という本があるが、この著者の方は、ここのところ、よく、ニュースステーションなんかで、コメンテーターをやってるが、それも、こういった本を書いたからなのだろう。
それにしても、この本は異様に思える。なぜなら、この本は、今のネット社会が、問題ありまくり、と言っておきながら、それに対する有効な対策を提示できていない、からである。
たしかに、プロたちが売り出す、CDやDVDや新聞の売上げが2割は落ちている。おそらく、Yahoo をみれば、ニュースが配信され、新聞を読む理由が分からない、とか、YouTube などで、簡単に、アップロードされており、わざわざ、買わなくなった、というのが著者の分析になる。
しかし、それでは、日本の文化が衰退してしまう。そもそも、そういった著作権のあるものが、容易にアップロードできることが問題なんじゃないのか。たしかに、これは正論だろう。
しかし、問題は「どうやってその規制を実行あるものにできるのか」となる。

繰り返しになりますが、フェアユース規定のお陰で、プラットフォーム・レイアーが超過利潤をコンテンツ・レイアーに配分するどころか、検索結果に新聞記事を載せるために必要な複製の対価も何も支払わないでいい、書籍のデジタル化も著作権者の許諾なしに進められる、といったことが可能となったのです。
1998年のデジタルミレニアム著作権法には、ネット上で著作権侵害行為(著作権者の許諾なしに著作物をアップロードするなど)があった場合でも、当該コンテンツを削除すればプロバイダは免責される、という規定が盛り込まれました。そのお陰でユーチューブは凄まじい数の違法コンテンツが投稿されているのに繁栄を維持しています。
また、コンテンツ・レイアーと直接には関係しませんが、1996年の通信品位法の”サービス・プロビダ免責条項”によって、プロバイダは、自らのサイトに書き込まれた内容が名誉毀損であることを承知していた場合でも、それに責任を免除されることになりました。
ネット帝国主義と日本の敗北―搾取されるカネと文化 (幻冬舎新書)

たとえば、コミケでの、アニメのパロディは明らかに、著作権を犯しているだろう(実際に、商売にまでしているわけだし)。しかし、一般には、あまりにもの行き過ぎでなければ、黙認されているようにも思える(シカト?)。そこには、個人的な娯楽の範囲、つまり、アマとプロの「垣根」が共有されている、ところが大きいのかもしれない。
また、なかなか衝撃的な記事が、ダイアモンド誌にあったが、

screenshot

佐々木さんは、百度文庫で、簡単に、村上春樹の「1Q84」が検索できたことを twitter でつぶやいていたが、こういったことは、上記にもあるように、テレニアニメはとっくの昔に、YouTube などにアップロードされ、「消費」されている。特に、海外のサーバだと、摘発が難しいのだろうか(告発しても、きりがない、というのもあるのだろうか)。
しかし、これについては、以前にも書いた記憶があるが、いずれにしろ、これが今の現実なのであって、こっから考えないで、理想をいつまでも述べていてもしょうがないわけだ。
たとえば、この前、今後の日本で誰がお金を持っているのか、という話をした。それこそ、一部の老人たちだったわけだが、彼らは、お金を使うモチベーションのない人たちである。じゃあ、考えてみようではない。
なにが起きるか。
それこそ、近年話題になり、まったく解決の糸口さえ見出せない、
都会のピッキング強盗
や、
オレオレ詐欺
なのでしょう。詐欺というのは、たしかに犯罪なのだろうが、実際に、そういったものが繰り返されるということは、そこに、一定の「合理性」がある、と考えるべき、ということである。詐欺でもし、「安定した」収入になるなら、どうして、こういった、
「商売」
がなくなるであろうか。実際、簡単にだまされる、ジジババたちは、頭脳も弱ってきてるのもあるのだろうが、実際に、もうかっているのだから、
まだ「はした」金
ですませられるわけである。今、若者向けの小説を書いたり、ゲームを作ったりして、少子化で儲かんねーとか、ぶつくさ言ってる連中は、そもそも、マーケティングとはなんなのかを分かっていない。
最初から、富裕層お年寄り向け小説や、富裕層お年寄り向けゲームで、戦おうしない時点で、お前のマーケティングのセンスが負けている(そんなビジネス感覚だから、いつまでも貧乏なのだろう)。
話を戻せば、実際、上記のような「海賊」物によって、間違いなく、(本来は価格が高く情報を消費しようとさえ思わなかった)多くの人たちが、こういった商品を「消費」するようになる。むしろ、政治運動的には、そういった、
文化的影響力、普及力
の方が、興味深かったりする。
ようするに、私が言いたかったのは、いいかげん、考え方を変えたらどうなのか、ということである。つまり、明らかに、情報媒体やソフトウェアは、
資本主義
に向いていない。UNIX のような「オープンソース」の形態の方が自然に思える、ということである。
実際に、今までだって、そうだったのではないだろうか。紙の本は、かさばり、家の片隅を占拠する。邪魔だなあ、と思うかもしれないが、逆に言えば、それでも家に置いているということは、それだけの理由がある、ということであろう。本を手元に置いておくということは、一種の、
信認投票
になっている。わざわざ、紙の本を買うということは、その作者へ「寄付」している感覚に近い。その代わりに、その紙の本という実体によって、その気持ちの意味を「形」で現わすわけである(電子書籍は、しょせん、ただの電気であり、ただで拾ったものと違いも感じられず、その作者への「寄付」という感覚を公私ともに、宣言しにくい。そんな心もとなく感じるだろう)。
情報媒体やソフトウェアが、今後、多くのケースで、無料に近くなっていく一方で、「寄付」やファンクラブ会員費、ライブの参加費。こういった形の、無形の
贈与
が主流になっていく...。それは、ある意味、上記の、OS の今まで辿ってきた道を見たとき、実に自然に思えてくるわけである。
OS の歴史が、ほとんど、UNIX の歴史であったことは、以下までの説明で、ほぼ上記に引用した、原則そのものだったと言えるであろうが、つまりは、

Robert Metcalf(イーサネットの発明者)は、イーサネットに代わる新しいものが現れたら、それは「イーサネット」と呼ばれることになるだろうから、イーサネットは決して死なないといっている。Unix はすでにそのような変身を数回遂げている。---- Ken Thompson

つまり、UNIX とは、一つの普遍的な思想であり、たまたま、それが OS という形を与えられた。それだけのことなのだろう...。

The Art of UNIX Programming

The Art of UNIX Programming