ITの歴史全体を知りたい方はこちら → ITの進化の歴史を振り返る
プログラミング言語は、今この瞬間にも新しいものが生まれている。GitHubに登録されている言語は500を超え、現役で使われているものだけでも数十種類にのぼる。なぜこんなにたくさんの言語が存在するのか。それは、コンピュータに何をさせたいかという人間の要求が、時代とともに変わり続けてきたからだ。
この記事では、1950年代の黎明期から2020年代のAI時代まで、プログラミング言語の進化を時系列でたどる。言語の誕生には必ずそれぞれの「理由」がある。その理由を知ることで、現代の技術選択もより深く理解できるようになる。
目次
- プログラミング言語はなぜこんなに種類があるのか
- 1950〜60年代:コンピュータと最初の言語(FORTRAN・COBOL・LISP)
- 1970年代:C言語の登場とUnixの誕生
- 1980年代:オブジェクト指向の台頭(C++・Smalltalk)
- 1990年代:Webとスクリプト言語の爆発(Java・PHP・JavaScript・Python・Ruby)
- 2000年代:モダン言語の勃興(C#・Scala・Haskell)
- 2010年代:新世代の台頭(Go・Rust・TypeScript・Swift・Kotlin)
- 2020年代:AI時代の言語トレンド
- FAQ
プログラミング言語はなぜこんなに種類があるのか
プログラミング言語は「問題を解くための道具」だ。大工が用途によってノミ・鑿・鉋を使い分けるように、エンジニアは解くべき問題に応じて言語を選ぶ。
言語が増える理由は主に3つある。
1. コンピュータの用途が広がった 1950年代は数値計算専用だったコンピュータが、今やWebサーバー・スマートフォン・自動車・AIチップで動いている。用途ごとに最適な言語が求められた。
2. 既存言語の「不満」が新言語を生んだ CはPDPアセンブリの不満から、C++はCの不満から、Rustはメモリ安全性への不満から生まれた。言語の歴史は「先人への反省と改良」の歴史でもある。
3. パラダイムの転換があった 手続き型→オブジェクト指向→関数型→リアクティブ……プログラミングの考え方が変わるたびに、それを体現する言語が登場した。
1950〜60年代:コンピュータと最初の言語(FORTRAN・COBOL・LISP)
初期のコンピュータは、プログラムを機械語(0と1の羅列)またはアセンブリ言語で書く必要があった。専門のオペレーターがスイッチを切り替えながら動かす、人間にとって極めて非効率な世界だった。
そこに登場したのが高水準言語という概念だ。
FORTRAN(1957年)
IBMのジョン・バッカスが開発したFORTRAN(FORmula TRANslation)は、世界初の広く普及した高水準言語とされる。科学・工学計算向けに設計され、数式をそのままコードで書けることが革命的だった。NASAの宇宙開発計算にも使われた。FORTRANは今も気象シミュレーションや科学計算の分野で現役だ。
COBOL(1959年)
グレース・ホッパー(後にアメリカ海軍少将)が中心となって設計したCOBOL(COmmon Business-Oriented Language)は、金融・ビジネス処理に特化した言語だ。英語に近い構文が特徴で、非エンジニアでも読みやすいことを意識して設計された。今も銀行の基幹システムの多くはCOBOLで動いており、「枯れた技術」の代名詞として語られる。
LISP(1958年)
ジョン・マッカーシーが開発したLISP(LISt Processing)は、数学的な「ラムダ計算」を基礎とした関数型言語の先駆けだ。AIの研究言語として長く使われ、関数を「データとして扱う」という発想は、現代のJavaScriptやPythonに受け継がれている。
エンジニアへの示唆:「古い言語=悪い言語」ではない。COBOLやFORTRANが今も生き続けているのは、それが「仕事をこなす」からだ。技術の新しさと問題への適合性は別の話である。
1970年代:C言語の登場とUnixの誕生
1970年代は、プログラミングの世界に「基盤」が生まれた時代だ。
C言語(1972年)
ベル研究所のデニス・リッチーが開発したC言語は、現代プログラミングの礎と言っていい。Unix OSを書き直すために作られたという背景があり、低レベルのハードウェア操作と高水準の表現力を両立した最初の言語だ。
C言語の設計原則は今も生きている。「プログラマーを信頼する」「必要な機能だけ提供する」「ポータビリティを重視する」——これはRustにも受け継がれている哲学だ。
C言語から派生・影響を受けた言語の系譜は圧倒的で、C++・Java・C#・JavaScript・PHP・Python・Goはすべて、何らかの形でCの影響下にある。
Pascal・Prolog
同時期にPascal(ニクラウス・ヴィルトが設計)が教育用言語として普及し、論理プログラミングのPrologも登場した。Prologは「知識を記述して推論させる」アプローチで、後のAI研究に影響を与えた。
エンジニアへの示唆:Cを学んだエンジニアは、メモリ・ポインタ・スタックとヒープの概念を体感できる。現代の高水準言語が「隠している」ものを理解することは、デバッグ力とパフォーマンス思考の土台になる。
1980年代:オブジェクト指向の台頭(C++・Smalltalk)
ソフトウェアの規模が大きくなるにつれ、コードを「どう整理するか」が問題になってきた。その答えが**オブジェクト指向プログラミング(OOP)**だ。
C++(1983年)
ビャーネ・ストロヴストルップが開発した**C++**は、CにOOPの概念(クラス・継承・ポリモーフィズム)を加えた言語だ。「Cの速度を保ちながら大規模開発の複雑さを管理する」という目標で設計された。ゲームエンジン・ブラウザ・データベース・組み込みシステムと、今もC++の牙城は広大だ。
Smalltalk(1972〜80年代に普及)
アラン・ケイらがゼロックス研究所で開発したSmalltalkは、「すべてがオブジェクト」という純粋OOPの原型だ。GUIプログラミングの概念もSmalltalkから生まれた。直接的な後継言語ではないが、RubyはSmalltalkの哲学を強く受け継いでいる。
Perl(1987年)
ラリー・ウォールが作ったPerlは、テキスト処理に強いスクリプト言語として普及した。CGIスクリプト(初期のWeb動的コンテンツ)の主力言語として、Webの黎明期を支えた。
エンジニアへの示唆:OOPは「銀の弾丸」ではなかった。継承の多用による複雑化や、過剰設計といった問題が後に批判された。設計思想は時代と文脈の中で評価すること——これは技術選択全般に言える。
1990年代:Webとスクリプト言語の爆発(Java・PHP・JavaScript・Python・Ruby)
1990年代は、インターネットの爆発がプログラミング言語の地図を塗り替えた時代だ。World Wide Webの登場(1991年、ティム・バーナーズ=リー)により、「Web上で動くプログラム」への需要が急騰した。
Java(1995年)
サン・マイクロシステムズのジェームズ・ゴスリングが開発したJavaのキャッチフレーズは「Write Once, Run Anywhere」。JVM(Java仮想マシン)上で動くため、OSを問わず同じコードが実行できる。エンタープライズシステム・Androidアプリの基盤として、現在も最も広く使われる言語の一つだ。
JavaScript(1995年)
ブレンダン・アイクが10日間で設計したとされるJavaScriptは、当初「Webページに少し動きをつける」程度の用途だった。それが今や、フロントエンド・バックエンド(Node.js)・モバイル(React Native)・デスクトップ(Electron)まで使われる「どこでもいる言語」になった。
PHP(1994年)
ラスマス・ラードルフが自分のWebサイト管理用に作ったPHPは、サーバーサイドWebの実用言語として急成長した。WordPressの普及とともに、世界のWebサイトの約40%がPHPで動いているとも言われる。
Python(1991年)
グイド・ヴァン・ロッサムが「読みやすさ」を最優先に設計したPythonは、1990年代の登場当初は教育用途が主だった。しかし2000年代以降、科学計算・機械学習ライブラリの充実により急激に存在感を増す(後述)。
Ruby(1995年)
日本人のまつもとゆきひろ(通称:Matz)が開発したRubyは、「プログラマーの幸福度」を設計指針に掲げた。WebフレームワークRuby on Rails(デヴィッド・ハイネマイヤー・ハンソン作、2004年)の登場により、スタートアップの定番言語となった。
エンジニアへの示唆:JavaScriptが「10日で設計された」とよく揶揄されるが、だからこそその後の30年で膨大な仕様変更・改善が行われた。完璧な設計より、使われ続けることで進化する——言語の生態系はそういうものだ。
2000年代:モダン言語の勃興(C#・Scala・Haskell)
2000年代は、言語設計の「成熟期」だ。それまでの言語の問題点を整理し、より表現力の高い言語が登場した。
C#(2000年)
マイクロソフトのアンダース・ヘルスバーグが設計した**C#**は、Javaへの対抗馬として生まれた。.NETエコシステムとの統合、LINQによるデータ操作の革新、近年の async/await 導入など、言語自体の進化が速いことで知られる。ゲームエンジンUnityの主要言語でもあり、ゲーム開発者に広く使われている。
Scala(2003年)
マーティン・オダースキーが設計したScalaは、Javaの資産を使いながら関数型プログラミングの概念を持ち込んだ。TwitterやLinkedInが大規模システムに採用したことで注目を集めた。型システムの表現力が高い反面、学習コストの高さも指摘される。
Haskell(1990年代〜2000年代に普及)
純粋関数型言語のHaskellは、「副作用のないプログラム」を理論的に追求した言語だ。主流言語ではないが、Haskellの概念(モナド・型クラス・遅延評価)は後の言語設計に多大な影響を与えた。Rustの型システムやScalaの関数型機能に、Haskellの哲学が受け継がれている。
エンジニアへの示唆:使われない言語にも学ぶ価値はある。HaskellやPrologを少し触るだけで、プログラミングの「別の考え方」が見えてくる。知識の幅は、問題解決の選択肢の幅だ。
2010年代:新世代の台頭(Go・Rust・TypeScript・Swift・Kotlin)
2010年代は、「現代の問題に合わせた新言語」が次々と登場した時代だ。クラウド・マルチコア・モバイル・大規模Webと、新しい実行環境が言語設計に影響を与えた。
Go(2009年〜2010年代に普及)
Googleのロブ・パイク、ロバート・グリースマー、ケン・トンプソンが設計したGoは、「シンプルで高速なサーバーサイド言語」として設計された。ゴルーチンによる並行処理の扱いやすさが特徴で、KubernetesやDockerなどクラウドインフラの重要ツールがGoで書かれている。
Rust(2010年〜)
モジラのグレイドン・ホアレが最初に設計したRustは、「メモリ安全でありながらC++に匹敵する速度」という難題に挑んだ言語だ。所有権システムによって、ガベージコレクターなしにメモリ安全を保証する。Linuxカーネルへの採用(2022年)はエポックメイキングな出来事だった。近年のStack Overflow調査で「最も愛される言語」を8年連続で獲得している。
TypeScript(2012年)
マイクロソフトのアンダース・ヘルスバーグ(C#設計者と同一人物)が開発したTypeScriptは、JavaScriptに静的型システムを加えた言語だ。大規模なフロントエンド開発での型安全性の需要に応え、ReactやVueのエコシステムとともに急速に普及した。
Swift(2014年)・Kotlin(2011年)
SwiftはAppleのクリス・ラトナーが設計したiOS/macOS開発向けの言語で、Objective-Cを置き換えた。KotlinはJetBrainsが開発したJVM言語で、Googleが公式のAndroid開発言語として採用したことで普及した。どちらも「モダンで安全な文法」を意識して設計されている。
エンジニアへの示唆:Rustが証明したのは、「メモリ管理はプログラマーか、GCか」という二択ではないということだ。型システムと所有権という新しいアプローチで第三の道を開いた。「トレードオフの前提を疑う」ことが、言語設計でも製品設計でも革新を生む。
2020年代:AI時代の言語トレンド
2020年代は、生成AIの登場がプログラミングの風景を変えつつある時代だ。
Python の再評価
機械学習・深層学習のエコシステム(TensorFlow・PyTorch・scikit-learn・NumPy)がPython中心に構築されたため、2010年代後半からPythonの地位は絶対的になった。研究者・データサイエンティスト・AIエンジニアが使う言語として、KAGGLEやJupyter Notebookとともに普及した。
2020年代に入ると、生成AI(ChatGPT・GitHub Copilot)の登場により「コードを書くコスト」が下がった。これはPythonのような「書きやすさ優先」の言語の需要をさらに高めた一方で、AIが生成するコードの品質管理という新しい課題も生んだ。
Mojo(2023年)
AIの先駆者クリス・ラトナー(LLVMとSwiftの生みの親)が開発したMojoは、「PythonのようなAI開発体験でCの速度を出す」を目標とした新言語だ。AI推論の最適化に特化した言語として注目されているが、まだ発展途上だ。
LLMとプログラミング言語の関係
GitHub CopilotやClaude・ChatGPTのようなLLMは、プログラミングの敷居を大きく下げた。自然言語でコードを生成できる時代に、「どの言語を選ぶか」よりも「どう問いを立てるか」が重要になってきた。
一方で、AI生成コードの安全性・保守性を担保するために、型システムが強い言語(TypeScript・Rust・Kotlin)への需要は逆に高まっている。
エンジニアへの示唆:AIがコードを書く時代でも、言語の設計思想を理解しているエンジニアは強い。AIが出力したコードを「なぜこう書いたのか」を読み解き、改善する力は、言語の歴史的背景の理解から生まれる。
→ AI の歴史全体を知りたい方はこちら:チューリングから ChatGPT まで
FAQ
Q. 最初のプログラミング言語は何ですか? 広く普及した最初の高水準言語はFORTRAN(1957年)です。ただし、プログラミング言語の概念そのものはチューリング・チャーチのラムダ計算(1930年代)まで遡ります。
Q. C言語はいつ作られましたか? 1972年にデニス・リッチーがベル研究所でUnix OS開発と並行して設計しました。その後、B・BCPL など前身言語との系譜上に位置します。
Q. なぜこんなにプログラミング言語の種類があるのですか? コンピュータの用途の広がり・既存言語への不満・プログラミングパラダイムの転換の3つが主な理由です。目的が変われば最適な道具も変わります。
Q. 今から学ぶならどの言語がおすすめですか? 目的によります。Web開発ならJavaScript/TypeScript、データ分析・AIならPython、システム・組み込みなら Rust または C、モバイルなら Swift(iOS)/Kotlin(Android)が現在の定番です。どれを選んでも「他の言語への橋渡し」になります。
Q. Rust はなぜ注目されているのですか? 「C/C++ の速度でメモリ安全を保証する」という従来不可能とされた課題を、所有権システムという新しいアプローチで解決したためです。LinuxカーネルやWebブラウザの重要部分に採用され始めています。
Q. Python はいつから人気になりましたか? 登場は1991年ですが、本格的な普及は2010年代のAI・機械学習ブームからです。TensorFlow(2015年)・PyTorch(2016年)の登場が決定的でした。
Q. プログラミング言語は今後どう変わりますか? 明確な予言は難しいですが、①AIによるコード生成との協調、②型安全・メモリ安全の重視、③並行処理・分散システムへの適合、の3軸が重要度を増すと考えられます。また、特定ドメイン専用言語(DSL)の需要も高まるでしょう。
ITの歴史全体についてはこちら → ITの進化の歴史を振り返る
自分の時間の価値を計算してみたい方は → 給与時計 / Salary Ticker
