Hatena::ブログ(Diary)

shi3zの長文日記 RSSフィード Twitter

2012-12-07

名前くらいは知っておきたい伝説のプログラマーたち 06:44

 川上さんが放送の前だったか、対談の中だったかで「おまえのブログ、飯の話と昔話ばかりで過去の栄光にすがる悲しい老人の日記みたいで心配になる」と言っていた。んー、確かにそうかもしれない。


 ただ、「今現在」の仕事についてブログでは語れない。未来のことだからね。なにが起きるか解らないし、そもそもクライアントのある仕事は守秘義務もある。自社の仕事だって結果が出る前には語れないじゃん。仕事やる前から手のうちバラすなんてあり得ないでしょ。川上さんはもうとっくに引退してるようなもんだからなんでも書けるんだろうけどさ



 するとみんなが知ってる会社がどんなふうに成長して来たのか、とか、あるプロジェクトはどういう顛末だったのか、できるだけ自分しか知らない情報を書こうとすると、今なら言えるという話、要するに過去の話が多くなってしまう。


 でも過去って大事なんだよ。

 多くの優れた人たちが過去を振り返るのを怠り、同じ失敗を繰り返す。

 だからときどき過去は振り返らないといけない。


 歴史って大事じゃないですか。

 10年一昔っていうし。


 歴史を知らないと、正確な未来予知はできないっすよ。

 というわけで、今日は伝説的なプログラマーを名前だけでも紹介しておく。



 天才と呼ばれるプログラマーを全員挙げるのは僕には無理だ。だが思いつくまま挙げて行く。

 よくわからないがそういう気分なんだ。


 全プログラマー入場!!


 トップバッターは、そうだな。

 ジョン・カーマックでいいか。

 昨日のエントリでも書いたが、ジョン・カーマックはWolfenstein3D、そしてDOOMを開発した伝説のプログラマーだ。

 BSP(二進空間分割)法を3D空間に適用させ、初めて実用的な3Dゲームを実現した。彼が発明したファーストパーソンシューター(FPS)というフォーマットはいまや全てのゲームの基礎となっている。


 カーマックとともにDOOM、そしてQuakeを開発したジョン・ロメロも付け加えておこう。

 彼は「ゲームエンジン」という概念を発明した天才だ。

 ゲームを「エンジン」と「レベル」に分解し、「レベルデザイン」という概念を生み出した。


 ジョン・ロメロと一緒にロスのカフェでゲームデザインについて語り合ったことがあるのは僕の数少ない自慢だが、まるでロックスターのように次々とファンが現れて写真を一緒に撮ったりサインしたりと大忙しだった。独立してからあまり上手く行ってないようだけど、今でも伝説なのである。2012年のグローバルゲームジャムではキーノートスピーチを担当した。



 マイケル・アブラッシュ。ああ、いまでも彼の名前を思い出すだけで心が躍る。

 彼の書いた本、GRAPHICS PROGRAMMING BLACK BOOK

http://ecx.images-amazon.com/images/I/51E2EDBTB9L._SL500_AA300_.jpg

 1200ページという超人的なサイズの本。

 辞書じゃないぜ。なのに1200ページもあるんだぜ。

 ずっとプログラミングの話ばっかで。

 

 アブラッシュはBSP法を三次元空間に拡張し、ジョン・カーマックのid softwareでQuakeのエンジンを作った後、MicrosoftでWindowsNTのグラフィックス・ドライバを書いた。まさに生きる伝説。伝説的プログラマーだ。


 グラフィックス・プログラマーとして、彼の名を知らなければモグリだろう。

 そう、ビル・アトキンソン

