この記事では、プログラミング言語の歴史を年表にまとめて紹介します。
さまざまなプログラミング言語があるけれど、どの言語がいつ生まれたのか歴史を知りたい
プログラミング言語にはさまざまな種類があります。それぞれ誕生した時期が異なり、得手不得手もあります。
今回は、プログラミング言語の歴史や世代に焦点を当てながら、プログラミング言語の特徴を解説します。歴史について学べる書籍や、これから学ぶのにおすすめの言語を紹介します。
本記事を読む前に、そもそもプログラミング言語とは何なのかをおさらいしておきたい人は次の記事を参考にしてください。
- プログラミングの元となる考え方は19世紀に誕生
- 1954年に初のプログラミング言語「FORTRAN」が誕生
- 言語の需要は時代の潮流で変わるため、変化への適応が不可欠
【年表まとめ】プログラミング言語の歴史
こちらの図は、年代別に主なプログラミング言語を紹介しています。
プログラミング言語とコンピューターは切っても切れない存在です。コンピューターの進歩に伴って、プログラム言語も進化を続けています。
ここでは、それぞれの言語が誕生した年代に沿って、プログラミング言語とコンピューターの歴史を交えながら説明します。
1940年以前
イギリスの数学者チャールズ・バベッジは、「コンピューターの父」として知られています。彼が19世紀に設計した機械式の解析機関は、記憶装置と演算装置から構成されており、外部から与えられたパンチカードを使ってプログラムを制御していました。
最終的にこの解析機関は、彼の生前には完成しませんでした。しかし後日その設計をもとに組み立てられ、完全に動作することが確認されています。
もし当時に解析機関が完成していれば、科学の進歩も今とは変わっていた可能性があります。今、私たちが使っているコンピュータの元祖ともいえます。
1940年代
世界で最初に誕生した高水準プログラミング言語は、1954年に設計が始まったFORTRANだといわれています。実はそれ以前、1942年にPlankalkül(プランカルキュール )という言語が設計されていたことはあまり知られていません。
FORTRANよりも10年以上まえに設計されたPlankalülは、
- 代入文
- サブルーチン
- 条件判断
- ループ
- 浮動小数点計算
- 配列
- レコード型
- 例外処理
などプログラムに必要な概念のほとんどを含んでいたといいます。しかし実際に、Plankalülの処理系が作られることはありませんでした。
なお、プログラミングを学びたい気持ちはあるものの、どの言語が自分にあうのか、どう学習を進めればいいのかなどがあいまいな人は「プログラミング学習プラン診断」をお試しください。
かかる時間は1分ほど。4つの質問に答えるだけで、あなたにあう言語や学習プランを診断してもらえます。
効率よくプログラミングを学習したい人は、ぜひ一度お試しください。
\ 4つの質問に答えるだけ /
1960年代前後
主なプログラミング言語
- FORTRAN
- ALGOL
- COBOL
- PL/I
- Lisp
1954年にIBMのジョン・バッカスらによって開発が始まったFORTRANは、初の高級言語(抽象度の高い記述が可能である言語)として誕生しました。手続き型プログラミング言語であるFORTRANは科学技術計算に向いた言語で、今も主にスーパーコンピューターで使われています。
1958年にはALGOLが、1959年には事務処理用言語としてCOBOLが誕生。これらの言語の登場により、プログラム作成効率が改善され、異なった機械語のコンピューターでも同一のプログラムが使えるようになりました。
COBOLは事務処理言語として幅広く普及し、今も根強く使われています。一方で、消えていった言語もあります。
1970年代前後
主なプログラミング言語
- Pascal
- B言語
- C言語
- Smalltalk
- BASIC
1970年に誕生したPascalや1972年に誕生したC言語のように、ALGOLの影響を受けた言語が誕生。同時に、人工知能向け言語やオブジェクト指向言語のような、全く新しい言語も登場しました。
1970年頃に計算機械学者であるケネス・レイン・トンプソンらが開発したB言語は、BCPLから派生したプログラミング言語で、計算機の種類を問わない汎用言語です。B言語の誕生の2年後の1972年、C言語は計算機械学者であるデニス・リッチーを中心に開発されました。
Bの次の言語として「C言語」と名付けられ、プログラム開発の中心的な言語となり、現在も広く使われています。
C言語の登場と同じ時期に、オブジェクト指向を取り入れた初のプログラミング言語Smalltalkが登場しました。
Smalltalkは、オブジェクト指向という言葉を初めて定義した言語です。後に開発されるオブジェクト指向型言語に大きな影響を与えており、オブジェクト指向言語の先祖ともいえます。
1964年に原型が誕生したBASICは、1970年代後半に起こったパソコンブームでの8ビットパソコンに標準採用されました。
日本でも、
- 1978年発売のシャープ「MZ-80K」
- 1979年発売のNEC「PC-8001」
- 富士通が1981年に発売した「FM-8」
といったパソコンでBASICが使用可能になったのです。パソコン雑誌でも広く紹介され、学生にも深く浸透していきました。
なお、ITの仕事に興味はあるものの、どの職種が自分にあうのかわからない人もいますよね。そんな人は「ITキャリア診断」をお試しください。
かかる時間はたったの1分。5つの質問に答えるだけで、自分にあうIT職種を診断してもらえます。
自身に適した職種が知りたい人は、手軽に試してみると良いですよ。
\ 5つの質問に答えるだけ /
1980年代
主なプログラミング言語
- C++
- Objective-C
1983年には、C言語にオブジェクト指向を導入したC++が誕生しました。同時期に、SmalltalkをベースにしたObjective-Cが登場します。
Objective-Cは、C++と同様にC言語の上位互換を持つオブジェクト指向の言語です。後にNeXTやmacOSの公式言語として、使用されるようになりました。今もiPhoneアプリの開発に使われています。
1987年には、オープンソースのスクリプト言語であるPerlが登場。さまざまなライブラリが用意されているので実用性が高く、1つの処理をするのにいくつもの記述方法を許容する多様性があるのが特徴です。
1990年代
Perlがさらに進化したスクリプト型言語としてPython、PHP、Rubyが誕生したのが、1990年代です。この時期に開発されたプログラミング言語の多くが、現在も使われています。
ここでは、1990年代の10年間を前半・後半に分けて、どんなプログラミング言語が誕生したか説明していきます。
1990年代前半
主なプログラミング言語
- Python
- PHP
Pythonは、1990年に誕生しました。スクリプト型かつオブジェクト指向の言語として開発されたPythonは、今や世界中に普及しており人気の言語です。
AIやビッグデータ解析の開発の中心言語で、この先も需要が見込まれます。1994年にはC言語がベースとなったPHPが誕生しました。
動的にWebページを作れるサーバーサイドのスクリプト言語として、WordPressを含めたWebアプリケーションの開発にも使われています。
1990年代後半
主なプログラミング言語
- Ruby
- Java
- JavaScript
- Parl
1995年に一般公開されたRubyは、純オブジェクト指向言語として開発されました。開発者は、日本人プログラマーのまつもとゆきひろ氏です。
PerlやSmalltalk・Ada・Lipsといった、まつもと氏が好む言語の一部をブレンドして作られました。日本はもちろん世界中で人気があり、特にWebサービスやアプリケーション開発の現場で使われています。
1995年にリリースされたJavaはOSに依存せず、どんな環境でもソフトを動かすことができます。汎用性が高く、現在も多くの現場で使われています。
Web業界での開発言語の中心的存在となる、JavaScriptがリリースされたのもこの年です。JavaScriptはクライアントサイドの動的な処理を実装でき、フロントエンドには欠かせない技術となっています。
なお、副業での収入獲得を目指しているものの、どんな仕事が自分に合うかわからない人は「副業診断」をお試しください。
かかる時間はたった1分ほど。5つの質問に答えるだけで、自分にあう副業を診断してもらえます。
自身が取り組みやすい副業で収入を獲得したい人は、ぜひ一度お試しください。
\ 5つの質問に答えるだけ /
2000年代
主なプログラミング言語
- C#
- Scala
- D言語
- Go言語
2000年にリリースされたC#は、C++にJavaを取り込んでおり、文法がJavaに似たオブジェクト指向の言語です。NET Frameworkというソフトウェア上で動作します。
2003年に登場したScalaは、オブジェクト指向言語と関数型の機能も使えるハイブリッドな言語です。Javaと互換性を保つように開発されており、JavaのライブラリをScalaから使えます。
2007年には、C言語の置き換えを目指して開発されたD言語が登場しました。プリプロセッサ相当の機能が含まれており、柔軟な構文かつ短いコンパイル時間を実現したのです。
2009年にはGoogleがオープンソースのGo言語を発表。C言語やJavaのように、作成したオブジェクトをコンパイラすると動作するコンパイル言語です。
Webサーバー構築やアプリケーション開発などに使われており、構文がシンプルで記述しやすいため、近年とても人気があります。
2010年代
主なプログラミング言語
- Dart
- Kotlin
- Swift
- Hack
2011年には、GoogleがDartを発表しました。オブジェクト指向型で高いセキュリティとパフォーマンスを持つとともに、「JavaScriptトランスパイラ」を使ってJavaScriptに変換し、Webブラウザ上での動作が可能という特徴があります。
Kotlinも同じく、2011年に開発されたオブジェクト指向型言語です。Javaとの相互利用が可能で、Androidアプリの開発に使われることが多い言語ですが、Webアプリケーションの開発やサーバーサイドの開発にも使われることがあります。
2014年にはApple社が、オープンソースのプログラミング言語であるSwiftを発表しました。Apple製品向けのアプリケーションやWebアプリの開発に利用されています。
同じく2014年に、Facebook社がHackを公開しました。PHPと構文が似ていますが、PHPが動的型付言語であるのに対してHackは静的型付言語で、実行速度も高速であることが特徴です。
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
世代別に見るプログラミング言語の歴史
ここまで、プログラミング言語の歴史を年代を追ってきました。
プログラミング言語は、大きく4つの世代に分けることもできます。ここでは、プログラミング言語を世代別にまとめてご紹介します。
- 第1世代:機械言語
- 第2世代:アセンブリ言語
- 第3世代:高水準言語
- 第4世代:第3世代以降
プログラミング言語第1世代:機械言語
1940年以前に開発された機械言語が第1世代。機械言語とは、コンピューターが言語を直接理解して命令内容を実行する言語です。
今、機械言語を使って開発をすることはほぼありません。
プログラミング言語第2世代:アセンブリ言語
アセンブリ言語とは、第1世代にあたる機械言語を人間にとって理解しやすくしたもの。
アセンブラとマシン語が1対1に対応し、コンピューターのハードウェア的な動作を生々しく記述するため、CPUの機能やOSの役割などがよくわかる言語です。
コンピューターの動作が手に取るようにわかるので学んでおいて損はありませんが、現代のIT業界でアセンブリ言語を使うことはほぼありません。
プログラミング言語第3世代:高水準言語
手続き型言語には、1960年代に開発された
- FORTRANやALGOL
- COBOL
- C言語
などが挙げられます。
現在でもシステム開発に使われています。
プログラミング言語第4世代:第3世代以降
Java・PHP・Pythonなど第3世代以降に生まれた言語は、第4世代言語(4th generation language:4GL)と呼ばれています。
第3世代の手続き型プログラミング言語に機能が追加されたもので、人間にとって理解しやすい構文で書かれている言語を指します。
なお、プログラミングを学びたい気持ちはあるものの、どの言語が自分にあうのか、どう学習を進めればいいのかなどがあいまいな人は「プログラミング学習プラン診断」をお試しください。
かかる時間は1分ほど。4つの質問に答えるだけで、あなたにあう言語や学習プランを診断してもらえます。
効率よくプログラミングを学習したい人は、ぜひ一度お試しください。
\ 4つの質問に答えるだけ /
プログラミング言語は今後どうなるの?
プログラミング言語は、今後どのように変化していくでしょうか。
現在はノーコード開発の認知度も高まり、ソースコードを書かなくても開発ができる環境が整いつつあります。また、パーツをドラッグ&ドロップで動かして組み立てられるビジュアルプログラミングは、小・中学生のプログラミング教育にも役立っています。
将来的には、義務教育で誰もが学ぶ範囲の簡単なプログラミングができることは特別なスキルではなくなると考えられます。
ただし、部品を選択して実装するノーコード開発では、あまり複雑な要件には対応できません。大規模開発やデータ分析・組み込み系開発・保守などは、まだまだノーコードではできませんので、今後も主要なプログラミング言語での需要は無くならないと考えられます。
また、プログラミングに関わる仕事を長く続けるためにも、習得が難しい言語や希少性の高い言語など、他の人が持っていないスキルを身につけるのもひとつの手段です。
プログラミング言語の歴史が学べる書籍
プログラミング言語の歴史に触れている書籍を3冊、ご紹介します。プログラミング言語に関する知識を増やせる初心者向けの本のほか、プログラミング言語の開発過程がわかる本もあります。
ぜひ手に取って読んでみて下さい。
プログラミング言語図鑑
さまざまなプログラミング言語を徹底解説した1冊です。言語の特徴と歴史に触れる章ががあり、プログラミング言語の歴史についても知ることができます。
これからプログラミングを学ぼうと考えていて、どの言語にしようか迷っている初心者にもおすすめです。
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
増補版 -教養としてのプログラミング講座
プログラミングとは何かから、簡単なプログラミング講座まで掲載された初心者向けの書籍です。各章の最後にコンピューターの歴史が掲載されていて、ここまでどんな進化をたどってきたのかわかります。
プログラミングを始める前に、プログラミングの考え方について知りたい人におすすめです。
プログラミング言語大全
数多くのプログラミング言語を収録した書籍です。プログラミング言語の歴史や影響を受けた・与えた言語、利用シーンなどを解説しています。
これからプログラミングを学びたい人はもちろん、自分が習得している以外のプログラミング言語について知りたい方、経験が浅いプログラマーやエンジニアにおすすめの1冊です。
今から学ぶなら需要が高い言語がおすすめ
ここまで、多くのプログラミング言語を紹介してきました。しかし「これからプログラミングの学習を始めたいけれど、どの言語を選べば良いのかわからない」という方も多いですよね。
学ぶべきプログラミング言語は、目的に合わせて選びましょう。転職のために学習するなら、トレンドの言語を選ぶのがおすすめです。
トレンドとなっている言語は、時間の経過で求人数が増えていく傾向があります。一通り学習して転職活動を始める頃には、今よりも求人数が増えている可能性があります。
フリーランスの場合は、案件数が多い言語を選びましょう。案件数が多いということは、それだけ仕事を獲得できる可能性が高まります。
プログラミングが初めての場合には、上記の条件にあてはまる言語の中から習得が比較的簡単なものを選びましょう。
選び方の詳細については、次の記事でも詳しく解説しています。
JavaScript
JavaScriptは、Webページでポップアップウィンドウの表示や、入力フォームなどを設置するのに使われるプログラミング言語です。使い勝手の良さが抜群で、企業やユーザーからの評価が高い言語でもあります。
JavaScriptでできること
- ブラウザゲーム開発
- Webページ作成
- スマホアプリ開発
JavaScriptの詳細については、次の記事で解説しています。
PHP
PHPは、Web開発で使われることが多いサーバーサイドのスクリプト言語です。シンプルで簡単な構文なので習得難易度が低く、需要が高い言語でもあります。
PHPでできること
- Webアプリの開発・構築
- Webサイトの制作・構築
- 業務システム開発
PHPの詳細については、次の記事で解説しています。
Java
Javaは、応用力が高くどんな環境でも使いやすいプログラミング言語です。アプリケーションの開発から、大規模なシステム開発まで、さまざまな用途に使われます。
Javaでできること
- 業務システム開発
- Androidアプリ開発
- Webサイト
- ゲーム開発
- 組み込みシステム
Javaの詳細については、次の記事で解説しています。
Python
Pythonは、AI開発で注目を集めているプログラミング言語です。コードの記述がシンプルで勉強しやすく、エラー箇所がわかりやすい言語でもあります。
Pythonでできること
- Webサービスの開発
- 人工知能の開発
- データ分析の効率化
- ブロックチェーン開発
Pythonの詳細については、次の記事で解説しています。
Swift
Swiftは、「世界中の人たちに使ってもらいたい」という願いを込めてAppleが開発したプログラミング言語です。安定性が高く、リアルタイム性があることが特徴です。
Swiftでできること
- Apple製品向けアプリケーション開発
- Webアプリケーション開発
Swiftの詳細については、次の記事で解説しています。
Kotlin
Kotlinは、Javaをシンプルにしたプログラミング言語です。2017年には、Androidの公式開発言語に追加されました。
Kotlinでできること
- Androidアプリの開発
- Webアプリの開発
Kotlinの詳細については次の記事で解説しています。
C言語
C言語は、処理の速さが特徴のプログラミング言語です。歴史が長く、まだまだ需要が高い言語でもあります。
C言語でできること
- Webアプリ開発
- スマホアプリ開発
- 組み込みアプリ開発
C言語の詳細については次の記事で解説しています。
C言語は、家電製品やロボットへの組み込みソフトウェアの開発や、OSの開発などの現場で使われているプログラミング言語です。学習難易度がやや高い言語でもあるため、「独学でC言語を身につける自信がない」という方もいます。
そんな方は、プログラミングスクールに通うのがおすすめ。侍エンジニア塾では「無料体験レッスン」を行なっていますので、お気軽にご参加ください。
まとめ
1930年に元祖といえるコンピューターが登場してから、現在までプログラミング言語はさまざまな進化をとげてきました。今後はだれもがプログラミングを学び、プログラミングは特別なスキルでなくなる可能性が高いです。
これからプログラミング言語を学習するのであれば、需要の高い言語を学ぶのがおすすめです。自分の目的に合わせて、どの言語を学ぶか考えてみてください。
この記事のおさらい
1940年以前に開発された機械言語が第1世代とされていますが、第3世代の高水準言語以降が本格的なプログラミングの歴史と言えます。
1950年代に登場したFORTRANだといわれています。
この記事の監修者
フルスタックエンジニア
音楽大学卒業後、15年間中高一貫進学校の音楽教師として勤務。40才のときからIT、WEB系の企業に勤務。livedoor(スーパーバイザー)、楽天株式会社(ディレクター)、アスキーソリューションズ(PM)などを経験。50歳の時より、専門学校でWEB・デザイン系の学科長として勤務の傍ら、副業としてフリーランス活動を開始。 2016年、株式会社SAMURAIのインストラクターを始め、その後フリーランスコースを創設。現在までに100名以上の指導を行い、未経験から活躍できるエンジニアを輩出している。また、フリーランスのノウハウを伝えるセミナーにも多数、登壇している。