プログラミング言語 進化系譜
横軸 = パラダイム(8 系統)、縦軸 = 年代(1955〜2025)で主要プログラミング言語 54 件を配置し、影響関係 108 本で繋いだインタラクティブな系譜図です。 ノードをクリックすると右側パネルに前駆/後継言語が表示され、影響関係をたどることができます。
Phase 0 PoC:本ページは主要 54 言語を手動キュレーションした実験版です。影響関係は Wikipedia 各言語ページの infobox と HOPL(ACM History of Programming Languages)を典拠としていますが、有力な複数説のある関係については代表的なものを 1 件採用しています。最終更新日:2026-05-23。
本コンテンツの図および解説文は CC BY 4.0 ライセンスで公開しています。年代・影響関係などの事実情報には著作権は発生しません。 描画ライブラリ: D3.js v7 (BSD-3-Clause)。 出典: Wikipedia 各言語ページ(CC BY-SA 4.0)+ HOPL I-IV(ACM)。
このマップで分かること
「現代の言語はどこから来たのか」「あるパラダイムの源流はどこか」を、影響関係の連鎖として視覚的に体験するための系譜図です。 FORTRAN・LISP・ALGOL という 1950 年代後半の三つの源流から、Rust・Swift・Mojo といった 2010-20 年代の言語まで、 54 言語を年代 × パラダイムの二次元に配置し、108 本の影響関係でつないでいます。
「Python はどこから来たのか」「Rust の型システムは誰の系譜なのか」「TypeScript と JavaScript の関係は」といった問いに、 ノードをたどることで答えられるよう設計しました。
図の読み方
縦軸(年代)は 1955 年から 2025 年までの 70 年間を 5 つの時代帯に区切って配置しています。 ノードは登場年(公開年)の位置に置かれ、同時期に複数言語が登場した場合は左右にずらして衝突を避けています。
横軸(パラダイム)は 8 つのスイムレーンに分かれています。各パラダイムは固有の色で示しています。 複数のパラダイムにまたがる言語は、最も特徴的なレーンに配置しています(例: Java は OOP / Scala は functional / Swift は OOP)。
- system(システム / ネイティブ)
- oop(オブジェクト指向)
- functional(関数型)
- scripting(スクリプト)
- scientific(科学技術計算)
- enterprise(エンタープライズ / 業務)
- web(Web)
- concurrent(並行 / 分散)
エッジ(線)は「A 言語が B 言語に影響を与えた」という関係を示します。すべての矢印は古→新に流れます。
実線が一般的な影響関係(influences)、破線がより強い派生関係(dialect_of・例: TypeScript は JavaScript の dialect)を示します。
操作: ノードをクリックすると右側にパネルが開き、設計者・出身・誕生年・典拠 URL・前駆言語(影響元)・後継言語(影響先)が表示されます。
パラダイムフィルタで絞り込み可能。⛶ ボタンでフルスクリーン表示もできます。URL ハッシュ(例: #python)で特定言語に直接ジャンプできます。
主な見どころ
- C 系統の広がり: BCPL → B → C を経て、C++ / Objective-C / Perl / Java / JavaScript / PHP / Go / Rust / Zig / C# まで、 ほぼすべての主要システム・OOP・Web 言語が C を経由しています。70 年の言語史で最も多くの後継を持つハブ。
- ALGOL の知的遺産: ALGOL 60 自体は実用されなかったものの、Pascal / Simula 67 / BCPL / PL/I を経由して 現代のほぼすべての高水準言語の構文の祖となっています。「失敗した革命が後世を変える」典型例。
- 関数型の系譜: LISP → Scheme / ML が分岐し、ML → Haskell / OCaml → F# / Rust の型システム / Scala へ。 LISP 系 → Clojure(JVM 上の Lisp)も別ルートで生き残っています。
- Smalltalk の隠れた影響: 純粋 OOP の元祖 Smalltalk は Objective-C / Ruby / Java の OOP 思想に深く影響。 Apple の NeXT 系統(Objective-C → Swift)まで連鎖が続きます。
- Anders Hejlsberg の系譜: Turbo Pascal → Delphi → C# → TypeScript と、一人の言語設計者が 3 つの主要言語に決定的影響を与えた稀有な事例。
- 2010 年代の系統交差: Rust は ML / Haskell の型システム + C++ のゼロコスト抽象 + Erlang の安全性思想を 統合しています。同時期の Swift も C / Objective-C / Haskell / Python / Ruby から影響を受け、複数系統の交差点に位置します。
8 パラダイムの分け方
「パラダイム」は固定的な学術分類ではなく、その言語が最もよく使われる現場で分類しました。 Java / Kotlin はサーバアプリ・Android で広く使われるため OOP に、Scala は関数型機能を売りにするため functional に、 Go は並行プリミティブが特徴的なため concurrent に置いています。
system: ハードウェアに近い領域・OS / 組込み(C・C++・Rust・Zig 等)。
oop: クラスとオブジェクトを中核に据えた汎用言語(Smalltalk・Java・C#・Swift 等)。
functional: 関数型を主軸とする言語(LISP・Haskell・OCaml・Clojure 等)。
scripting: 動的型付きの汎用スクリプト(Perl・Python・Ruby・Lua 等)。
scientific: 数値計算・統計・データサイエンス向け(FORTRAN・R・Julia・Mojo 等)。
enterprise: 業務・基幹システム向け(COBOL・Pascal・Ada・SQL 等)。
web: Web ブラウザとサーバ間の言語(JavaScript・TypeScript・Dart・PHP)。
concurrent: 並行・分散プログラミングを主目的とする言語(Erlang・Go・Elixir)。
データの根拠と更新方針
影響関係の判定は Wikipedia 各言語ページの infobox(Influenced by フィールド)を一次典拠とし、
HOPL(ACM History of Programming Languages 会議の論文)と整合性を取って手動キュレーションしました。
年代は各言語の最初の公開年・1.0 公開年を採用しています(設計開始年とは異なる場合があります)。
影響関係には複数説がある場合があります。例えば JavaScript は LISP / Scheme / C / Java / Self など多数の言語から影響を受けたとされますが、 本図では Brendan Eich 本人が強調する「LISP の Scheme を作りたかった」「Java の構文を寄せた」「C の表面を持つ」の 3 系統を採用しています。 代表的な学術的解釈と異なる場合は、各ノードの出典 URL をご確認ください。
ライセンスと引用
事実情報(年代・影響関係)には著作権は発生しません。図と本解説文は CC BY 4.0 で公開していますので、
出典明記(余標舎「プログラミング言語 進化系譜」 へのリンク)でご自由にご利用いただけます。
引用例: 余標舎「プログラミング言語 進化系譜」(https://rinzo-yohyosha.com/contents/programming-language-genealogy/)
関連コンテンツ
- 技術の発展史 — 火・車輪・文字から半導体・mRNA ワクチンまで人類史の重要発明 186 件を年代×分野でつないだテックツリー。 計算機・インターネット領域のノードと本コンテンツの言語系譜は補完関係にあります。
- 数学定理・公式 導出チャート — 中学・高校・大学数学の定理・公式 396 ノードを公理・定義から導出する有向グラフ。 ラムダ計算・型理論など関数型言語の数学的基盤を辿るのに役立ちます。
- 元素発見タイムライン — 118 元素 × 98 発見者の発見史。 同じ「系譜可視化シリーズ」の一つで、半導体(シリコン・ゲルマニウム)の発見年代と本コンテンツの C 言語誕生(1972)の関係などをたどれます。