詳述 · 19件の出来事
プログラミング言語の歴史
1950年代
Grace Hopper が Remington Rand の UNIVAC I 上で A-0 を動かし、1952年5月のピッツバーグの ACM 全国大会で「The Education of a Computer」として発表した。A-0 がしたのは、呼出番号で指定された副ルーチンをテープの図書館から探し、引数の受渡し命令を組み立て、入口と出口を繋ぎ替え、アドレスを付け直して1本のプログラムを吐くことである。現代の用語では、これはコンパイラよりリンカ/ローダに近い。IEEE が2024年に建てたマイルストーン銘板も A-0 を「リンカ/ローダとして機能した一連の仕様」と記す。ただし当時「compile」は図書館から集めて綴じるという意味で使われており、Hopper 自身の論文は一貫して compiling routine と書く。「最初のコンパイラ」という通説は、語の意味が変わったことを勘定に入れていない。

NASA (Great Images in NASA, via Wikimedia Commons) · Public domain · Commons ↗ John Backus 率いる IBM のチームが1954年から約3年をかけて開発し、1957年4月に IBM 704 向け FORTRAN(FORmula TRANslator)の最初のコンパイラを顧客へ出荷した。数式を数式に近い記法で書く試みは Autocode や Laning–Zierler の系統が先行していたが、FORTRAN の決定的な点は、手書きアセンブリに匹敵する機械語を吐く最適化コンパイラを実用水準で成立させたことにある。以後「高水準言語で書くと遅い」という前提が崩れ、コンパイラ言語が職業プログラマの現実的な選択肢になった。
よくある質問
- FORTRAN は世界初の高水準言語なのか
- そう言い切れません。数式に近い記法をコンパイルする試みは Autocode や Whirlwind 上の Laning–Zierler が先行します。FORTRAN が最初だったのは、手書きアセンブリに匹敵する機械語を吐く最適化コンパイラを実用水準で成立させたことです。
- FORTRAN の開発にはどれくらいかかったのか
- John Backus 率いる IBM のチームが1954年から約3年をかけ、1957年4月に最初のコンパイラを顧客へ出荷しました。

null0 (Wikimedia Commons, via Flickr) · CC BY-SA 2.0 · Commons ↗ MIT の John McCarthy が1958年から設計に着手した言語。 目的は「Advice Taker」── 宣言文を与えると常識的に振る舞う機械 ── の実験環境で、 設計は1960年4月の CACM 論文「Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I」で公表された。 現在も広く使われている高水準言語としては FORTRAN に次いで古い。 McCarthy が人間の書く記法として想定していたのは M 式で、 S 式はその内部表現にすぎなかったが、 Steve Russell が論文中の eval を IBM 704 の機械語に落として動かしてしまい、 S 式がそのまま表層構文になった。 コードとデータの同一表現、 再帰、 リスト処理、 自由記憶リストの自動回収(論文中では reclamation、 のちのガベージコレクション)、 lambda による関数の値化 ── 後続言語が繰り返し再発見する概念の多くが、 すでに1960年の論文に書かれている。 Scheme・Common Lisp・Clojure が直系で、 ML から Haskell に至る関数型の系譜も強い影響を受けている。
よくある質問
- LISP は誰がいつ作ったのか
- MIT の John McCarthy が1958年から設計に着手した。 設計が公表されたのは1960年4月の CACM 論文「Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I」である。 現在も広く使われている高水準言語としては、 FORTRAN に次いで古い。
- なぜ LISP は括弧だらけなのか
- McCarthy が人間の書く記法として想定していたのは M 式で、 括弧の S 式はその内部表現にすぎなかった。 ところが Steve Russell が論文中の eval を IBM 704 の機械語に落として動かしてしまい、 S 式がそのまま表層構文として残った。
- ガベージコレクションは LISP が起源なのか
- 自由記憶リストの自動回収は1960年の論文にすでに書かれている(論文中の語は reclamation で、 ガベージコレクションという呼び名は後のもの)。 コードとデータの同一表現、 再帰、 lambda による関数の値化も同じ論文にある。

