obituary
Dennis Ritchie

(UNIX, C言語の始祖)Dennis Ritchieから学ぶべきこと

次の記事

YouTube、音楽レーベルにデジタルコンテンツ、グッズ、チケットの販売を許可

Dennis_MacAlistair_Ritchie_

今週初めに報じたように、UNIXとC言語を作った始祖たちの一人であるDennis Ritchieが逝去された。コンピュータ科学とその関連の分野では、コンピューティングとその進歩成長に果たしたRitchieの重要な役割はすでに十分に知られていると思うが、でもぼくの考えでは、彼の業績は、LovelaceやTuring、それに(まだ気が早いと言われそうだが)最近亡くなったSteve Jobsなどと並んで、コンピュータ科学の殿堂の高い位置に置かれるのがふさわしい。

UNIXは、初めてのマルチユーザオペレーティングシステムの一つで、それにより複数の科学者や研究者たちが、それまでのようなバッチに依らずに、一台のコンピュータを同時に共用することができた。マルチユーザでマルチタスク、という方式が研究者たちの大きな関心を喚んだのは、バッチでは処理結果を得るまでの時間がとても長かったからだ。言い換えると、バッチ方式では、コンピュータ時間がきわめて高価についた。こんなエピソードがある:

オペレーティングシステムの諸問題を考えていた1969年に、のちにUNIXの協同クリエイターとなるKen Thompsonが、余暇時間を利用して”Space Travel”(宇宙旅行)というゲームを作った。そのゲームは、太陽系内の惑星の動きをシミュレートした。プレーヤーは惑星間を航行し、宇宙の風景を楽しみ、また、惑星やそれらの月の上に着陸することもできた。

ゲームは最初Multicsの上で書かれたが、次にGECOSオペレーティングシステム用にFortranでリライトされ、GE 635コンピュータの上で動いた。コマンドをタイプして宇宙船を操作する、というゲームなので、画面上の表示は見づらく、コントロールも難しかった。しかも大きなGE 635の上で、一回のプレイに75ドルのCPU時間を要した。それはとうてい、経営陣が容認できる費用ではなかった。

1960年代の貨幣価値で一回のゲームに75ドルでは、ハッキングを楽しむどころではない。そしてDennis RitchieとKen Thompsonが共作したUNIXは、いわばハッカーのパラダイスだった。いくつもの小さなプログラムを簡単にテストできて、結果を共有できる。Ritchieの専攻は物理学と数学だったが、実に絶好のタイミングで、ミニコンとマイコンの時代の草創期にコンピューティングの世界に入ってきたと言える。1960年代から1970年代にかけては、コンピュータと世界との関係が変わり始めた時期だ。それまでのコンピュータ観といえば、”コンピュータのやつ、おれの電話の請求料金を間違えてばかりいるぜ”、という別世界〜大企業のものだったが、実はそのころから徐々に、社会のさまざまなものを変え始めていた。紙を使っていた記録はコンピュータに浸食され、電話交換機は、蒸気機関車時代の蛸の群れのようなものから、ルータやターミナルといった機械方式に変わりつつあった。Bell Labs(ベル研究所、ベル研)はその最先端にいて、世界中を銅線で接続する仕事をしていた。いちばん重要なのは、そこにおける彼の毎日の仕事が難しかったということ。それは、ドラッグ&ドロップやオートコンプリート機能のあるIDEを使える今日では、想像もできない困難さだ。

UNIXの最重要のコンセプトが、共有だった。このOSの開発は1969年に、Bell LabsがThompsonとRitchieが気に入っていたオペレーティングシステムであるMulticsのユーザ(+共同開発者)を下りたことへの反動として、始まった。ニュージャージーのBell Labsにいた4人のプログラマに、MITなどそのほかの組織も協力して、不使用のPDP-7の上で作業は始まった。彼らはまずSpace Travelゲームを移植し、次にゲームのスコアなどを保存するためのファイルシステムを作り始めた。それから徐々に、そのファイルシステムのまわりに、今Linuxなどでおなじみの’UNIXのコマンド体系’が作られていった。その後UNIXという名前は、最初の少数のユーザグループを離れて社内に広まり、1971年にBell Labsの特許申請部門が、nroffを使って文書を印刷し始めた。

たぶん重要なのは、Linus Torvaldsが生まれたのも1969年であることだ。彼がその後、それまでのいわゆるUNIX世代が達成した成果を、収穫していくことになる。Gates、Torvalds、そしてRitchieはいずれも、コンピュータ産業の新しい局面、新しいブームの始まりを、象徴する人びとである。

