言葉がいっぱい

これは『電撃王』や『電撃プレイステーション』に載せていたコラムの中で思い入れが深いものを、細かくアップトゥデートして載せていくシリーズ。
今回は、1996年の電撃王に載せたコラム。

■■■

久しぶりに昔々の話。
1970年代後半にマイクロコンピュータが登場した時、言語は一種類しかなかった。
アセンブラって奴だ。(当時はアセンブラって言っても、そのアセンブラをソフトで使える場合がほとんどなかったので、機械語と呼ばれることの方が多かったけど)
アセンブラってのは簡単に言えば、コンピュータに分かる言葉を直接人間が入れるって代物なんだけど、人間様がコンピュータに合わせるんじゃ効率も悪いし、プログラムを組むのも大変だよね。

アセンブラは正確には「機械語を人間に分かる形にしたもの」で、実際には「アセンブラのプログラムを書き、それをソフトのアセンブラが翻訳する」ことで初めて「機械語」になる。で、僕がコンピュータを始めた当初は「アセンブラを実装すること自体が大変」だったので、実際には「アセンブラのプログラムをノートに書き、それを手で機械語に変換する」、ハンドアセンブルって作業をする時期が2年ぐらいあった。
例えばZ80もしくは8080で”call 9000h”ならば CD 00 90 てな具合だ。


そういうときに便利なのが高級言語。英語やら日本語やらをベースにして、アセンブラよりは遥かに人間に分かりやすい(つまりバグを出しにくい)ものになっている。というわけで、当時の大型コンピュータとミニコンピュータ(ミニコンと略されていた)にあった、様々な言語が移植されたワケなんだけど‥これがとても使えたもんではなかった。
メモリが沢山(なんと32キロバイト程度は最低必要)、フロッピーとか当時はとても高価な周辺が必要で(当時の物価で軽く数十万円とかの信じられないような値段)、おまけにソフトも超高価(ソフト一本、当時の物価で50万円とか)‥つまり、使えないっていうよりは高すぎて、手が出ない代物だったワケ。

大型コンピュータは現在で言う「メインフレーム」。本当に当時はでかかったのだ。ミニコンは大型と比べると本当に小さかった。マイクロコンピュータって言葉は「ミニコン」に対応して出てきたモノ、と考えてもいいぐらい。
また売られていた言語は主にCP/M(実質的にメジャーになった最初のOS)用の物が最初のうちは多かった。後にMS-DOSが登場し、普及するまでは、CP/M以外のOSではほとんど商売になっていなかったと考えていい。

ヒマはあるけど、金がない場合にコンピュータでやることはたったの一つ。ソフトを自分で作ること‥ってワケで、まさに山のように言語が出てきたワケ。
その中で、代表的なモノを紹介しよう。
まず驚き中の驚きの言語が、VTL(Very Tiny Language)。6800(モトローラが作った最初の8ビットCPU)で動く、基本のルーチンがたったの”768バイト”しかない言語。768バイトっていうと、漢字に換算して、400字詰め原稿用紙1枚分に16文字足りない文字量。
なんとプログラムを組んで動かすのまで含めても2キロバイト、つまり原稿用紙2枚分あればなんとかなった。これで一応プログラム言語と呼べるモノが動いていたんだから奇跡としか思えないよね。(ちなみに、僕の使っているプログラム言語だと、コンパイラやらライブラリやらを合わせるとウンメガバイト。軽く1000倍以上にサイズが膨らんでいることになる。必要な最低のメモリが4メガバイトで、全部合わせるとハードディスクを100メガバイト以上消費している。)

もちろんこれを書いたときは90年代半ばで、今はライブラリやコンパイラ全部含めれば数百メガバイトだ。

それから超有名な”Tiny BASIC”。これはPALO-ALTO TINY BASICと呼ばれるベーシックが有名で、一昔前のベーシックブームの火付け役になった言語。こいつも一番小さいものは原稿用紙3枚ほどのサイズ。
ちなみにBASICには猛烈に沢山の方言があり、有名なマイクロソフトのベーシックから、全然有名でないNIBLE-BASICまで、ともかく何種類のベーシックがあったのか全く想像もつかないほどだ。

これらの”BASIC”群の雰囲気は、DSi上でプチコンという名前で追体験が可能になっている。3DS用があってBTキーボード対応なら1000倍遊べるのにw
プチコンのweb
似たような言語はPC上にもいくらでもあるのだけど、PC上のものは雰囲気が違うのだ。