CODASYL / US Department of Defense · Public domain · Commons ↗ 米国国防総省が招集した CODASYL の短期委員会(Short Range Committee)が、事務処理向けの共通言語 COBOL(Common Business-Oriented Language)の最初の仕様をまとめ、1959年12月17日付で提出した。執行委員会の承認は1960年1月7〜8日、国防総省による刊行は同年4月である。仕様書自身が着想の源として挙げるのは Sperry Rand の FLOW-MATIC、IBM の Commercial Translator、AIMACO の三つ。FLOW-MATIC を生んだ Grace Hopper は CODASYL の技術顧問であり、仕様を書いた短期委員会の委員ではない ── 「COBOL を書いた人」という通説は、その貢献を取り違えている。英語に近い構文と固定小数点10進演算で、金融・保険・行政システムの主流言語となった。仕様策定から65年以上を経た2026年現在も基幹系で動き続けており、2022年の Micro Focus の調査は日々稼働する COBOL を8000億行超と推計している。
よくある質問
- COBOL を作ったのは Grace Hopper か
- いいえ。Hopper は CODASYL の技術顧問であり、仕様を書いた短期委員会の委員ではありません。ただし仕様書自身が着想の源として挙げる三つのうちの一つ FLOW-MATIC は、彼女のチームの成果です。
- COBOL は今も使われているのか
- 使われています。2022年の Micro Focus の調査は、日々稼働する COBOL を8000億行超と推計しています。
1960年代
13名の代表が1960年1月11日から16日までパリで会議を開き、Peter Naur が編集した「Report on the Algorithmic Language ALGOL 60」が同年5月の Communications of the ACM に載った。1958年チューリッヒ会議の暫定報告(ALGOL 58 / IAL)を全面的に書き直したものである。この報告が持ち込んだものは三つある。第一に、構文を metalinguistic formulae で機械的に定義した ── John Backus が1959年のパリ ICIP で示した記法を Naur が整えたもので、のちに Donald Knuth の提案で Backus-Naur 形式(BNF)と呼ばれる。第二に、begin と end で括るブロックと、ブロックごとに識別子の有効範囲を閉じる規則。第三に、再帰的に呼べる手続き。ALGOL 60 自体の商業的採用は限られたが、以後の手続き型言語はほぼすべてこの報告の子孫である。

Dartmouth College (Wikimedia Commons) · Public domain (PD-US-no notice) · Commons ↗ ダートマス大学の John Kemeny と Thomas Kurtz が設計した BASIC が、午前4時ごろ、カレッジホール地下で最初に走った。大学自身の年表は、この時 Dartmouth Time-Sharing System(DTSS)が2台のテレタイプから同時に投入された同一のプログラムを実行し、それぞれに正しい答えを返したと記す ── 言語の誕生であると同時に時分割システムの誕生でもあり、両者は最初から不可分だった。BASIC は専門家でない学生に時分割計算機を使わせるための言語であり、ダートマスは処理系を無償で配り、周辺の高校にも端末を引いた。この無料公開が、次の十年に BASIC を家庭用計算機の標準言語に押し上げる。最初の実装はインタプリタではなくコンパイラで、DTSS の平均故障間隔は当初5分だった。
1970年代

Denise Panyik-Dale (Wikimedia Commons, via Flickr) · CC BY 2.0 · Commons ↗ Bell 研究所の Dennis Ritchie が、Ken Thompson の B 言語に文字型と型システムを加えて C 言語を設計。1973年夏に UNIX カーネル自身が C で書き直され、1977年の Interdata への移植で、汎用 OS をソースの再コンパイルだけで異種アーキテクチャへ動かせることが実証された。高水準言語で OS を書いた例は Multics(PL/I)など先行があるが、C が決定的だったのは、コンパイラの出力がアセンブリと競合できる速さと小ささを保ったまま、それを可能にした点にある。1978年の K&R 本『The C Programming Language』は ANSI 標準化までの事実上の言語定義となり、C は半世紀以上にわたってシステムプログラミングの標準であり続けた。C++、Objective-C、C#、Go、Rust、Zig など、現在のシステム言語の多くは C の系譜から派生したか、C を意識して設計されている。
1980年代

