読者です 読者をやめる 読者になる 読者になる

デニス・リッチーに学んだ、生きるために重要なこと

デニス・リッチーさんが10月12日にお亡くなりになった。

デニス・リッチーさんは、C言語を開発し、UNIXを世に送り出した偉大なコンピュータ技術者。現在のコンピュータは、彼が作り出した技術が礎となって発展をしたといっても過言ではない。

私がプログラマとして最も愛したC言語、システムの実行環境として最も信頼を寄せているUNIX。技術者として最も敬愛するデニス・リッチーさんから私が学んだことについて記したい。

それまでのコンピュータは、利用価格が高かったため、規則でがんじがらめに縛られていた。
私が社会人のスタートを切った1980年後半は、メインフレームと呼ばれる大型コンピュータが一般企業の事務処理の主力機だ。

CPUを利用した時間で利用料金が決まるので、作成したプログラムをコンパイルするたびに利用料金が徴収される。だから、コンパイルエラーを大量に出力し、何度もコンパイルする輩はこっぴどく上司に怒られるはめになるのだ。

この時代の主力言語は、COBOLFORTRANCOBOLは事務処理用の言語で、やたら手続きを記述する必要があり面倒この上ない言語。一方のFORTRANは、数値処理を得意とする言語で、数字の精度こそ高いが、言語仕様が貧弱でやりたいロジックがなかなかコードに落とせない、また、コードを記述できる桁がきっちり決まっている。
私はメインフレームFORTRANを利用する機会が多かったが、貧弱な体つきのくせにやたら威張っている感じがするFORTANが大嫌いだった。(まさにスネ夫タイプ)

C言語は自由だった。
コードを記述するスタイルが一切規定されていない。エディター上の自由な位置にプログラムを書いて良いのだ。

また、無い機能は自分で作成してライブラリ化し、他のプログラムでの再利用が簡単にできた。
今でこそ、当たり前にできることだが、当時では画期的なことだった。C言語は、発想や思想が自由だったから、多くの技術者に受け入れられたのだ。

自由にコードを記述できるようになった副産物として「美しいプログラム」というキーワードが盛んに言われるようになった。誰が書いても大きな差が出ないCOBOLFORTRANとは違い、C言語で書いたプログラムはプログラマの個性がそのままコードの表現される。

誰もが見やすいプログラムを書くことは、当時は賛否両論あったと思う。
誰もが見やすいプログラムを書くことは当たり前なのだが、ひとは自由を手にするととたんに気が大きくなるものだ。だから、ひとは自由を手に入れたら、自らを律する能力を身につけなければならない。

プログラムを書くスタイルは、大きくわけて2つの流派が存在した。
ANSIで規定されたスタイルで書く「ANSI Cスタイル」とバイブル本であるプログラミング言語Cでサンプルコードのスタイルで書く「K&Rスタイル」だ。私は今でも、美しいプログラムを書くには「ANSI Cスタイル」が絶対だと思っている。

しかし、世には「K&Rスタイル」が浸透した。今でも、PHPのサンプルなどで「K&Rスタイル」で記述されたコードを見る。自分で利用するときは、必ず「ANSI Cスタイル」に直してから利用し始める。この作業をすると心がスーっと落ち着くのだ。

自由なスタイルでプログラムが書けるようになったのは、コンピュータの利用料金が下がったからだ。(誰にも文句を言われずに何度もコンパイルエラーが出せるようになった)
これは、ハードウェアの進化が最大要因だが、これらコンピュータを支えたのが、デニス・リッチーさんが開発に参加したUNIXである。

デニス・リッチーさんは、作りかけのゲームを完成させるため、倉庫に眠っていたDEC社のPDP-7(だったと思う)で動くオペレーティングシステムを作成した。それがUNIXである。
UNIXC言語とともに、その移植性の高さから多くのコンピュータに移植されていった。

私たちは、デニス・リッチーさんがつくった礎のお陰で、自由にコンピュータを使える技術を得た。自由にコードが書けるC言語、自由に好きなだけ利用できるシステムであるUNIX

デニス・リッチーさんの行動の源泉は、さまざまな制約から自由になることだった。

現代は、インターネットが当たり前の社会インフラになり、いつでもどこでもコンピュータの恩恵を受けることができる。

デニス・リッチーさんの時代は、経済的な事情で自由を奪われていた。私たちの時代は、どうだろうか?何か重要な自由を忘れてはいないだろうか?

毎日さまざまなメディアから、多種多様な情報がプッシュされてくる。経産省の調べでは、12年前から比較して、現在、社会に流通している情報量は670倍になっているそうだ。

現代人は、通り過ぎていく情報に塩漬けにされ、思考停止状態に陥ってはいないだろうか。
何がよいのか悪いのか。どの道でどこに行くのか。自分の頭で考えて、自由を手に入れなければならない。彼の教えてくれた「自由」を自分でも実現するため。

享年70歳。
デニス・リッチーさんの功績に心から感謝し、心から冥福をお祈りします。

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