クリステン・ニルガード:オブジェクトを発明した男
今日、プログラマーが「クラス(class)」、「オブジェクト(object)」、「継承(inherits)」と書くたびに、彼らはノルウェーのオペレーションズ・リサーチ研究者が1960年代初頭に海戦や工場の待ち行列をシミュレートするために造った語彙を使用している。クリステン・ニルガード(Kristen Nygaard)はソフトウェアエンジニアリングを再発明しようとしたわけではなかった。彼は、その仕事には小さすぎるコンピュータ上で、現実世界の混沌とした離散的システムをモデル化しようとした。その狭い問題を解決する過程で、彼はオブジェクト、クラス、継承という、それ以来書かれたほとんどすべての主要なプログラミング言語の基礎となる概念的な足場を築いたのである。
モンテカルロからミサイルの軌道まで
ニルガードは1926年8月27日にオスロで生まれ、1956年にオスロ大学で数学の修士号を取得した。彼の論文は、抽象確率論におけるモンテカルロ法の理論的側面に関するものだった。彼の職業人生は大学からではなく、ノルウェー国防研究所(Norwegian Defense Research Establishment)で始まり、そこで1948年から1960年までの12年間、コンピューティングとプログラミングからオペレーションズ・リサーチへと移り変わった。1957年までにはノルウェー初の国防オペレーションズ・リサーチ・グループを率いており、1959年にはノルウェーオペレーションズ・リサーチ学会を共同設立し、1964年まで議長を務めた。これは「本物の」仕事が始まる前のアカデミックな寄り道ではなく、Simulaが解決するために構築された問題を生み出した仕事そのものであった。それは、原子炉の炉心や船団のように複雑で相互作用のある確率的システムを、コンピュータが実行できるほど明快に表現するにはどうすればよいかという問題である。
Simulaの構築
1960年、ノルウェー計算センター(Norwegian Computing Center)はニルガードを雇用し、真の研究機関へと成長させる助けを求めた。彼は1962年に研究部長となった。そこで彼は同僚のオーレ=ヨハン・ダール(Ole-Johan Dahl)と共に、コンピュータサイエンスを静かに作り変える一対の言語の開発に1960年代を費やした。1961年から1965年にかけて構築されたSimula Iと、1965年から1968年にかけて開発されたその後継機Simula 67は、ALGOL 60を拡張し、それまで誰もこれほど完璧な組み合わせで組み立てたことのない一連のアイデアを追加した。それは、データとそれに対して作用する手順をバンドルした「オブジェクト」、そのようなオブジェクトのファミリーを定義する「クラス」、あるクラスが別のクラスを拡張することを可能にする「継承」、仮想量、そしてコルーチンベースのマルチスレッド実行形式であった。プログラムの構成単位としての「オブジェクト」と「クラス」のペアリングは、手順やデータテーブルではなく、オブジェクト指向プログラミングがその名をとる単一のアイデアであり、それは誰かの後からの改良ではなく、ニルガードとダールのアイデアである。
幅を広げ続けたキャリア
ニルガードのアカデミックな人生は、その土台から広がりながらも、それを生み出した応用の本能を決して失うことはなかった。彼は1975年から1976年までデンマークのオーフス大学で教鞭をとり、その後オスロ大学に移り、1977年からパートタイムで、1984年から1996年までフルタイムで勤務した。彼の研究はますますコンピューティングの社会的帰結に向かい、参加型デザインと密接に関連する「システム開発のスカンジナビア学派」として知られるものを確立するのに貢献した。これは、システムを使用する労働者がそれを受け取るだけでなく、設計を支援すべきであるという考えである。1976年からは、ベント・ブルーン・クリステンセン(Bent Bruun Kristensen)、オーレ・レーマン・マドセン(Ole Lehrmann Madsen)、ビルガー・メラー=ペダーセン(Birger Møller-Pedersen)らと共に、1986年から実装された別の汎用オブジェクト指向言語BETAに取り組んだ。1980年代には、スカンジナビアのSYDPOL研究プログラムの議長を務め、その後、職業指向の言語拡張に関するCost-13プロジェクトを指揮した。彼の最後の研究関心は、「包括的オブジェクト指向学習(Comprehensive Object-Oriented Learning)」と呼ばれるイニシアチブを通じた、入門的なプログラミング教育そのものであった。
欧州連合を打ち負かした活動家
コンピュータサイエンスの枠外で、ニルガードは並外れて結果を伴う政治的な人生を送った。彼は1960年代の自由党の全国執行委員会から労働党へ移り、1971年から2001年まで研究政策委員会に所属した。彼の最大の公的業績はプログラミングとは何の関係もない。1988年、彼はノルウェーと欧州経済共同体(EEC)に関する情報委員会を引き継ぎ、1990年に「Nei til EF(EUへのノー)」として再編した。彼はそれを1994年までに人口400万人中14万5000人のメンバーを擁する、ノルウェー史上最大の政治組織へと育て上げた。彼は1994年のノルウェーのEU加盟反対国民投票キャンペーンを、中央党党首アンネ・エンゲル・ラーンスタイン(Anne Enger Lahnstein)と共に共同で率いた。同国は史上最高の投票率である88.8パーセントを記録し、反対が52.2パーセントで可決された。彼は1995年に議長を辞任したが、戦略委員会で働き続け、1996年から1997年まで、通貨同盟に反対する欧州ネットワークである「欧州反マーストリヒト運動」の調整を支援した。
評価
名誉は着実に蓄積され、キャリアの終わりにすべて一度に訪れた。ルンド大学は1990年に彼に名誉博士号を授与し、オールボー大学は1991年に彼を最初の名誉博士とし、コンピュータ・プロフェッショナル・フォー・ソーシャル・レスポンシビリティは同年に社会・専門職的責任に対するノーバート・ウィーナー賞を授与した。1999年、彼とダールはノルウェーデータ協会からローシング賞を共同受賞した。2000年にはオブジェクト・マネジメント・グループが彼を「オブジェクト技術概念の創始者」として名誉フェローに任命し、ハーラル5世は彼を聖オーラヴ勲章の司令官に任命した。技術的なピークは2001年に訪れた。彼とダールは「Simula 67の設計と実装を通じたオブジェクト指向プログラミングの基礎となる概念の導入」に対してIEEEジョン・フォン・ノイマン・メダルを共同受賞し、数か月後にはコンピュータ界最高の栄誉であるAssociation for Computing Machinery(ACM)のA.M.チューリング賞を、「プログラミング言語Simula IとSimula 67の設計を通じて、オブジェクト指向プログラミングの出現に不可欠なアイデアを提供した」として受賞した。オブジェクト技術国際協会(AITO)はすでに2004年に彼らを称えてダール=ニルガード賞を設立しており、この分野が彼らを創始者とみなしているという永続的な年次承認となっている。
クリステンが天才と呼ばれる理由
ここでの評価は、彼が日々構築している仕事に基づく人々によって授与された、分野最高峰の技術賞であるチューリング賞とフォン・ノイマン・メダルという、名誉のための飾りではなく確固たる技術的賞であるため、評価のケースは並外れて堅固である。両方の賞は、一生涯の一般的な功績ではなく、「オブジェクトクラスモデルの発明」という特定の概念的成果を挙げている。その特異性が重要である。ニルガードの天才性は、生の数学的妙技ではなかった。彼自身の大学院論文はモンテカルロ理論に関するしっかりとしたものだが特筆すべきものではなく、同僚たちはSimulaにおける正式な言語設計の厳密さについては概してダールを評価している。ニルガードの特異な貢献は概念的なものであった。それは、離散イベントシミュレーションがまったく新しいプログラム構成単位を要求するという認識であり、それが特定のドメインに対するトリックではなくパラダイムになるまでその単位を一般化する規律であった。これは、誰よりも速く既知の問題を解決することではなく、未来の未解決問題のカテゴリー全体が、まだ誰も名前を付けていなかった隠れた構造を共有していることに気づくという、より希少で名前を付けるのが難しい天才性である。誠実な反論は、SimulaのアイデアがSmalltalk、C++、Javaを通じて主流に到達するのに10年以上かかったこと、そしてニルガードは後年のキャリアの多くを技術的優位性を押し進めるのではなく政治的活動に費やしたことである。そのため、彼の影響は本物であったが、制度的に認識されたのは人生の最後の2年間だけであった。
レガシー
ニルガードは2002年8月10日、オスロで心臓発作のため75歳で亡くなった。1951年にヨハンナ・ニルガードと結婚し、3人の子供を育て、7人の孫に恵まれた。彼はまた、ノルウェー自然保護協会の環境保護委員会の議長を務め、社会から取り残されたアルコール依存症患者のための実験的な社会施設を構築するのを長年支援した。総じて、コンピューティング、政治、社会福祉を切り離されたキャリアではなく、ひとつの本能の連続として扱った人生であった。今日書かれているエンタープライズソフトウェアからモバイルアプリに至るまでの、ほぼすべてのオブジェクト指向プログラムは、彼とダールが半世紀前に船や原子炉をシミュレートするために発明した語彙で今も動いている。
