概要
この記事では、歴史的に重要だが現在は「ほぼ死んでいる」とされるプログラミング言語について解説します。各言語の背景、技術的意義、衰退の理由を簡潔にまとめます。影響の検証方法や、言語間の影響関係の見極め方にも触れます。現代の主流言語に受け継がれた要素も強調します。「忘れられた」言語の価値再発見を目的としています。
忘れられた歴史的プログラミング言語の意義
- 歴史的な重要性 を持ちながら、現代ではあまり使われていないプログラミング言語の解説
- COBOL、ALGOL、APL、BASIC、PL/I などが代表例
- それぞれの言語が 現代のプログラミング やツールに与えた影響の整理
- 衰退の理由 や、なぜ「死んだ」と見なされるのかの考察
- 技術的・社会的な意義 の再評価
言語の影響をどう検証するか
- 「最初に発明した」 と 「最初に普及させた」 の違いの認識
- 影響の確実な証拠は 引用(citation) に基づく
- 言語Yのマニュアルが言語Xを参照
- Yの論文がXを引用
- Yの作者が「Xに影響された」と明言
- 引用は推移的 で、複数段階の影響も追跡可能
- 言語間の類似構文(cognate) からも影響を推測
- 例:RubyのselectメソッドはSmalltalkの影響
- ただし 独立発明や共通祖先 の可能性も考慮
COBOL
- 1960年、CODASYLによる開発
- 業務用の標準高水準言語を目指し誕生
- レコード型データ (構造体的データ)の導入
- FORTRANやALGOLにはなかった階層的なデータ構造を自動分解
- 現代言語への直接的な構文的影響は少なめ
- しかし 業務システムの基幹 として今も稼働
- 衰退理由
- 他言語との交流や発展が少なく、後継言語にDNAが引き継がれず
- 複雑すぎてコンパイラ開発が遅れ、他言語に市場を奪われた
ALGOL
- 1960年、ALGOL委員会による設計
- アルゴリズム記述用の「形式化された擬似コード」
- レキシカルスコープ、構造化プログラミング、ネスト関数 など現代言語の基礎を多数導入
- BNF記法やブロックコメント などもALGOL由来
- 衰退理由
- 研究用途に特化し、I/O未定義で実用性に乏しかった
- 拡張版(JOVIAL, SIMULA, CLU, CPLなど)が派生し、直接の子孫よりも拡張言語が普及
- ALGOL-68は大きく仕様変更し、影響力が低下
APL
- 1962年、Ken Iversonによる開発
- 元は配列数式記法、後にIBMで言語化
- 配列処理 を言語の中心に据え、短い記述で大規模数値演算が可能
- 科学計算や金融分野で大活躍
- 独自記号キーボード が必要で普及に壁
- 現代のR、numpy、pandas、Matlab などに大きな影響
- 衰退理由
- ASCII非対応、異種データ混在不可、文字列処理の弱さ
- 後継のJは記号を排除したが普及は限定的
BASIC
- 1964年、John Kemenyによる開発
- 非エンジニア向けにFORTRANを簡易化
- リアルタイムインタプリタ を初めて実装
- マイクロコンピュータ時代の標準言語 となり家庭・教育現場で普及
- 社会的インパクト が大きく、多くの著名プログラマの入門言語
- Visual Basic としてOfficeマクロ言語に発展
- 衰退理由
- 「子供向け」「低レベル」と見なされ、ハード進化とともにPascalやCに置き換え
PL/I
- 1966年、IBMによる開発
- FORTRANとCOBOLを統合し、科学・業務両用を目指す
- 構造体型データ、ポインタ、定数、関数オーバーロード など多数の先進機能を初実装
- C言語への影響も大きい(コメント構文等)
- 衰退理由
- FORTRAN派にはCOBOL寄り、COBOL派にはFORTRAN寄りと不評
- IBM独占のコンパイラ提供によるベンダーロックイン不信
- マイクロコンピュータ時代にBASIC等に敗北
まとめ
- 「ほぼ死んでいる」言語にも現代に続く重要な技術や発想が多い
- 現代プログラミングの礎 となった構文や概念の再発見
- 歴史を知ることで技術の本質理解が深まる