C言語とUNIXを生み出した一人である天才コンピューターサイエンティスト「デニス・マカリスター・リッチー」

ジョブズが天才エンジニアとするならデニス・リッチーは最高の天才コンピューター・サイエンティスト

コンピューターサイエンスの目覚ましい発展に多大なる影響を与えた天才コンピューターサイエンティスト「デニス・マカリスター・リッチー」が亡くなる一週間前に亡くなったのが「スティーブ・ジョブズ」です。両人共とてつもない偉業を残して亡くなられたIT界の偉人なのですが、デニス・リッチーについて語る人が少ないと感じているので、彼の偉業を偉業を紹介させていただきたいと思います。

異論はあるかも知れませんが、私はジョブズを天才エンジニアだと思っています。エンジニアとは既にある技術を一般人が欲しい形に落としこみ、市場を切り開く人のことを言うと思っていて、ジョブズほどそれを実践した人は居ないと考えています。GUIも広めましたし、PDAの進化系とも言えるスマートフォンも普及させました。業務用では無い個人用のコンピューターと言う意味で、パーソナル・コンピューターという概念を生み出したのも彼だと思っています。

そもそもジョブズはエンジニアでは無いと定説のように語られる現状を非常に憂いています。エンジニアリング・デザインがエンジニアの仕事では無いと言うのでしょうか。ウォズニアックも卓越したエンジニアだったと思いますが、ジョブズの方が一枚上手の天才だったと感じています。

さて、ジョブズを天才エンジニアに位置づけるなら、デニス・リッチーは天才コンピューター・サイエンティストです。ジョブズが天才エンジニアという軽薄は表現で語るには偉大すぎる人であるように、デニス・リッチーについても天才というのは控えめな表現だと感じています。彼は世界を変えた偉人の一人です。

C言語 UNIXの父

デニス・リッチーはハーバード大学で物理学と応用数学の学位を持ち、当時最先端のIT研究施設だったベル研究所に務めるエリートでした。そんな彼の最大の業績は「UNIXをCで置き直した」ということです。UNIXもCも彼の属するチームで開発されていたので、Cという高級言語で動くUNIXというオペレーティング・システムを作ったと言っても良いかも知れません。

これだけを聞くと世界を変えたと言うのは大げさ過ぎてピンと来ないかも知れませんが、この仕事はIT界に多大影響を与えることになります。

命令セットとはプロセッサーに出せる命令の集まりのことです。現在であれば、主なコンピューターの命令セットとして想定しなければいけないものは、x86かその64bit拡張、ARM程度の種類しかありません。この当時の命令セットはマシンごとに違うのが当たり前でした。プロセッサーは規格化されていなかったのです。

また、当時のコンピューターは非常に遅く、プログラムは命令セットと一対一で対応するアセンブラ言語で書くのが普通でした。潤沢な計算資源がある現代ではJAVAだのバイトコードだのスクリプト言語だの言っていられますが、当時はそういうわけには行かなかったようです。アセンブラは命令セットに完全に依存しているので、プログラマーたちマシンによって個別のプログラムを書く必要がありました。

今の常識で言えばそんな不便なことはありませんが、当時はそれが世の中の常識でした。コンピューターは直訳すると計算機ですが、当時この機械はあくまでプログラムした様々な処理を自動で実行してくれる計算機に過ぎませんでした。大きさや処理能力、価格など様々な要素が今とは全く違い、そもそも業務用のものや軍用のものしかありませんでした。今のように個人が気軽に所有出来るものではありませんでしたし、今のようにコンピューターが音楽を奏でたりする世界を想像出来る者は、一部の天才だけだったでしょう。コンピューターと言った時にどんなものを指すのかが、今とは違い過ぎて居たのです。

「UNIXをCで書き直した」という業績は現在のコンピューターと当時のコンピューターを分かつ一つのターニングポイントとなりました。Cで書かれたUNIXは「Cのコンパイラを書くことができればUNIXが載る、UNIXが乗ればUNIXで動くソフトが使える、Cが動くハードウエアを作ろう。」という潮流となったのです。

それまでにもCのような高級言語を策定されていましたが、CほどOSに向いていた高級言語はありませんでした。Cはより機械語に近い表現にまで対応していて、アセンブラと比べてもそこそこ速くプログラムを実行出来ました。Cはそれだけで大きな発明であり、新しい言語が設計される時もよく文法がお手本にされますし、Cで書かれた現役のプログラムも大量にあります。Cはそれだけでも十分凄まじい発明でしょう。

UNIXが革命的だったのは改変などを自由に許可していたと言うことです。これにより、UNIXをベースにして、自分がやりたいことに対して足りない部分を書き加えると言うスタイルが流行します。UNIX上で動くプログラムやUNIXの拡張機能のプログラムをコミュニティ間でシェアすることが出来るようになったのです。そのような特徴から、UNIXはオープンシステムと呼ばれ、Cと共に強烈な訴求力を以って市場に受け入れられていきます。

IT界には抽象化というスラングがありますね。CとUNIXは結果的にハードウエアを抽象化しました。言い換えれば、CとUNIXさえ理解していれば後ろのハードウエアのことは考えなくても良いと言うことです。現在の当たり前は昔誰かがした発明なのです。他社製のコンピューターに乗り換えても同じプログラムが動くというソフトウエア業界の根底にある当たり前はデニス・リッチーが作ったと言っても過言ではありません。

さて、余談ですがUNIXは残念ながらこの後に暗黒時代を迎えます。スタートから権利関係についてアバウトだったUNIXは権利争いで自滅するのです。現在オープンであることは技術の発展を加速させると言うUNIXが産みだした概念は、Linuxのライセンスとして作られたオープンソースライセンス「GPL」やMIT、BSD、Apacheなどのその他のオープンソースライセンスとして残っています。Linuxについては性能の必要なサーバー事業などに採用されるOSはLinuxカーネルを採用したものが圧倒的に多数で、そのカーネルとしてのポテンシャルの高さは群を抜いたものになっていますし、オープンソースプロジェクトはとてつもないスピードでその数を増やし、巨大なソフトウエア資産を形成し、最早オープンソースの成果物を利用していないソフトウエアエンジニアは居ないと言う状況になりました。ソフトウエアエンジニアリングの成立に関わる重要な概念を創りだしたデニス・リッチーはこれからも世界中で賞賛されるべき偉人の一人でしょう。

Add a Comment

メールアドレスの入力は任意です。(公開されることはありません)