ケン・トンプソン

ケン・トンプソン:すべての静かなる設計者

1969年にベル研究所がMulticsプロジェクトから撤退したとき、ケン・トンプソン(Ken Thompson)の手元には、隅に追いやられた時代遅れのPDP-7ミニコンピュータが残され、公的な任務もなかった。彼はそれを使ってとにかくオペレーティングシステムを構築した。Unixは現在、何らかの子孫形式で、地球上のほぼすべてのサーバー、電話、組み込み機器上で動作している。トンプソンの最も近い協力者であり、彼自身も小さくない存在であるデニス・リッチー(Dennis Ritchie)は、その最初のバージョンについて「ほとんどのアイデア、そして実際、ほとんどの作業は彼によるものだった」と述べた。

2進法の算術

ケネス・レーン・トンプソン(Kenneth Lane Thompson)は1943年2月4日、ルイジアナ州ニューオーリンズで生まれた。彼自身の子供時代についての説明は、特徴的なまでに飾り気がない。「私はいつも論理に魅了されていました。小学校の頃でさえ、2進法で算術の問題を解いたりしていました。そんな類のことです。ただ、魅了されていたから」。最後の節が、彼という人間をすべて表している。そこには道具的な目的が付随しない、知的探求心である。

彼は1965年に学士号を、1966年に修士号を、いずれもカリフォルニア大学バークレー校で電気工学と計算機科学の分野で取得した。そこでの修士論文の指導教官は、符号理論家のエルウィン・バーレカンプ(Elwyn Berlekamp)であった。ベル研究所は1966年、ニュージャージー州マレーヒルの計算機科学研究センターに彼を雇い入れた。

Unix

1967年から1969年にかけて、トンプソンはベル研究所、MIT、ゼネラル・エレクトリックの間での野心的な共同タイムシェアリングプロジェクトであるMulticsに取り組んだ。Multicsは巨大で遅く、完成が遅れていたため、ベル研究所は撤退した。トンプソンがそこから得たのは、アイデアは正しかったが実行が間違っていたという確信だった。

この起源の物語はよく証明されており、少し不条理である。彼は自分が書いたゲーム「Space Travel」をプレイし続けたく、また作業をするためのまともな環境を望んでいた。廃棄されたPDP-7上で、最小限のリソースと組織の支援なしに、彼はオペレーティングシステムの核となる部分を構築した。それは、階層型ファイルシステム、プロセス、通常のファイルとして扱われるデバイスファイル、カーネルから分離されたコマンドラインインタープリター、そしてプログラムを連結するためのパイプであった。これらの一つひとつが現在ではあまりに標準的であるため、それらを「選択」であったとみなすには努力が必要である。

設計哲学は「圧縮」であった。Unixはあらゆるニーズを予測するシステムではなく、少数の合成可能なプリミティブを提供し、ユーザーが望むものを組み立てられるようにした。1973年までには20以上のインストールが存在していた。カーネル以外の部分を容易に記述するために、トンプソンはBCPLから派生したBプログラミング言語を作成し、リッチーがそれをC言語へと発展させた。これは、世界のインフラストラクチャーソフトウェアのほとんどが今でも書かれている言語である。

無料テスト
あなたはどのくらい?

20問、8分の制限時間、そして受験者全員と比べたパーセンタイル。登録不要。

IQテストを受ける →

小さなツール、深いルーツ

トンプソンの他の仕事も同じ特徴を持っている。それは、基礎となることが判明するコンパクトなアイデアである。彼はQEDおよびedエディタに正規表現を実装し、正規表現を有限オートマトンに変換するアルゴリズムであるトンプソン構成法を考案した。今日使用されているほぼすべての正規表現エンジンは、その表記法の子孫である。

彼は1971年にチェスプログラムを構築し、その後ジョセフ・コンドン(Joseph Condon)と共に、当時のコンピュータチェスを支配した特殊目的のチェスマシン「Belle」を構築した。その後、4ピース、5ピース、6ピースのエンディングのための完全なエンドゲームテーブルベースを生成した。これはチェスの局面の全クラスに対する網羅的な解であり、エンドゲームの理論を永久に変える仕事となった。

1992年、彼はロブ・パイク(Rob Pike)と共に、地球上のあらゆる文字を運ぶことができ、かつASCIIと互換性を保つ文字エンコーディングであるUTF-8を設計した。これは現在、ウェブの90パーセント以上を占めている。彼はまた、ベル研究所が1980年代半ばにUnixのアイデアをUnix自身が到達できる以上に押し広げるために構築した分散オペレーティングシステム「Plan 9」の中心的存在でもあった。

