詳述 · 20件の出来事
プログラミング言語の歴史
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 TRANslating System、数式翻訳システム)の最初のコンパイラを704の設置先へ配布した。数式を数式に近い記法で書く試みは先行しており、Backus 自身は MIT の Laning と Zierler の方式を「世界初の稼働する代数コンパイラ」と認めている。FORTRAN が狙ったのは言語よりも翻訳器で、手書きに迫る効率の機械語を出せなければ受け入れられないと考え、最適化に力を注いだ。1958年秋には704の設置先およそ60か所で、機械命令の半分以上が FORTRAN によって生成されていたと Backus は報告している。
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 ↗ Smalltalk は、Xerox PARC の Learning Research Group が1970年代に作ったオブジェクト指向のプログラミング言語兼開発環境。Alan Kay の構想と Simula の考えを出発点に、Dan Ingalls が最初の実装を書き、Smalltalk-72・-76 を経て、PARC の外へ配るための版 Smalltalk-80 にまとまった。外への配布の準備を率いたのは Adele Goldberg で、1980年8月、Apple・DEC・Hewlett-Packard・Tektronix の4社が仕様書の草稿の査読に招かれ、各社が仮想マシンを少なくとも一度は自ら実装した。言語と環境は1981年8月の BYTE 誌の特集で広く紹介され、1983年には Goldberg と David Robson の解説書が出て、一般向けライセンスの Version 2 が公開された。計算を、オブジェクトどうしがメッセージを送り合うことだけで表すという一貫した設計で知られる。

ICPCNews / photographer Victor Zavyalov (Wikimedia Commons) · CC BY 2.0 · Commons ↗ C++ は Bjarne Stroustrup が AT&T Bell 研究所で設計したプログラミング言語。作業は1979年4月、UNIX カーネルをネットワーク上に分散させる研究の道具づくりとして始まり、同年10月には C に Simula 風のクラスを加えるプリプロセッサ Cpre が動いていた。その言語は「C with Classes」と呼ばれた。1982年から83年にかけて Stroustrup は本格的なコンパイラ Cfront と後継言語を作り、一時 C84 と呼ばれたその言語に Rick Mascitti の提案で C++ の名が付いた(名の考案は1983年夏、文書での初出は同年12月)。最初の版は1983年8月に AT&T 社内で使われ始め、1985年10月、最初の商用実装が『The C++ Programming Language』初版と同時に出た。狙いは、Simula のプログラム構成の力を、C の効率と柔軟さを保ったままシステムプログラミングに持ち込むこと。最初の ISO 規格は1998年の C++98 である。
1990年代

Alessio Bragadini (Wikimedia Commons) · CC BY-SA 2.0 · Commons ↗ 1989年12月、オランダの CWI(数学・情報科学研究所)に在籍していた Guido van Rossum が、職場が閉まるクリスマス前後の1週間を埋める「趣味の」プロジェクトとして書き始めた言語。Unix/C のハッカーに受ける ABC の子孫を目指し、自ら開発に加わった教育用言語 ABC の閉じた設計を繰り返さないことを意図した。直接の動機は、分散 OS Amoeba の管理ツールを C とシェルの間を埋める高水準言語で書きたいという必要だった。名前は蛇ではなく Monty Python's Flying Circus に由来する。0.9.0 は1991年2月20日に Usenet の alt.sources へ21分割で投稿され、1.0.0 は1994年1月26日。van Rossum は2018年7月に BDFL(終身慈悲深き独裁者)を退き、2019年2月に選ばれた5人の Steering Council が統治を引き継いだ。

