海外コメンタリー

「BASIC」誕生60周年--コンピューター利用を容易にしたシンプルな言語の歴史

Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 川村インターナショナル

2024-05-15 07:30

 「Python」や「JavaScript」が学ばれるようになるずっと前、米国時間1964年5月1日の夜明け前の暗闇の中で、コンピューター史におけるささやかながら非常に重要な出来事がダートマス大学で幕を開けた。数学者のJohn G. Kemeny氏とThomas E. Kurtz氏がGeneral Electricの「GE-225」メインフレームを操作して、独自に考案した言語の最初のプログラムを実行した。その言語こそ、初心者向け汎用記号命令コード、すなわち「BASIC」だ

 BASICは最初に普及した言語ではない。その栄誉を得たのは、ビジネス分野では「COBOL」、エンジニアリング分野では「FORTRAN」だった。しかし、1960年代半ばから1980年代初頭までは、コンピュータープログラミングの初心者の多くが最初にBASICを学んでいた。

 BASICの魅力はそのシンプルさにある。インタープリター型言語として設計されたため、プログラムを1行ずつ記述して実行できる。このアプローチは初心者から強い共感を得た。

 コンピューティングが縁遠く、少々難解な分野だった世代のユーザーにとって、この使いやすさは導きの光となった。BASICが登場するまで、コンピューターを操作するには、扱いにくいパンチカードと格闘し、複雑なコードを習得しなければならなかった。Kemeny氏とKurtz氏が構想したパラダイムはそれまでと異なり、コンピューターがエンジニアの専売特許ではなく、一般の人々のツールになるというものだ。

 Kemeny氏は後にこう語っている。「キャンパスの学生全員がコンピューターにアクセスでき、全教職員が必要に応じて教室でコンピューターを使用できるというビジョンを思い描いていた」。そのためには、理系の学生だけでなく文系の学生も使用できる言語(専攻科目としてのコンピューターサイエンスはまだ存在していなかった)を提供するとともに、中央のマシンにカードを読み込ませて低速でバッチジョブを実行するのではなく、ほぼリアルタイムで扱えるシステムを用意する必要があった。その言語がBASICであり、そのシステムが「Dartmouth Time-Sharing System」(DTSS)だ。

 筆者のように、1970年代にコンピューターサイエンスの世界に入った人には、別のタイムシェアリングOSである「UNIX」と、熟達はおろか習得もはるかに困難な言語「C」から始めた人もいるだろう。

 だが当時、BASICとDTSSがコンピューティング能力へのアクセスを民主化し、開発者がプログラムを中央のマシンで同時に実行できるようになった。これは当時としては急進的なコンセプトだった。

 最初のバージョンのコマンドはわずか14種類。これには、PRINT、IF、THEN、そして程なくして悪名を馳せることになるGOTOがあった。GOTOについて、オランダの著名なコンピューターサイエンティストであるEdsger Dijkstra氏が次のように述べている。「BASICに触れたことのある生徒に良質なプログラミングを教えるのは事実上不可能だ。プログラマーを目指す彼らの精神は、再生の見込みがないほど引き裂かれている」

 GOTOによって、プログラマー志望者は後に「スパゲッティコード」として知られるコードをいとも簡単に記述できた。これは、複雑に絡み合って理解やデバッグがほぼ不可能なソースコードのことだ。そう、BASICは単純なプログラムなら簡単に記述できるが、複雑なプログラムを書くには全く適していなかった。

 それでも、「簡単」がキーワードだった。そのため、初期の開発者はBASICを使い続けて、次々にコンピューターに移植していった。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]