The wub (Wikimedia Commons) · CC BY-SA 4.0 · Commons ↗ Xerox PARC の Alan Kay・Dan Ingalls・Adele Goldberg らが開発した Smalltalk が、1980年に Smalltalk-80 として結実した。翌1981年に Tektronix・Hewlett-Packard・Apple・DEC へ実装レビュー用として PARC の外に初めて渡り、1983年の Version 2 で一般に公開される。すべてがオブジェクトであり、メッセージ送信が唯一の操作という純粋なオブジェクト指向設計は、後の Objective-C、Ruby、Java、C# など主要言語のオブジェクトモデルに直接または間接に影響した。

ICPCNews / photographer Victor Zavyalov (Wikimedia Commons) · CC BY 2.0 · Commons ↗ Bjarne Stroustrup が AT&T Bell 研究所で1979年に「C with Classes」として始めた C の拡張。Rick Mascitti が1983年夏に C++ と命名し、1985年10月、最初の商用実装が『The C++ Programming Language』初版と同時に出た。Simula 由来のクラスを、実行性能を C と同等に保ったまま持ち込む設計方針で、ゲームエンジン、金融取引システム、組込み機器、ブラウザ実装など、低レイヤと高抽象の両方を要求される領域に定着した。ISO 標準化は1998年(ISO/IEC 14882:1998、C++98)。
よくある質問
- C++ は何年に作られたのか
- 答えは三つに分かれます。Bjarne Stroustrup が AT&T Bell 研究所で「C with Classes」として始めたのが1979年、C++ という名が付いたのが1983年夏、最初の商用実装が出たのが1985年10月です。
1990年代

Alessio Bragadini (Wikimedia Commons) · CC BY-SA 2.0 · Commons ↗ 1989年12月、オランダの CWI に在籍していた Guido van Rossum が、クリスマス前後の休みを埋める「趣味の」プロジェクトとして書き始めた汎用言語。出発点は、自ら開発に加わった教育用言語 ABC への不満だった。名前は蛇ではなく Monty Python's Flying Circus に由来する。0.9.0 は1991年2月20日に Usenet の alt.sources へ投稿され、1.0.0 は1994年1月26日。シンプルで読みやすい構文、ダックタイピング、豊富な標準ライブラリ、後に「Pythonic」と呼ばれる文化を持ち、2000年代に Web 開発(Django・Flask)、2010年代に科学計算とデータ科学(NumPy・SciPy・pandas)、2010年代後半以降は機械学習(TensorFlow・PyTorch)の事実上の標準言語となった。van Rossum は2018年7月に BDFL(終身慈悲深き独裁者)を退き、2019年2月に初の Steering Council が選出されて統治を引き継いだ。
よくある質問
- Python の名前は蛇に由来するのですか。
- いいえ。Monty Python's Flying Circus に由来します。Guido van Rossum は1989年12月、オランダの CWI でクリスマス前後の休みを埋める趣味の企画として書き始めました。
- Python 1.0 はいつ出ましたか。
- 1994年1月26日です。最初の公開版 0.9.0 は1991年2月20日に Usenet の alt.sources へ投稿されました。