http://cultofmac.cultofmaccom.netdna-cdn.com/wp-content/uploads/2010/07/MacPaint-by-Bill-Atkinson.jpg

 MacPaintの開発者であり、初代Macintoshの中心的開発者の一人でもある。

 QuickDraw、MacPaint、そしてHyperCardを作った。

 Magic Capというハードウェアビジネスに挑戦し、失敗した。偉大な先駆者だ。



 ジョン・ワーノックを忘れてはいけない。

 正真正銘の天才にして大成功を治めた起業家。

 XEROX PARCで唯一成功したレーザービームプリンターの開発者の一人。

 そして印刷言語PostScriptを開発した。いまや世界中のレーザープリンターがPostScriptで動いている。

 スティーブ・ジョブズから最も尊敬された技術者の一人で、なにしろNeXTの画面表示は全てPostScriptの後継だ(DisplayPostScript)。NeXTがそうであるということは、その後継であるMacOSXも、iOSも全部PostScriptということだ。PDFもPostScriptで、つまり世の中の人々が見ている画面の大半は、ジョン・ワーノックの開発した言語で描かれているということになる。

 そして何より、彼はAdobeの創業者だ。文句のつけようがない天才がいるとすれば彼のことだ。



 忘れちゃいけない。もうひとつの印刷言語TeXを開発したドナルド・クヌース

 彼の著書「The Art of Computer Programming」シリーズを読んだことがない奴はプログラマーとして間違いなくモグリ。



 ああそしてジョン・マッカーシー

 全世界のスクリプト言語使用者とJavaプログラマは彼に足を向けて眠ってはいけない。

 ガベージコレクションの発明者にしてLisp言語の発明者。


 ついでに「ハッカーと画家」のポール・グレアムも入れておくか


 「ゲーデルエッシャー・バッハ」のダグラス・R・ホフスタッターも僕は好きだ。

 

 LOGOを開発したシーモア・パパートも忘れちゃいかんな。


 「コンピュータ・レクリエーション」のアレキサンダー・ケントーウィン・デュードニーも好きだ。


 もちろん、ケン・トンプソンとデニス・リッチー、ブライアン・カーニハンを忘れちゃならないよな。

 全ての始まりとなった偉大なるUNIXC言語の開発者たちだ。


 さらにUNIXを教育用オープンソースソフトウェアとしてマイコン向けに作り替えたMINIXを開発したアンドリュー・タネンバウム。アムステルダム自由大学の教授だ。


 アンドリュー・タネンバウムにMINIXのより高機能なバージョンが欲しいと嘆願したら断られてしまったヘルシンキの少年。そう、ご存知リーナス・トーバルズ。今世紀で最も有名なオープンソースソフトウェア、Linuxの開発者だ。


 そして「フリーソフトウェア(自由なソフトウェア)」という概念を考えだし、GNUプロジェクトを立ち上げ、Emacsの開発者としても知られるリチャード・ストールマン。GNUプロジェクトなしではLinuxもPlayStationも生まれなかった。


 エディターといえばみんな大好きviを開発したビル・ジョイ。UNIXにTCP/IPプロトコルスタックを最初に実装したのもビル・ジョイと言われている。BSDのまとめ役で、BSDはその後、FreeBSD、そしてMachへと派生し、Machから派生したDarwinがNeXTになった。そう。つまり今みんなが使ってるMacとiOSの直系のご先祖様だ。


 ビル・ジョイとともにJava言語を発明したジェームズ・ゴスリング。Unixで動く最初のEmacs実装を書いたのも彼だ。


 おっと、あまりにも大事な人を忘れていた。

 スティーブ・ウォズニアック。天才的なアーキテクトで、電話のタダ掛け機から世界的ヒットを飛ばしたマイクロコンピュータまで設計した。そしてわずか6KBで動作する信じられないほど芸術的なIntegerBasicを含むAppleIIをほとんど一人でハードからソフトまで開発。天才ビル・ゲイツですらAppleIIでのBASIC実装に10KBを必要としたのだからその凄まじさがわかる。


 もちろんビル・ゲイツ。言わずと知れた大富豪。

 だがその実、天才的なプログラマーで、マイコン用BASICを飛行機の中で開発したという伝説を持つ(実際には少し違うが天才的であることは間違いない)。初期のMicrosoftには西和彦、古川享といった強烈な日本人天才プログラマーも在籍している。きりがなくなってきた。


 そしてゲイツの野望を果たすべくWindowsNT開発の陣頭指揮をとったのがデイビッド・カトラー。この名前で魂を揺さぶられるオヤジは少なくない。伝説のプログラマー。VAXコンピュータ用のOS、VMSを設計した天才中の天才だ。


 やばい俺が彼を忘れちゃまずい。

 XEROX PARCでコンピュータネットワークに満たされた世界、"ユビキタスコンピューティング"を構想した、ミスター・ユビキタスことマーク・ワイザー。


 世界で初めてアーケードゲームを作った、ノーラン・ブッシュネル。スティーブ・ジョブズが丁稚奉公した企業Atariの創業者。彼が居なければニンテンドーファミコンだって産まれなかったかもしれない。


 環境マッピングとバンプマッピングを発明したNASAの天才科学者、現Microsoft Research所属のジム・ブリン。


 そして世界で初めてインタラクティブなコンピュータを作った、ダグラス・エンゲルバート。彼の発明したNLS(oN Line System)がなければ今の世の中は産まれていなかった。そして彼がマウスの発明者であることは余りにも有名だッ!


