インターネットには、スティーブ ジョブズのようなソフトウェア巨人の物語や称賛があふれています。しかし、ソフトウェアの隆盛に責任を負い、その功績によりスティーブ ジョブズのような人々が技術帝国を築くことができた人物、デニー リッチーは、世界中が忘れ去られた人物です。この名前に馴染みのない私たちの多くにとって、私たちが彼を称賛すべき理由は次のとおりです。
創造主
デニス・リッチーの功績が私たちにとってそれほど重要である理由は、彼が 60 年代後半から 70 年代前半にかけてベル研究所で働いていたときにアセンブリ言語の限界を認識した人物だからです。そこで彼は、ベル研究所の研究員である Ken Thompson とともに、より優れたバージョンの UNIX を柔軟に作成できる言語を作成することにしました。この言語は、物語によっては、トンプソンの妻ボニーにちなんで名付けられた B として知られるようになったか、または 60 年代半ばにケンブリッジで開発された言語 BCPL として知られるようになりました。
B はインタープリタ言語であり、CPU 上で実行される中間ソフトウェアによって実行されます。したがって、今日誰もが知っているように、この言語はその後、C として知られるコンパイル言語に道を譲りました。C の最初の反復は、今日私たちが知っている言語とそれほど違いはありませんでした。これはコンパイルされてマシンコードに変換され、CPU によって実行されます。しかし、それが作成された当時、それは高級言語とみなされ、リッチーとトンプソンの両者は、それが必要な柔軟性を与え、同時に高速性を維持できる言語であると考えていました。
これは、変数を定義するための完全なデータ構造と「型」を提供し、リッチーとトンプソンが新しい UNIX カーネルを構築するために使用したものです。 「彼らはプログラムを書くために C を構築しました」と、10 年後にベル研究所に入社することになるパイクは言います。 「そして、彼らが書きたかったプログラムは UNIX カーネルでした。」
レガシー
リッチーの常套句は、C にはアセンブリ言語の力とアセンブリ言語の利便性が備わっているというものでした。つまり、C はハードウェアに非常に近いところで動作するため、美しい創造物ではないことを認めています。しかし今日では、C が低レベル言語になってからの進歩により、C は低レベル言語になりましたが、当時はニーズを満たすのに十分な高レベル言語でした。
有名なベル研究所でリッチーの向かい側に 20 年間働いたプログラミング界の伝説的人物であり、現 Google 社員であるロブ・パイクは、リッチーが亡くなった数日後、この言語とその作成者について次のように語っています。
「大規模なプログラムを作成する場合、それが UNIX でした。すべてのユーザー、ファイル システム、ディスク、プログラムの実行など、さまざまなコンポーネント間のやり取りを管理する必要があります。実際には、作業している情報を適切に表現する必要があります。それが私たちがデータ構造と呼ぶものです」とパイク氏は言います。
「データ構造を持たずにカーネルを作成し、UNIX と同じくらい一貫性と優雅さを持たせることは、はるかに困難な挑戦だったでしょう。彼らはすべてのデータをグループ化する方法を必要としていましたが、Fortran にはそれがありませんでした。当時、これはオペレーティング システムを作成する珍しい方法であり、これがリッチーとトンプソンが最終的に OS を他のプラットフォームに移植することを構想するきっかけとなり、70 年代後半にそれを実行しました。 「これにより、UNIX があらゆる場所で実行されるようになるための水門が開かれました」とパイク氏は言います。 「すべてはCさんのおかげで可能になりました。」