窓辺の小石 第148回 Stop Dave
今年の正月早々、Niklaus Wirth(ニクラウス・ヴィルト)が亡くなった。ヴィルトといえば、Pascalや著書「アルゴリズム+データ構造=プログラム」(原題Algorithms + Data Structures = Programs)などが有名である。
1980年台に筆者は、Turbo Pascal(写真01・02)で初めてPascalを使った。Cや他の言語などもパッケージ製品として売られていた時代だったが、どれもビジネスでの開発を想定したもので、なかなか個人では手が出る価格ではなかった。
写真02: こちらはほぼ最終版のTurbo Pascal Ver.7。この頃になるとTUIとなり、複数の編集ウィンドウやマウス操作が可能になった
C言語がいいだの、BASICはダメだの議論はあったが、8 bit/16 bitマシンに標準で付いてくるBASIC以外の言語にはなかなか手が出なかった。しかし、雑誌などでさまざまな言語が紹介され、当時漠然と、もっとちゃんとした言語が使いたいと考えていた。もっとも、当時は、何も知らない若造であり、ヴィルトの著書を読んでもサッパリ理解できなかった。
BASICもそれなりに機能は向上し、グラフィックスも可能で、機械語を併用して高速化も可能だったが、サブルーチン呼び出しが行番号でしか行えなかった。このため、ちょっと大きなプログラムを作ろうとすると、プリンタでプログラムリストを印刷し、すぐにサブルーチンの行番号を調べられるようにしておく必要があった。サブルーチンには、引数も戻り値もなく、すべて、グローバル変数で処理する。このため、変数を厳密に管理する必要があり、思いつきで使おうものなら、たちまちバグになった。
そんな中に登場したのが、個人でも買える「Turbo Pascal」(初版は1983年)である。米国での販売価格が数十ドル程度、輸入品でも1万円程度だった。初期の製品はサブセットだったが、ローカル変数があり、手続きと関数を名前で呼び出すことができ、BASICに比べると格段にプログラムが書きやすかった。のちにPC-9800シリーズにも移植されるが、筆者は、CP/M-86で動くFM-16ΠでTurbo PASCALを使いモバイルでプログラミングを楽しんでいた。
Turbo PASCAL最大の魅力は、1つのプログラムの中でソースコード編集とコンパイル、実行が可能だったこと。いまでいうIDE(Integrated Development Environment)だった。Turbo PASCALが世界最初のIDEというわけではないが、当時のコンパイラ製品は、コンパイラやリンカなどのコマンドラインツールを組み合わせた製品であり、エディタを用意して、ソースコードを作成、ファイルとして保存したソースコードをコマンドラインからコンパイルし、リンカを使って実行ファイルを得ていた。しかし、Turbo PASCALは、起動したプログラムの中にフルスクリーンエディタが組み込まれており、コンパイル、実行がTurbo PASCAL内から行うことができた。
もう1つ、インパクトがあったのは、サンプルプログラムとして付属していた表計算プログラムCALC(写真03)である。当時のMultiplanなどと同じような画面の表計算アプリケーションがPASCALで記述されていた。もちろん、サンプルプログラムなので制限は強く1画面内のみでスクロールもできないが、カーソルキーでセルを選択して数式や数値、文字列を入力でき、スラッシュでメニューを表示した。BASICでも同じようなものを作ることは不可能ではないが、行番号でサブルーチンを区別し、グローバル変数で値を戻すなんて仕組みで作るには複雑すぎる。当時、何か目の前が開かれていくようなイメージを感じた。
写真03: Turbo PASCAL Ver.1のサンプルプログラムCALC.PAS。セル数などは固定であるものの、数値、テキスト、数式の入力が可能で、“/”でメニューを表示する。当時、Pascalを使うと本格的なアプリケーション開発が可能であることを実感した
Turbo Pascalの発売元Borland社のCEOだったフィリップ・カーン(Philippe Kahn)は、スイスのチューリッヒ工科大学の学生だったとき、ヴィルトによるPASCALコンパイラーの開発現場を直接見たという。ただしTurbo PASCALはBorlandでゼロから作られたわけではなく、デンマークのPolyData社の開発したPolyPascalをライセンスし、これをIDEに組み込んだ。このPolyPascalを開発したのが、アンダース・ヘルスバーグ(Anders Hejlsberg)で、このPolyPascalはヴィルトの著書に大きく影響を受けているという。
このTurbo PASCALは、高速で手軽な開発言語として広く普及した。これに対抗したのがマイクロソフトだった。Turbo PASCALの発売から2年後には低価格のBASICコンパイラQuickBASICを発売する。サブルーチンや関数に名前を付けた定義が可能になっていたが、IDEが組み込まれるのは翌1986年のVer.2からである。QuickBASIC 2.0は、コンパイラだけでなくインタプリタも内蔵しエディタ内で実行やデバッグをサポートしていた。Turbo PASCALとQuickBASICが競合したことで、両製品は急速に進歩することになる。
今回のタイトルネタは、1968年の映画「2001年宇宙の旅」(2001: A Space Odyssey)の中のセリフである。Turbo PASCALの発売元Borland社の社名は、実在の宇宙飛行士フランク・ボーマン(Frank borman)の名前から取られた。同社のマニュアルには「Frank Borland」というおじさんキャラが描かれていた。
2001年宇宙の旅には、デイブ・ボーマン(Dave Bowman)とフランク・プール(Frank Poole)という宇宙飛行士が登場する。綴りは違うが、「フランク」、「ボーマン」つながりである。フランク・ボーマンは、この映画を見た後アポロ8号で月周回軌道への有人飛行を行った。のちに原作者のアーサー・C・クラークに会ったとき、月で「モノリスを見つけた」というジョークを無線で言いたい衝動に駆られた、と話したという。