Peter Campbell (Wikimedia Commons) · CC BY-SA 4.0 · Commons ↗ Java は Sun Microsystems が1995年5月23日に発表したプログラミング言語。起源は James Gosling・Patrick Naughton・Mike Sheridan が1990年12月に始めた社内の Green プロジェクトで、Gosling が家電・携帯端末 Star7 のために作った言語 Oak が前身である。Oak の名は商標の確認で使えないと分かり、1995年初めに Java と改められた。同年3月にはアルファ版が Web に置かれていたが、正式な発表は5月23日の SunWorld 会場で、HotJava ブラウザとともに行われ、Netscape の Marc Andreessen が Navigator への組み込みを明かした。Sun は Java をインターネット向けのオブジェクト指向プログラミング環境と位置付けた。完成版の Java 1.0(JDK 1.0)は1996年1月23日に新設の JavaSoft から無償で公開され、Windows 95/NT と SPARC 版 Solaris に対応した。運営は2010年1月27日の買収完了で Oracle に移った。
2000年代
- EVT.015T12000年問題(Y2K) ── 西暦下2桁が招いた世界規模の改修IT全史 ── 計算機が世界を編み変える詳細を読む →
The Go Authors (Wikimedia Commons) · Public domain · Commons ↗ Robert Griesemer、Rob Pike、Ken Thompson(UNIX の共同開発者)が Google で設計した言語が、2009年11月10日にオープンソースとして公開された。公式 FAQ によれば、3人がホワイトボードに目標を書き出し始めたのは2007年9月21日で、出発点は Google での仕事に使っていた既存の言語と環境への不満だった。公開時の発表はシステムプログラミングに向いた言語と紹介し、数秒で終わるビルドを強調した。ガベージコレクション、goroutine とチャネルによる軽量な並行性、意図的に小さく保った構文を持つ。後方互換を約束する Go 1 は2012年3月28日、ジェネリクスを加えた Go 1.18 は2022年3月15日。Kubernetes などクラウド基盤の主要なソフトウェアが Go で書かれている。
2010年代
Microsoft, microsoft/TypeScript-Website branding (Wikimedia Commons) · Public domain · Commons ↗ 2012年10月1日、Microsoft が TypeScript を発表し、バージョン 0.8 の早期プレビューを言語仕様・コンパイラのソース・Visual Studio 2012 用プラグインとともに公開した。公開時に言語を紹介したのは C# の主任設計者で、のちに TypeScript のリードアーキテクトを名乗る Anders Hejlsberg。JavaScript の上位集合として省略可能な型注釈・インタフェース・クラス・モジュールを足し、型はコンパイル時に検査されて出力の JavaScript からは消える。言語仕様は Open Web Foundation の OWFa 1.0 のもとで、コンパイラは Apache 2.0 で CodePlex に公開された。安定版 1.0 は2014年4月2日。GitHub の Octoverse 2025 によれば、2025年8月に月間コントリビュータ数で GitHub 最多の言語になった。2026年7月8日には、Go で書き直したネイティブ・コンパイラの TypeScript 7 が出ている。
Rust Foundation, rust-lang/rust-artwork (Wikimedia Commons) · CC BY 4.0 · Commons ↗ Rust は、ガベージコレクタもランタイムも持たずにメモリ安全性を目指すシステムプログラミング言語。Graydon Hoare が2006年に個人の趣味として書き始め、2009年後半から Mozilla が彼の作業に給料を出すようになり、2010年7月の Mozilla 年次サミットで本人が紹介した。2015年5月15日、Rust コアチームが最初の安定版 1.0 を公開し、以後は互換性を壊す変更をほぼ行わないという安定性の約束が始まった。同時に6週間ごとの定期リリースへ移り、1.1 ベータも同じ日に出た。設計の核心は、所有権(ownership)と借用(borrowing)の規則をコンパイラが検査することで、実行時の回収に頼らずメモリを管理する点にある。Stack Overflow の開発者調査では、2022年まで7年連続で most loved(使い続けたい言語)の首位だった。2021年2月には独立の非営利団体 Rust Foundation が発足し、Linux カーネルは2022年12月の 6.1 で Rust の初期サポートを取り込んだ。
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 が入れたのはドライバではなく足場 ── ツールチェイン、 最小限のクレート、 サンプルモジュールだけである。 最初のドライバは 6.8 の参照用ネットワーク PHY ドライバで、 NVIDIA 向け Nova が 6.15、 Arm Mali 向け Tyr と Android Binder の Rust 実装が 6.18。 2025年には DMA サブシステムをめぐる対立で複数のメンテナが離脱し、 同年12月、 カーネルメンテナサミットは「実験は終わった」と宣言した。