Ritchieはその後も数々の改良を成し遂げたが、中でもとくに、C言語でオペレーティングシステムを書いたことによって、機械に依存しない、互換性の高いコーディングスタンダードを、世代や国を超え、世界のあらゆる人びとに与えた。そのコードは、白髪交じりの機械語のベテランから、ヘルシンキの若い学生にいたるまで、すべての人が使用し、理解できた。UNIXのソースコードはまるで聖典のようにプログラマからプログラマへと広まり、その後AT&Tが教育機関への提供を取りやめたあとでも、ソースコードの手渡しによる広まりは止(や)まなかった。それはC言語で書かれていたが、処理時間とマシンサイクルをぎりぎりまで節約し、またRitchieとThompsonが固執しのちに広めたエレガンスの保持のために、中核的部位の一部は機械語で書かれていた。Ritchie自身も含め、誰一人として、UNIXと呼ばれる獣の複雑な部分を完全には理解していなかったと言われる。しかしUNIXは、誰もがシンプルに利用できた。前から見るとシンプル、しかし背後は複雑、それがUNIXの設計だった。

もう一つ重要なのは、明快さとエレガンスの追求だ。UNIXチームの一員だったDoug McIlroyが、こう書いている: “競争心や仕事人間としてのプライドから、複雑難解なコードが生まれることもあったが、それらは放棄され、もっと良い、あるいはもっとベーシックな考え方に置き換えられた。プロとしての対抗意識や私権の保護という意識は皆無で、優れたイノベーションの多くが、どこにも私権のない、誰も私権を主張しないものとして生成されていった”。

さて、それでは、今の私たちが自分の製品を作るにあたって、このコンピューティングの巨人から学べることは、何だろうか? まず言えるのは、RitchieとThompsonは単純に楽しいことをしたいと思ったこと。お金を儲けたいという動機や圧力はないが、お金を節約したい(コンピュータを安く使いたい)、そして自分たちのゲームを今や使われていない安いマシンに移して隠したい、という動機はあった。

第二は、自分の安住の地の外で仕事をする必要性。Ritchieは、物理学者で数学者だった。しかし彼はプログラマになった。UNIXやCの構築には、彼の本業が大きく貢献したことは明らかだが、Bjarne Stroustrup(C++の作者)が言うには、Ritchieは新しい、未経験の分野で仕事をすることをおそれなかった。“もしもDennisがあの10年間、難解な数学の研究に没頭していたら、UNIXは死産しただろう”、と彼は書いている。

第三は、自由と放任がイノベーションを生むということ。Bell Labsは、お金とスタッフに恵まれていたので、彼とその友だち数人が影に隠れて会社の管理下にないことをやっていても、大目に見ていた。Googleの、拘束時間の20%は自由に使え、とか、あのLabsの製品が徐々に本番化していくやり方は、このBell Labsの、社内で好きな実験をやっていいという気風に、倣っているようだ。あの20%ルールは、Googleのファウンダたちが会社を作った直後に設けたのだから、元ネタはどうしてもThompson and Ritchieだと思えてくる。人間は、監視されていると平凡なツールしか作らないが、自由に好きなようにやらせてもらえると、傑作が生まれる。

そして最後は、共有がきわめて重要であること。小さなスタートアップが製品をNDAの背後に隠したり、起業家たちがうわべだけの愛想の良さと真のネットワーキングを混同している様子が、ときどき見受けられる。そういうときは、彼らのアイデアが実は全然新しくないか、または成功しそうもないアイデアであるか、または彼らの企業が今後成長しないか、のどれかだ。ぼくの見るかぎり、成功している起業家に共通しているのは、口先だけの話よりも、実コードとその実動(デモでもよい)が先行していた人たちだ。良いゲームについて話すのではなく、その良いゲームを目の前でプレイしてみせること。

今の世界でもっとも重要なソフトウェアプロジェクトかと思われるLinuxは、その可利用性とオープン性がすばらしく大きいから、重要なのだ。オープン性と利益性は相反するというもっともらしい主張は、オープンソースソフトウェアの多様な利用をめぐる業界の現状を知らない人が言う、たわごとだ。

結局、Dennis Ritchieが今の私たちにも教えている重要なことは、コンピューティングが、長年の修行や特殊な儀式などを要する秘密結社ではないこと。今私たちがオンラインでやっているあらゆることに、彼の知的寛容さ、気前の良さが浸透している。彼はとてもシャイな人間ではあったけど、その、今も残っている膨大なコメントやオンラインの記事は、今も将来も、私たちの役に立ち続ける重要な原典だ。私たちに、情報化時代の草創期に彼とBell/AT&Tの連中がやった同じことが、できるわけではないけれども、それはどうでもいいことだ。重要なのは、数年前の私たちがUNIXのソースコードから学んだように:

* あなたがこれを理解することは期待されていない。

あなたはただ、これの上に築いていかなければならない。

画像はWikipediaより

[原文へ]
[jpTechCrunch最新記事サムネイル集]
[米TechCrunch最新記事サムネイル集]
(翻訳:iwatani(a.k.a. hiwa))

“(UNIX, C言語の始祖)Dennis Ritchieから学ぶべきこと” への5件のフィードバック

  1. 今の日本が停滞しているのは権利の過保護が原因の一つと言えなくはないだろうか?

  2. 今の日本が停滞しているのは権利の過保護が原因の一つと言えなくはないだろうか?

  3. 匿名 より:

    良記事。長文翻訳おつかれでした。

  4. mhosono より:

    PDP-7懐かしいって年がわかる WWW

  5. solv より:

    最初はゲームからなんだな

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中