うしPのサイト

文学・思想の一丁目一番地

ジョン・バッカス入門 科学者入門シリーズ40

第一章 ジョン・バッカスってどんな人?

ジョン・バッカスという名前を聞いて、すぐに顔が思い浮かぶ人は少ないかもしれない。アインシュタインのように写真が教科書に載っているわけでもないし、スティーブ・ジョブズのように伝説と物語がセットで流通しているわけでもない。けれど、もし「現代のコンピュータ世界にもっとも深く影響を残した人物は?」と聞かれたなら、バッカスはその候補に必ず入る。しかも、目立つ形ではなく、土台として、私たちの足元に残っているタイプの人物だ。

私たちがコンピュータに何かをさせたいとき、どうするか。今なら、プログラムを書く。PythonやJavaScriptやCやRustなど、言語を選んで書く。そしてそれを実行する。これは現代人にとって当たり前すぎる風景だ。だが、その「当たり前」は、最初から当たり前ではなかった。コンピュータが生まれたころ、プログラムとは「機械に直接命令すること」だった。人間が機械語やアセンブリのような低レベルの命令列を作り、計算機を動かしていた。やっていることは知的な計算なのに、手段は職人の手作業だった。ひどい世界である。

バッカスは、その世界に穴を開けた。穴というより、別の世界への扉を作った。人間が機械語の泥沼に沈まなくてもいいように、もっと人間の言葉に近い形で計算の意図を書けるようにした。そうして生まれたのがFORTRANである。FORTRANは「世界で最初の実用的な高級プログラミング言語」と呼ばれる。重要なのは“実用的”という部分だ。発明として新しかっただけではない。現場で勝ったのだ。研究室だけで完結せず、実際に使われ、普及し、歴史を動かした。

ジョン・バッカスがすごいのは、天才のひらめきで世界を変えたというより、「世界が必要としているものを、ちゃんと形にして勝ち切った」点にある。コンピュータの歴史は、ときどきロマンで語られる。誰かが理想を語り、それが未来になる、というような物語だ。しかし現実はもっと泥臭い。計算機は高価で遅く、メモリは少なく、操作も面倒だった。高級言語なんて贅沢品に思われてもおかしくなかった。なぜなら、高級言語を使えば、遅くなるからだ。当時の人々からすれば「そんな便利なことをしたら性能が落ちる。性能が落ちるなら使えない」という判断は、当たり前に正しい。

その常識に対して、バッカスがやったことはシンプルで恐ろしい。高級言語を作るだけではなく、高級言語から機械語へ翻訳するコンパイラを、とんでもなく高速にした。速さというのは、単に動作が速いという意味だけではない。生成される機械語が“人間が手で書いたものと同じくらい速い”という意味である。ここが革命の中心だ。もしコンパイラが吐き出すコードが遅ければ、高級言語は流行らなかった。便利だろうが何だろうが、遅いものは捨てられる。だがバッカスのチームは、その壁を殴り壊した。

コンパイラ最適化という言葉は、現代だと地味に響くかもしれない。だがこれは、技術史における巨大な勝利だ。つまり「人間が頑張らなくても、機械が頑張ってくれる」という方向に、世界を押し進めた。プログラマの時間と精神は有限だ。機械語の最適化に人生を吸われるより、問題そのものに頭を使ったほうがいい。コンピュータを使う目的は、機械語を書くことではない。計算をさせることだ。バッカスはその当たり前を、当時の現実に叩きつけた人物だった。

バッカスの人生は、伝記的に見ると面白いタイプの紆余曲折がある。彼は最初から「天才少年が数学で突き抜けた」みたいな一直線のキャリアではない。若いころは進路が定まらず、医学を学んだ時期もあったし、そこから別の道を選び直している。だが、その回り道が逆に効いている。一直線の学者というより、現場の問題を解決する工学者としてのセンスが磨かれた。コンピュータが“未来の抽象物”ではなく、“目の前の道具”に見えていたのだと思う。

彼が働いたのはIBMだ。巨大企業の研究開発部門である。ここも重要だ。コンピュータの言語の歴史には、大学の研究室から生まれたものも多いが、FORTRANは産業の中で育った。現場の要求に耐える必要があった。数学者や物理学者が使うための道具として、実用性が最優先になる。きれいな理論だけでは通らない。速く、正しく、現場で使えること。バッカスはそこで勝った。

FORTRANの名前は「FORmula TRANslation(数式翻訳)」から来ている。要するに、数式をそのままプログラムとして書けるようにするというコンセプトだ。これが当時どれだけ衝撃だったかを想像してほしい。いまの私たちは、数式をコードに落とすのを当たり前にやっている。けれど当時は、数式を計算機に渡すには、機械語に翻訳し、メモリ配置を考え、レジスタを意識し、ジャンプ命令で流れを作り、気が遠くなる手間が必要だった。そこに「数式っぽく書けば動きますよ」という道具が現れたら、科学技術計算の世界が一気に加速するのは当然だ。

バッカスの功績は、プログラミングを“人間の思考に寄せた”ことにある。機械に合わせて人間が苦しむのではなく、人間の意図をそのまま書いて、機械が頑張って理解する。これは思想としても強い。しかも、それを「理念」ではなく「現場で動く形」にしてしまった。ここに彼の怖さがある。理想を語る人は多い。だが実装して勝つ人は少ない。バッカスは後者だった。

続きはこちらから
ジョン・バッカス入門 科学者入門シリーズ40
ジョン・バッカス入門 科学者入門シリーズ40
科学者入門一覧に戻る
うしPのページに戻る