Peter Campbell (Wikimedia Commons) · CC BY-SA 4.0 · Commons ↗ Sun Microsystems の James Gosling らが家電組込み向けに設計した言語「Oak」は、商標が既に押さえられていたため Java と改名され、1995年5月23日の SunWorld で HotJava ブラウザとともに発表された。Sun はこれを「インターネット向けのオブジェクト指向プログラミング環境」と称した。この日配布されたのは SunOS・Solaris・Windows NT 向けのアルファ版で、JDK 1.0 の出荷は1996年1月23日。ブラウザ内で動く Applet と JVM(Java 仮想マシン)による移植性、そして Sun のスローガン「Write Once, Run Anywhere」が、企業システム開発の主流を一気に Java へと吸い寄せた。2010年1月の Oracle による Sun 買収で運営は移管されたが、Spring・Hadoop・Android(アプリを Java 言語で書く)など、エコシステムは依然として巨大。

Martin Kliehm (Wikimedia Commons) · CC BY-SA 2.0 · Commons ↗ 1995年5月、Netscape の Brendan Eich がブラウザ内で動くスクリプト言語の試作を10日間で書き上げた。「10日」が指すのはこの試作であって、出荷された言語ではない。社内コード名は Marc Andreessen が提案した Mocha、9月の Netscape Navigator 2.0 ベータでは LiveScript の名で公開され、12月4日の Netscape・Sun 共同発表で JavaScript に改名された。改名は Sun との提携によるもので、商標は Sun が取得して Netscape にライセンスした ── Java との関係は技術ではなくこの取り決めにある。Navigator 2.0 製品版(1996年3月)が JavaScript 1.0 を載せ、標準化は ECMA-262 第1版(1997年6月)。長く「玩具」扱いされたが、2008年の Chrome と V8 エンジン、2009年の Node.js、React・Vue・Angular による UI フレームワークの波を経て、世界で最も広く書かれる言語の一つになった。
よくある質問
- JavaScript は本当に10日で作られたのか
- 10日で書かれたのは1995年5月の試作であって、出荷された言語ではない。公開は同年9月の Netscape Navigator 2.0 ベータに LiveScript として、JavaScript 1.0 を載せた製品版 Navigator 2.0 は1996年3月である。
- JavaScript と Java はどういう関係か
- 技術的な派生関係はない。1995年12月4日の改名は Netscape と Sun の提携によるもので、商標 JavaScript は Sun が取得して Netscape にライセンスした。関係はこの取り決めにある。
- JavaScript の名前は何度変わったのか
- 社内コード名は Marc Andreessen が提案した Mocha、公開時の名は LiveScript、そして1995年12月4日の共同発表で JavaScript になった。標準化は ECMA-262 第1版(1997年6月)である。

