誕生から50年を迎えたプログラム言語BASICの歴史、その精神とは
1964年(昭和39年)5月1日は、プログラミング言語のひとつであるBASICが世界で初めて命令の実行に成功した日であり、BASICは誕生から50年という記念すべき日を迎えました。「INPUT」や「PRINT」など、自然な言葉に近い平易な表現を用いることでコンピュータープログラミングのハードルをぐっと低くすることに成功し、一世を風靡することとなったBASICですが、その起源はある大学のコンピューター教育で使うために開発された言語でした。そんなBASICはどのようにして生みだされ、どのような経緯をたどってきたのでしょうか。
Fifty Years of BASIC, the Programming Language That Made Computers Personal | TIME.com
http://time.com/69316/basic/
BASICの概念を作り上げた生みの親は、ニューハンプシャー州ダートマス大学の数学者ジョン・ケメニー教授とトーマス・カーツ教授の2名で、当初は同大学に導入されていたゼネラル・エレクトリック製のコンピューターのために開発されたプログラムでした。両教授は、当時からすでにコンピューター操作能力(リテラシー)の重要性を認識しており、学生に対するコンピューター教育の浸透を図ります。そのために開発されたのが「初心者向け汎用記号命令コード(Beginner's All-purpose Symbolic Instruction Code)」で、その頭文字をとってBASICと命名されました。
同校で使われていたBASICは特にダートマスBASICと呼ばれ、同校のメインフレームコンピューターを活用するタイムシェアリングシステムの仕組みを取り入れた設計が行われていました。高い評価を受けたBASICのシステムは、後に他の大学にも導入が進められて普及していくことになります。
現在ではほとんど考えられないことですが、当時のコンピューターの動作速度は非常に遅く、しかも結果をプリントアウトするのに長い時間がかかるなど、とにかく時間と手間がかかるものであり、その様子は「手紙のやりとりでチェスの試合を行う」と表現されていたほど。そんなコンピューターの世界でしたが、BASICは迅速に計算結果を表示して非常に高い使い勝手を提供しました。そんなBASICですが、必ずしも全ての人に好意的に受け入れられていたというわけではありません。特にコンピューターサイエンスの世界からは批判を受けることも多かったそうです。
◆BASICの誕生
BASICの生みの親の一人であるケメニー教授は、1926年にハンガリーのブダペストでユダヤ系の一族に産まれました。ナチスによる迫害を避けるため1940年にアメリカに移住し、その後にプリンストン大学に入学。大学在籍中には1年間の休学期間を設けてマンハッタン計画に参加し、その中で数学・物理学者のジョン・フォン・ノイマンに師事し、コンピューターのことを教わるなど大きな影響を受けました。その後、相対性理論で有名なアインシュタイン博士のアシスタントを数年にわたって務め、29歳の時にダートマス大学に数学部の責任者として迎え入れられるに至ります。
ダートマス大学でBASICの開発に携わることとなったのは、ケメニー教授が唱えていた「一般教養教育は重要であり、そこには数学的な要素が含まれているべきである。しかし、必ずしもその数学的知識が一般教養教育における結果に直結しているものとは限らない」という信念に基づいたものだ、とダートマス大学の現在の学部長であるダン・ロックモア氏は語ります。
当時のコンピューターを極端に表現すれば「厳重に隔離された部屋に置かれた専門家のみが触れられる装置で、一般人は近づくことすら難しい」というものでしたが、ケメニー教授は「必要な時に誰でもコンピューターに触れられることが必要である」とその重要性を唱え、コンピューターの普及に尽力しました。しかし、当時のコンピューターは非常に高価な上に、一度に1つの処理しか行うことができないものであったため、教授の理想はそう簡単には実現できるものではありませんでした。
その解決策を提案したのが、1956年からダートマス大学に加わったトーマス・カーツ教授でした。カーツ教授は、CPUの処理時間を分割して一度に複数の処理を並行して行うことができるタイムシェアリングシステムの概念を持ち込むことで、より多くのユーザーにコンピューター環境を提供することに成功します。このシステムは特にDTSS(ダートマス・タイムシェアリング・システム)と呼ばれ、世界初の大規模タイムシェアリングシステムとして現在でも知られています。
当初のシステムの構築では、人間にも理解しやすいように設計された高水準言語(高級言語)であるFORTRANやALGOLといったプログラム言語が用いられていましたが、それでも「記述のルールがややこしくて複雑すぎる」という声が挙がります。そこで、ケメニー教授とカーツ教授は、より人間の言語に近い形態を持ち、たとえば「HELLO」や「GOODBYE」と入力するだけでコンピューターがリクエストを理解してログインやログオフといった動作を行うことを可能にする言語の開発に乗り出し、1964年5月1日、後のBASIC言語の基礎となるダートマスBASICを初めて実行させることに成功しました。
こちらが初期のダートマスBASICの実行画面(クリックでGIFアニメが開きます:約3MB)。後に普及するBASIC系言語とは異なり、ダートマスBASICはコンパイラでした。
その後、1964年6月にはダートマス大学の学生向けにもコンピューターが公開され、11台のテレタイプ端末とともに活用が開始されました。初期に実装されていたコマンドには、処理結果をテレタイプで出力するPRINTや、条件式を記述するIFとTHEN、特定の行番号に飛ぶGOTOやプログラムの最後を示すENDなど、BASICではなじみの深いものがすでに含まれていました。写真はケメニー教授と娘のジェニファーさんがコンピューターを操作している様子です。
ケメニー教授とカーツ教授はこのコンピューターシステムを可能な限りオープンに利用してもらう体勢を整えます。1966年にオープンした「キューイット・コンピュテーションセンター」の広報文には「誰でも自由に施設を利用し、その用途を尋ねられることもありません。重要な研究の解析に利用してもOK、授業の課題を手っ取り早く片付けるのに利用してもOKです。フットボールゲームで遊んだり、ガールフレンドに手紙を書くのも自由です」と書かれていました。
この考え方は、当時はまだ存在していなかった「パーソナルコンピューティング」という概念を先取りするものだったと言え、そのおかげで学内はもちろん、ハーバード大学やプリンストン大学といった他大学とも電話線を通じて処理を可能にするなどの広がりを見せます。ケメニー教授ですら当時はその影響力を予測できておらず、後の1991年のインタビューでは「コンピューターに接する機会を提供できること、そしてそれが遠く離れた場所に対しても提供できるということは、まったく私の予想を超えたものでした」とその規模が非常に大きなものであったことを語っています。
◆BASICバッシング
このようにおおむね好意的に受け入れられてきたBASICですが、コンピューターの世界には反対意見も存在していました。特に目立って論陣を張っていたのが、オランダのコンピューター科学者であるエドガー・ダイクストラ教授でした。
By Wikipedia
2002年に亡くなったダイクストラ教授はBASICに関して「BASICに一度でも触れたことがあるものに対して良いプログラミングを教えることは事実上不可能である」と発言するなど、強硬な反BASIC論者として知られていました。実際にはFORTRANについて「子供じみた無秩序さ」と評したり、PL/Iは「致命的疾病」、COBOLに至っては「犯罪行為」とまで批判していたためにBASICのみを標的にしていたものではなかったのですが、なかでもBASICについて取り上げていたのは、プログラム内のあらゆる場所にジャンプすることを可能にする「GOTO文」の働きでした。
構造がめちゃくちゃで、無秩序に組み立てられたプログラムのことをスパゲティコードと呼んで暗に批判することがありますが、教授はGOTO文がまさにその元凶として無計画に組み立てられるBASICプログラムへの批判を行いました。なお、今でもこの論理を支持する意見も多く、GOTO文を排除したプログラムが推奨されることもあります。
これに対し、カーツ教授はあえて「今ではそのような批判の一部は、『BASICの成功に対する嫉妬心の裏返しだ』と言うこともできます」と反論し、BASICはダイクストラ教授のようなエキスパート向けのものではなく、主にプログラミングの世界に入ってくる初心者のためだったという立場をとります。事実、1975年の時点でBASICはプログラムの世界への入り口として大きな役割を担っていました。
◆「パーソナル・コンピューター」の普及とBASIC
それまでは大規模な設備が必要だったコンピューターの世界でしたが、1975年にMITSから発売された世界初の個人向けコンピューター「Altair 8800(アルテア8800)」の登場により、パーソナルコンピューターという概念が世間に浸透していきます。CPUにインテル8080を搭載したAltair 8800は、自作組み立てキットであれば400ドルから500ドル(当時のレートで12万円~15万円)程度、組み立て済みの完成品でもおよそ500ドルから600ドル(約15万円~18万円)程度という安価で販売されたこともその流れに拍車をかけます。
多くの人々がこのマシンに心を奪われましたが、この中には後にMicrosoftを立ち上げるビル・ゲイツ氏とポール・アレン氏の姿がありました。Altiar 8800にBASICを移植する可能性を見いだしたゲイツ氏はMITSに連絡を取り、実際にはまだ完成していないAltair 8800向けのBASICパッケージの売り込みに成功。そこから8週間かけて実際に製品の完成にこぎ着け、二人は「Micro-Soft」(当時はハイフン入り)を設立し、後のMicrosoftに至る道のりを歩き出すことになりました。
手頃な価格と、BASIC言語を採用したことによる使いやすさが両立していたAltair 8800は成功を収め、後に続くコモドールのPET 2001やレディオシャックのTRS-80、そしてAppleのApple IIも当時はBASICを搭載するモデルとして販売されていました。
By Wikipedia
Apple IIで走るBASICプログラムで組まれた「ブロック崩し」の画像がこちら。クリックでgifアニメが開きます(約1.5MB)。
Microsoftが開発したBASICの大きな特徴は、人間が理解しやすい感覚で記述されるインタプリタ言語で書かれていることでした。これは言い換えると「誰でもプログラムの中身を自由に見ることができる」ということであり、当時プログラムを学んでいた人はBASICプログラムの内容を参考にしたり、場合によってはプログラムの一部をそのまま拝借することが比較的自由にできる時代でした。
プログラミングを学ぶ人が増えたことで世の中にはさまざまなプログラムがあふれるようになります。まだインターネットが存在する以前の時代、自作したプログラムを公開する場所といえば書店で販売されているプログラミング専門誌というのが常識となっていました。アメリカでは「BASIC Computer Games」というプログラムを集めた書籍が人気を集めたほか、日本でも「月刊アスキー」や「I/O」のような専門性の高いもの、そして「ログイン」や「マイコンBASICマガジン」などのゲーム性の高い雑誌が人気を集めていました。
また、この当時の特徴としてはメーカー各社が独自に進化したBASICを採用していたことが挙げられます。たとえば以下のコマンドは、コモドールの「コモドール64」上でのみ動作するプログラムコードです。
10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10
このプログラムをコモドール64で走らせると以下のような迷路模様が表示されるのですが、他のマシンでは全く動作しない、といった状況がよく発生していました。(クリックでgifアニメが開きます:約4MB)
◆斜陽の時代へ
上記のようにさまざまな盛り上がりを見せていたBASICですが、次第にその影響力にも陰りが見えてきます。キーボードを手打ちしてプログラムを入力して走らせていた時代から、次第にプログラムはカセットテープやフロッピーディスクを介して読み込ませるという時代に移り、表計算ならば「Lotus 1-2-3」、データベース管理には「dBASE」といった「パッケージソフト」という概念が登場してくるようになります。
この流れをよく見ていたのがMicrosoftで、ポール・アレン氏は当時を振り返って「最初のうちはBASICで築いた土台を強固にすることを考えましたが、すぐにそんな時代ではないことを悟りました。単体アプリケーションが次の主流になることを感じ取った我々は、WordやExcelといったアプリケーションの開発へとシフトすることになりました」と語ります。
1984年にはAppleが初代Macintoshを発表してグラフィカルユーザインタフェース(GUI)が一般に知られることとなり、それまでのBASICを主とするキャラクタユーザインタフェース(CUI)は次第に勢力を弱めていくことになります。そして1990年にWindows 3.0、1995年にはWindows 95が登場することにより、その流れは一気に加速していくこととなって行くのです。
それでも、BASICの流れは完全に途絶えたというわけではなく、その系譜は「Visual Basic」や、それにつづく「Visual Basic .NET」に引き継がれていくことになります。
◆今後のBASIC
誕生から50年を迎えたBASICは、一つのターニングポイントを迎えたといってもよさそうな状況に差し掛かっています。時代はコードを手打ちで入力して記述する段階から「オブジェクト指向プログラミング」の時代へ、そして更に新しい技術が開発され続け、「BASICはすでにアンティークになっている」という声も聞こえるようになってきました。
しかし、プログラミングの基礎としてBASICを活用する流れは受け継がれています。Microsoftは新たにプログラミングを学ぶ初心者向けにSmall Basicというソフトを提供しています。
そして何よりもBASICを通じてケメニー教授とカーツ教授が実現したかったことは「誰にでもコンピューターが使える世の中」ということ。現在、携帯電話を所有している人のうち半分はフィーチャーフォンではなくスマートフォンを所有しており、その性能は当時のスーパーコンピュータを上回るものであるということを考えると、2人が実現したかった世界は今まさに現実のものになっているといえます。
ダートマス大学の教室から始まったBASICの精神は、さまざまな形で現代を形作ってきたといっても過言ではなさそうです。
・関連記事
プログラミングなどコンピューターサイエンスを必修科目に取り入れた高校が登場 - GIGAZINE
若かりし頃のビル・ゲイツがMicrosoftの今後やプログラミングについて語るインタビュー - GIGAZINE
Apple IIのDOSソースコードが30年以上の時を経て公開される - GIGAZINE
27年前に購入したMacでインターネットにつなぐとどうなるのか? - GIGAZINE
MS-DOS 6.22からWindows 8 Proまで順にアップグレードしていくとどうなるのか? - GIGAZINE
MicrosoftがMS-DOSとWordのソースコードを一般公開、サイズはなんと300KB未満 - GIGAZINE
公開されたMS-DOSとWordのコードには数々のジョークやイタズラが隠されていた - GIGAZINE
「100ドルをもらうか?コードを教わるか?」ホームレスがアプリ開発に成功した秘話 - GIGAZINE
iPhoneアプリの作り方講座で生徒の年収がなんと5倍に - GIGAZINE
iPhoneアプリを販売したらこうなったよという売上の記録と教訓 - GIGAZINE
・関連コンテンツ