http://sloan.stanford.edu/mousesite/1968Demo.html


 

 エンゲルバートのNLSに触発されてより進んだインタラクティブ・コンピュータを夢想した天才、アラン・ケイSmalltalk(後のObjective-Cに大きな影響を与えている)とGUIを開発し、小学生に使わせて論文を書いた。もちろんかの有名なDynabookコンセプトの発明者で、全てのコンピュータ科学者が目指すべき頂点。


http://www.kanshin.com/keyword/51975


 ジム・クラーク。彼がいなければXboxもPlayStationも存在してない。ジオメトリエンジンレンダリングパイプラインの発明者にして実業家。シリコングラフィックス社の創設者。SGIの開発したIRIS GLは、その後、OpenGLへと発展した。


 ジム・クラークとともにNetscape社を設立したマーク・アンドリーセン。泣く子も黙る天才。世界で初めてヒットしたWebブラウザ、MosaicNetscape Navigatorの開発者だ。Netscapeは今はFirefoxとして知られている。MozillaがMosaicを襲うゴジラ(Gozilla)に由来していることはあまりにも有名?


 Zバッファ法の発明者であり、スティーブ・ジョブズとともにコンピュータ・グラフィックス企業Pixarを立ち上げたエド・キャットムルを忘れるところだった。いや、もちろん忘れてるわけがない。テクスチャマッピング、Bスプラインなどにも貢献している。RendarManの開発者としても有名だ。泣く子も黙るPixarの社長。ウォルト・ディズニーが設立に貢献したカリフォルニア芸術大学一期生の天才アニメーター、ジョン・ラセターを擁し、「TOY STORY」シリーズを皮切りにアニメーションの新時代を切り開いた。


 さあ、そして、ジム・クラーク、アラン・ケイ、エド・キャットムル、ジョン・ワーノック、ダグラス・エンゲルバート、数々の天才が師とあおぐ天才中の天才、いやむしろ唯一神、現人神と言っていい存在、それがアイヴァン・サザーランドだ!!

 3DグラフィックスとAR、VRの発明者。しかもまだ存命で現役の大学教授。

 今年の京都賞の受賞者でなんと日本に来日!!

 今はクロックを用いない非同期コンピュータにご執心だ!!


 日本にも天才はゴロゴロいるぜ。

 もちろんご存知Rubyの開発者、まつもとゆきひろ氏は当然として、やはりドラゴンクエストを最初に作り上げた中村光一、8ビットマシンでマルチウィンドウシステムを実装するという狂気の沙汰をつるりとこなす、年収1億円の大学生だっ!!未だにドラクエの印税が入るという。


 学生時代に年収1億円といえば、中嶋聡

 彼が学生時代に書いたCADソフトCANDYはバカ売れし、社長よりも高い給料をバイトなのにもらっていたそうだ。

 後のInternetExplorerの開発者である。


 ハドソンの中本伸一。スターソルジャーの開発者として有名だが、実は国産オリジナルBASIC、HuBASICの開発者。かのファミリーベーシックも彼の作品だッ!ソフトウェアエンジニアながら、家庭用ゲーム機PC-Engineを設計し、伝説のパソコンX68000のOSであるHumak68kを開発した。



 そしてHAL研究所のアルバイトだった岩田聡マシン語に精通し、バルーンファイトを開発。天才プログラマーの名を欲しいままにした後、星のカービィMOTHER2MOTHER3を完成させた。スマッシュブラザーズのプロトタイプを一人で開発したことでも余りにも有名。彼が任天堂に入社後、わずか2年で初めて山内家以外の人間として任天堂の社長に就任したことで業界を驚かせた。NintendoDS、そしてWiiを経営者として支えた。泣く子も黙る伝説のプログラマーだ。任天堂の社長になりたかったらプログラマーになることだと背中で教えてくれたわけだ。




 iOS開発者の一人、増井俊之ガラケーの予測変換を発明する。日本国内のあらゆる企業の研究機関に所属した経験があるという。今は慶應義塾大学湘南藤沢キャンパスの教授だ。


 日本人がローマ字で入力してスペースバーで変換するのは、このひとのせい、浮川和宣。ジャストシステム創業者で現metamoji社長。


 東大の五十嵐健夫。イケメンの上に可愛いものばかり作るというズルい天才。学生時代に作った、2次元のイラストを描く感覚で三次元モデリングができるツール「Teddy」はタイトー*1がゲーム化するほど。そして文句なく今の日本を代表する研究者の一人だ。


 さらにラジオシティ法を発明した西田友是、日本が、いや、アジアが誇るスティーブン・A・クーンズ賞受賞者。CGの教科書として世界的に名高いFoleyの「Computer graphics: principles and practice」に唯一掲載された日本人だ。


 そして日本人にしてMITメディアラボ副所長となった石井裕。タンジブルコンピューティングの提唱者だ!


 さらに奈良先端大学の加藤博一ARToolkitの開発者。

 ARつながりでいえば、PTAMを開発したオックスフォード大学のジョーグ・クライン。


 日本のVR/ARの父、舘章とその弟子、稲見"光学迷彩"昌彦も居る。

 おっと忘れるところだった。ARといえばサイバーコードを生み出し、今も産業と学術の間で活躍するあの男、暦本純一東大教授。


 暦本純一のライバルといえば、名古屋大学の長尾確、かのニコニコ動画の成立に影響を与えた動画アノテーションサービスSymvieを生み出し、日本で最初にGPSを担いでヒューマンナビゲーションに挑んだ男。


 ああ、親日家でイメージベースドレンダリングを確立した21世紀のナンバーワン研究者、南カリフォルニア大学のポール・デベベックを忘れるなんて!!彼が居なければマトリックスは人形劇同然だっただろう。


 日本が誇るLispハッカー、竹内郁雄も忘れちゃいけない。

 


 今回はプログラマー、つまりプログラムを書く人に限定したけれども、コンピュータに関連した天才はもっとたくさんいる。


 伝えたいのは、こうした天才と呼ばれる人たちであっても、最初はただの人間だったということ。もちろん五十嵐先生や中村光一さんみたいに若くして成功した人もいれば、西田先生みたいに35歳まで博士号を貰えなかった人も居る(教授が厳しくて10本以上論文を通さないと博士号をくれなかったらしい)。


 ジョン・カーマックとジョン・ロメロだって初めてヒットを出すまでは鳴かず飛ばずの繰り返しだった。


 彼ら天才のことを学ぼう。彼らがどのようにして歴史に名を刻むような大発明をし、どんな苦悩と戦ったか。僕はそれを知ることが、自分自身も彼らのように歴史的な偉業を成し遂げるための原動力になると思っている。ただ漠然と日々の仕事をこなしていても、革命は起こせない。革命を起こすには、まず歴史に学ぶのだ。

*1:初出時カプコン