Mathias Meyer (Wikimedia Commons) · CC BY-SA 2.0 · Commons ↗ まつもとゆきひろ(Matz)が日本で設計したオブジェクト指向スクリプト言語。最初の一般公開は1995年12月21日、日本国内のニュースグループへ投稿された 0.95 である。名前は Perl に倣った宝石名で、公式 FAQ によれば同僚の誕生石から採られた。Perl・Smalltalk・Eiffel・Ada・Lisp の要素をブレンドし、すべてをオブジェクトとして扱う。Matz は Ruby の紹介記事に「Ruby はプログラマを幸せにするために設計されている」と書いており、2003年の Bill Venners によるインタビューがこの一文を引いている。2004年7月に David Heinemeier Hansson が Basecamp から切り出して公開した Web フレームワーク Ruby on Rails(1.0 は2005年12月)が世界的成功を収め、Ruby は Web スタートアップの標準ツールとなった ── GitHub、初期の Twitter、初期の Airbnb、Shopify など。
よくある質問
- Ruby という名前の由来は何ですか。
- Perl に倣った宝石名です。公式 FAQ によれば、同僚の誕生石から採られました。最初の一般公開は1995年12月21日の 0.95 です。
2000年代
The Go Authors (Wikimedia Commons) · Public domain · Commons ↗ Robert Griesemer、Rob Pike、Ken Thompson(UNIX の共同開発者)が Google で設計した言語が、2009年11月10日にオープンソースとして公開された。公開時の紹介は「システムプログラミングに向いた言語」で、C++ のビルド時間と複雑さへの不満が出発点にある。ガベージコレクション、goroutine による軽量並行性、意図的に小さく保った構文を持つ。後方互換を約束する Go 1 は2012年3月28日。Docker、Kubernetes、Terraform、Prometheus など、2010年代のクラウドネイティブ基盤の主要な実装が Go で書かれている。
2010年代
Microsoft, microsoft/TypeScript-Website branding (Wikimedia Commons) · Public domain · Commons ↗ 2012年10月1日、Microsoft が TypeScript を発表した。2年間の社内開発を経て公開されたのはバージョン 0.8 の早期プレビューで、設計を主導したのは C# の主設計者でもある Anders Hejlsberg。JavaScript の上位集合として型注釈・インタフェース・クラス・モジュールを足し、コンパイル結果は素の JavaScript になる。言語仕様は Open Web Foundation の合意のもとで、コンパイラは Apache 2.0 で CodePlex に公開された。安定版 1.0 は2014年4月2日。2020年代には大規模 Web フロントエンドの事実上の標準となり、React・Vue・Angular の主流ドキュメントが TypeScript 例示へ移行した。
Rust Foundation, rust-lang/rust-artwork (Wikimedia Commons) · CC BY 4.0 · Commons ↗ Graydon Hoare が2006年に個人プロジェクトとして始め、2009年から Mozilla が正式に後援した言語。2015年5月15日の 1.0 で最初の安定版となり、後方互換の約束が始まった。所有権(ownership)と借用(borrowing)のコンパイル時検査により、ガベージコレクタもランタイムも持たずにメモリ安全性を保証する点が設計の核心である。Stack Overflow の年次調査では2022年まで7年連続で「最も愛されている言語(most loved)」に選ばれた。Linux カーネルは 6.1(2022年12月)で実験的な Rust サポートを取り込み、最初のドライバは 6.8 に入っている。
よくある質問
- Rust は誰が作ったのですか。
- Graydon Hoare が2006年に個人プロジェクトとして始め、2009年から Mozilla が正式に後援しました。最初の安定版 1.0 は2015年5月15日です。
2020年代

GitHub (Wikimedia Commons) · Public domain (below threshold of originality; trademark applies) · Commons ↗ GitHub と OpenAI が、エディタ内でコードを自動補完する AI ペアプログラマ「Copilot」をテクニカルプレビューとして公開。 OpenAI の Codex モデル(GitHub の公開コードでファインチューニングした GPT)が背後で動き、 関数の一部・コメントから関数全体を生成。 2022年6月21日に月10ドル(年100ドル)の有料サブスクリプションとして一般公開。 2022年11月には公開コードの訓練利用をめぐるクラスアクション Doe v. GitHub が提訴され、 DMCA 系の請求は2024年6月に prejudice 付きで棄却、 オープンソースライセンス違反と契約違反の2請求が残った。 生産性向上を示す数字の多くは GitHub と Microsoft の自社研究であり、 2025年の METR による独立試験は逆の結果を出している。 業界全体の開発体験を一変させ、 Cursor、 Claude Code、 Windsurf 等の「AI コーディング IDE」競争を生む起点となった。

Dbeef / 0xDeadbeef (Wikimedia Commons) · CC0 1.0 (Public domain dedication) · Commons ↗ Linux 6.1 に Rust の初期サポートが正式マージされた。 1991年の公開以来、 Linux カーネルは C とアーキテクチャ依存のアセンブリだけで書かれてきた。 6.1 が入れたのはドライバではなく足場 ── ツールチェイン、 最小限のクレート、 サンプルモジュールだけである。 実際のドライバは後年で、 NVIDIA 向け Nova が 6.15、 Arm Mali 向け Tyr と Android Binder の Rust 実装が 6.18。 2025年には DMA サブシステムをめぐる対立で複数のメンテナが離脱し、 同年12月、 カーネルメンテナサミットは「実験は終わった」と宣言した。