日本でもの凄く流行したのが”GAME”。”GAME”と言ってもゲームじゃなくて”General Algorithmic Micro Expressions”の略で、BASICの英語の部分を全部記号に置き換えたような代物。これはVTLの拡張形みたいな言語なんだけど、たったの1.5キロバイト(つまり原稿用紙2枚分だ)のメモリで動いて、おまけに凄く速度が速かったので、もの凄く流行った。
この言語に至っては、コンパイラまで登場して、その名前の通り、本当に沢山のゲームが書かれ、また本当に沢山のマシンに移植された。(実際、日本であった有名なマイコンのほとんどの上で動くようになっていたと思う)
あと、あまり流行らなかったけれど、FORM(フォーム)っていう大型コンピュータの上で動いていたFortran(フォートラン)の簡易版とか、ALGOL/PASCAL系の言語TL/1(Tiny Language/1)、Micro Pascal(マイクロパスカル)、全然流行らなかったけど高性能だったBASIC/09とか、APL(A Programming Language)とか、BASE(ベース)とかWICS(ウイックス)とか有象無象を合わせると、もういくつあったのやら想像もつかないほどの数の言語があった。
で、これらの言語はパソコンにBASICが標準的に載るようになっても、BASICより速度が速かったり、メモリを使わなかったり、はたまた「趣味」であったりと、さまざまな理由で愛用され続けてきたんだけど、1980年代前半あたりから、ジワジワと廃れはじめて、ほんの数年で誰も使わないモノになり、消え去ってしまった。
どうして、あっというまにこれらの言語は消え去っていったのだろうか?
それには2つの理由がある。
まず一つはパソコンのマシンパワーが十分に大きくなり、趣味ではなく仕事として使えるようになってきた‥つまり、趣味で作られたような言語を使ってプログラムするマニアの時代が1980年代前半で終わりを告げ、ワープロとして使うとか、スプレッドシートとして使うとか、趣味でなく、仕事として使う人が主流になりだしたってことだね。
もう一つはパソコンそのものの市場が大きくなったことで、安くて性能のいい言語がメーカーから提供されるようになって、別に個人で言語を作らなくても、充分にいいプログラムは組めるようになった、ってこと。
特にTurboシリーズで有名なBorland(ボーランド)の”Turbo Pascal”とか”Turbo C”は、その言語の低価格化に先鞭をつけ「個人で言語を作るより、メーカーの言語を使った方がいい」ってことの決定的なイメージを作ったと思う。
そんなわけで、僕も含めて、プロは言語を作る人を専門にしている人以外は、もう言語を作ることはほとんどないし、ましてや、アマの人が言語を作るなんてのは、まるでないと言っても間違いではない時代になってしまった。
実際のところ、言語を自分で作るぐらいなら、メーカーお仕着せの言語を使った方が性能もいいし、ライブラリも揃っているし、プログラムだってずっと組みやすい。だから自分で言語を作るメリットなんてほとんどない。
でも、昔、全部、自分で作っていた時代の事を思い出すと、それがノスタルジーだということは分かっているけど、本当に楽しかったと思ってしまうし、使い辛いのは分かっているけど、いま、もう一度”GAME”を使ってみたいなあ、と思ってしまうのだ。

■■■

これを載っけたのは、このあとやっぱり世界が変わるからだ。1990年代いっぱいは、ボーランドがMSにいいようにやられたりメトロワークスが退潮(2005年に解散することになる)していったりで、開発環境はGNU とMSに集中していく流れ以外は、これといった大きな変化はなかった(見えにくかった)けれど、90年代末のJavaの台頭あたりから始まり、2000年代に入ってからインターネットの発達とマシン性能の向上で、急速にスクリプト言語(Light weight programming Languages を略してLLなんて呼ばれたりする)のプログラム環境が花開いていく。
そしてwebアプリ・自作ゲーム・仕事など、まさに様々な理由でperl, php, python, ruby, action/java script, Lua といった、言語文化が花開き、今では様々な軽量言語をそのとき・その環境に合わせて使うのがケッコー当たり前になっている。
さすがに”GAME”だの”TL/1″だのほどの軽量ぶりではないにしても、今のスクリプト言語は1-2世代の前のゲームマシンなんかよりよほど強力なゲームを作れる環境で、遊んで欲しいなあ…と思うが、ことゲームを書くならunityだのgame makerだのgame saladだのがあるのに、言語を勉強する必要もないだろうか…なんて思ってしまったりもするのだった。
ところで、表題に出てきた言語のうちBASICはさすがに簡単に検索が効くのだけど、FORMだのTL/1だのGAMEだのBASEだのWICSになるとまるで情報が残っていない…なんとも悲しいので、ちょっとだけここに自分の知っている事で、普通の人は知らないことを書いておく。
FORMはハドソンから発売されていたMZ-80シリーズ用の整数型Tiny Fortranコンパイラ。このコンパイラの制作者は僕が行った当時ハドソンの技術の頭目をやっていた野沢さん。本人は元はミニコンだったか大型だったのかの技術者だったのが、作ったFORMがハドソンに売れて、そのままハドソンに入ることになったらしい。本人はFORMは気に入っていたらしい。
BASEはキャリーラボが発売していた「BASICのような表現が可能なアセンブラ」だけど、中身を開発していたのはアルファシステムの今ではお偉いさんになった創業メンバーあたり。これまたハドソンで一緒に仕事してたとき、いろいろ話を聞いた。
当時、こうして作った人達が埋もれていくのがあまりに悲しいので、ここに記録として残しておく次第である。

LinkedIn にシェア
Pocket