自分がコンピュータを使い始めたのはいつのことだったろうか。あんまり昔なので忘れてしまったが、たしか中学生の頃(1983年ぐらい?)だったので、コンピュータ歴も22年ぐらいになるのだろうか。雑誌の読者アンケートなどでも「コンピュータ歴」で「それ以上」のところにしかマルをつけようがない。
そもそも雑誌のたぐいを買うことは少ないし、読者アンケートハガキを出したりはしないのだが、自分がマルを付けるべき選択肢がなかったらどうしよう? などといらぬ心配をしてみたりもする。
昔話が増えるのは歳をとった証拠、と反省はするのだが、今回も割と昔の話である。ただし、昔のモノが現代にリバイバルするという話だ。
その20年前頃、コンピュータといえば自分でプログラムを組んで動かすのが普通だった。パッケージソフトウェアの流通などという仕組みはまだ存在せず、雑誌に掲載されているプログラムリストを打ち込んで動かすぐらいが関の山であった。
その頃、老いも若きも、ほぼみんなが1つの言語を使ってプログラミングを行っていた。BASICという言語だ。
BASICにはなにか長ったらしい、さも後から無理矢理つけました然の正式名称があったはずだが、忘れた。Googleで検索してもすぐに出てこなかったので、世間的にも「まあ別にいいや」ぐらいの扱いになっているのだろう。
脱線してしまった。BASICはその名のとおり、初心者や入門者向けの言語で、簡単な英語ライクな命令でプログラムを記述できるものだ。
10: FOR I = 1 TO 10
20: PRINT I
30: NEXT I
数字を1から10まで画面に表示するプログラムをBASICで書くとこうなる。行番号を付けて記述するというのが、時代を感じさせるところである。ちなみに、AppleScriptで同じ処理を書くと、
repeat with i from 1 to 10
log i
end repeat
となる。雰囲気はそんなに変わらない。PRINTは標準出力に文字/数字を出力する命令で、logはイベントログウィンドウに履歴を出力するデバッグ用の命令という違いはあるが、動作は同じである。
その20年前の時分にコンピュータを習得した、という人でBASICを習得した人は多い。だが、当時はプログラミングを行っていたものの、今もそうかといえば、さにあらずという人が大多数だろう。そこまで苦労をしなくても、コンピュータで仕事は行えるようになったからだ。
昔とった杵柄と呼ぶべきか、BASICなら分るが、いまのBASICはシステムが複雑になっていてイベントドリブンなんて分らない、という人は意外と多いに違いない。新しい環境について勉強するのは面倒だが、昔のままの環境なら使えるという人も割といるだろう。
ChipmunkBASICというフリーのBASIC処理系がある。あくまでインタプリタ(逐次実行系)であるため、単体のアプリケーションを作成できるわけではないのだが、この昔ながらの行番号BASICを今のコンピュータ環境上に実現するものだ。
■ChipmunkBASIC
作者のRon Nicholson氏とは以前からメールのやりとりを何度かしており、Orkutでも見つけて、すぐに友達登録をしてもらった。Macが68KからPowerPCに移行した時分に、真っ先にPowerPC対応したソフトの中に、このChipmunkBASICがあった。
その当時は「そんなものもあるのか」ぐらいにしか思っていなかったのだが、そこから数年後、PowerPC G3と呼ばれる、割とスピード面でブレークスルーを築いたCPUをMacが搭載したときに、なにげなくChipmunkBASIC用にプログラムを書いて動かしてみた。
「!!!!!!!!!!」
その驚きを文字で表現しようにも、感嘆符(エクスクラメーションマーク)のつながりでしか表現しようがない。もう、とにかくめちゃくちゃ高速だったのだ。
高速なプログラムを書くにはC言語などで記述してコンパイルして……と、思っていたので、まさかBASICがビュンビュンのぎゅんぎゅんに動き回るとは思ってみなかった。
白いiBookが登場したときに、ポケットコンピュータのBASICやアセンブラとChipmunkBASICの速度比較を行ってみた。意味はあまりなかったが、ずいぶん感心したものだ。自分にしか納得できない指標ではあるものの、自分が納得できればそれでよいのだ。
ChipmunkBASICはMac OS/Mac OS X用のほか、Windows 98/2000/XP用、x86 Linux用が配布されている(ちょっと前まではHP-UXとかIrix用もあったような気がするのだが)。Palm OSにも移植され、HotPaw Basicの名でシェアウェアとして公開されている。すべてRonが自分で移植したというのがすごいところだ(CodeWorriorによるクロスコンパイルらしい)。
今でも、大量の単純バカ作業的なバッチ処理の必要に迫られると、超高級言語のAppleScriptではなく、ChipmunkBASICでささっとプログラムを書いて実行する。10万件のシリアルナンバーからアスキーコードを算出するのに、ファイルの入出力を含めてたったの1分程度であった。
確かに、C言語で組んでコンパイルして実行すれば、かなり高速に実行できるのは分るのだが、どうも自分とは相性がよろしくない。かたくなに拒み続けていたら、超高級言語のAppleScriptに出合って「これだよ、これ!」と惚れ込んでしまったのだが、BASICも(たまに文法を忘れるが)自分にとって最低限の手間で目的を果たすことができる環境のうちのひとつだ。人にあんまり自慢するものでもないので、コッソリ使っているが……要は結果が得られればよいので、これでもいいのだ。
今から覚えるという人にはおすすめしないが、昔に行番号つきBASICを覚えたという人には、ぜひ試してみていただきたい。