彼の1983年のチューリング賞講演「信頼への反映(Reflections on Trusting Trust)」では、コンパイルするプログラムと自身の将来のバージョンにバックドアを挿入するコンパイラについて述べた。そのため、悪意のあるコードは誰もが読めるソースコードのどこにも表示されない。このトンプソンのハッキングはコンピュータセキュリティの基礎となる文書であり、ソースコードは2023年に注釈付きで公開された。

GoogleとGo

トンプソンは2000年末にベル研究所を退職し、2006年にGoogleに入社した。そこで彼はロブ・パイクおよびロバート・グリーゼマー(Robert Griesemer)と共に、プログラミング言語「Go」を設計した。動機についての彼の説明はぶっきらぼうである。「私たち3人は集まって、C++が嫌いだという結論に至った」。彼はC++を「相互に排他的なアイデアのごみ溜め」と呼んでいる。Goは、3人の設計者全員がすべての機能について納得しなければならないというルールに基づいて構築された。これは言語を小さく保つための規律である。

栄誉は着実に積み重なった。1980年の全米技術アカデミー選出、1982年のIEEEエマニュエル・R・ピオー賞、1983年のリッチーとのACMチューリング賞、1985年の全米科学アカデミー、1990年のIEEEリチャード・W・ハミングメダル、1994年のコンピュータパイオニア賞、1997年のコンピュータ歴史博物館フェローシップ、1998年の国家技術賞、1999年の第1回金井務賞、2011年の日本国際賞(情報通信分野)である。

ケンが天才と呼ばれる理由

ACMのチューリング賞の授与理由は、異例なほど正確な主張を行っており、その質を正確に特定しているため引用する価値がある。「UNIXシステムの成功は、いくつかの重要なアイデアを趣味よく選択し、それをエレガントに実装したことに起因する... Unixシステムの天才的な点は、プログラマーが他人の仕事の上に立つことを可能にするフレームワークにある」。

「趣味(センス)」が操作的な言葉である。トンプソンの才能は減法的である。有用な動作の最大の空間を生成する最小限の概念セットを特定し、それ以外のすべてを拒否する能力である。パイプはその規範的な例である。あるプログラムの出力を別のプログラムの入力に接続するための些細なメカニズムであり、小さなツールのコレクションを組み合わせシステムに変える。正規表現、UTF-8、Goはすべて、最小十分な設計という同じパターンを示している。彼はこれまでに生きた中で最も偉大なプログラマーの一人として日常的に挙げられており、その判断は賞の委員会ではなく、生計のためにコードを書く人々から来ている。

反対意見は、このリストの他のほとんどの人物よりも少ないが存在する。Unixは共同作業であった。リッチー、ブライアン・カーニハン(Brian Kernighan)、パイプを提案したダグラス・マキルロイ(Douglas McIlroy)らが深く形作り、チューリング賞も共有された。Unixの多くのアイデアはゼロから発明されたのではなく、Multicsから適応されたものである。トンプソンは計算機科学において理論的な結果を生み出しておらず、彼の影響力は完全に成果物と設計の判断にある。それが天才性を構成するのか、それとも非常に高度に発達した職人技なのかは正当な問いである。最も誠実な答えは、ソフトウェアにおいて両者を分離することは困難であり、トンプソンの職人技はほとんどの人の理論よりも結果をもたらしたというものである。

遺産

Linux、macOS、Android、iOS、そして事実上すべてのインターネットサーバーを実行するソフトウェアは、1969年にトンプソンが廃棄されたマシン上で一人で行った決定に端を発している。彼の文字エンコーディングは、オンラインの書き言葉のほぼすべてを運んでいる。彼の正規表現アルゴリズムは、あらゆるテキストエディタの内部に存在する。彼は2024年にコンピュータ歴史博物館のために長い口述歴史を記録し、Apple製品を捨てた後の晩年はRaspberry Pi OSを実行して過ごしている。

偉人と比較

Kim Ung Yong vs Srinivasa RamanujanAugustine Of Hippo vs Louis PasteurFriedrich Nietzsche vs Isaac NewtonAristotle vs Linus Pauling
IQランキングを見る →すべての比較 →

神童

Tathagat Avatar TulsiTathagat Avatar TulsiEarned a BSc at 11, an MSc at 12, and became an IIT professor…Lydia SebastianMensa Score 162 at Age 12 — Indian-British Doctor's Daughter…Colin CarlsonBegan university courses at nine and now forecasts the next…Rayssa LealRayssa LealViral 'Fairy of Skate' who won Olympic street silver at age 13
神童 →

遊んで、また明日

毎日の天才チャレンジ · Brain teaser
A farmer has 17 sheep. All but 9 run away. How many are left?
答えをタップ ↓
あなたはどの天才? 無料IQテスト