皆さんはプログラミング言語の誕生に興味を持ったことはありますか?いま使用している言語は一体いつ、どのようにして生まれたのか、少し気になりませんか?
今回はプログラミング言語の歴史を年代ごとに振り返っていきます!今主流の言語がかなり前から存在していたことに驚くはず。ぜひ最後まで目を通してみてくださいね。
目次
コンピュータの誕生
まずはコンピュータの誕生から探っていきましょう。
世界で初めて誕生したコンピュータは、イギリスの数学者『チャールズ・バベッジ』の考案した計算機です。現代で使用されているものとは程遠いですが、”プログラム可能な”機械が設計されました。
しかしチャールズ・バベッジは設計段階で死去し、考案した計算機が完成したのは1990年代でした。
それ以前にもプログラムという、決まった物事を手順通りに行う機能を持つ機械として、ジャカード織機やオルゴール、自動オルガンなどが発明されていました。これらは1800年代に登場しています。
プログラミング言語の歴史年表
続いて正式なコンピュータが誕生した歴史を、年表を追いながら探っていきましょう。
1940年代
電子式のコンピュータが発明されたのは、今から80年ほど前の1940年代後半です。この頃のコンピュータは、現在のコンピュータの機能とは比べ物にならず、言語処理能力も一切ありませんでした。
では何で命令を与えるのかというと、機械が唯一理解できる言語「機械語」です。機械語は0と1の2つの数字のみで構成される言語で、2進数という表記で表されます。
機械語での開発が進むと、「アセンブリ言語」というかろうじて人間が理解可能な言語が開発されました。しかしまだこの段階では、現在のように言語を使用した自由なプログラミングはできません。
1950年代~1960年代前半
1950年代に入り、ようやく人間により近い言語「高水準言語(高級言語)」が開発されるようになりました。今でも時々名前が挙がる、FORTRANやCOBOL、ALGOL、もこの時期に生まれた言語です。
高水準言語の開発の他、順当、条件分岐、反復処理の、現代のプログラミングの基礎となっている「構造化プログラミング」の概念も50年代に誕生したものです。
さらに1964年には、より簡単にプログラミングが可能になった初心者向けの言語BASICがアメリカで開発されました。
1960年代後半
1960年代はまさにプログラミングの世界にとって成長の10年間といえるでしょう。1950年代から1960年代前半にかけて高水準言語が登場しましたが、1960年代後半には「オブジェクト指向」の概念が発案されました。
B言語に影響を与えたBCPLもこの時期に開発されました。B言語は現在も利用されているC言語の元となりました。C言語はOSの開発に利用される重要な言語として活躍しています。
1970年代
1970年代には、現在も使用されている言語が次々に登場します。先ほど紹介したB言語が1970年頃に開発をスタートし、その後1972年にC言語として世界に発信されました。
さらに1960年代に登場した「オブジェクト指向」を初めて取り入れた言語Smalltalkも登場。Smalltalkは後のオブジェクト指向型に大きな影響を与えています。
またデータベースを構築する際に必須の言語SQLもこの時期に登場しました。SQLは企業の手を借りて、言語の形を拡張された形で発信されています。
1970年代には、個人がコンピュータを占有する「パーソナルコンピューター」が普及し、より人がコンピュータに接する機会が多くなったのです。
1980年代
1980年に入ると、C言語が瞬く間に普及し、C言語から派生したC++も開発されました。その後C言語は1989年にANSIによって標準化されました。
C++はC言語を拡張するような形で進化を遂げたため、どんどん構造が複雑化。その結果”難しい言語”といわれるようになり、複雑なC++に代わって比較的簡単なObjective-Cが開発されました。
さらにパーソナルコンピューターの普及でBASICが重宝され、IT業界は活発化していきます。
1990年代
1990年代に入り、ようやく現代のコンピューターらしい形態を構成するようになります。それはパーソナルコンピューターに「GUI」が導入されたから。GUIの導入により、さらに効率的な開発が可能になりました。
また最近AIや機械学習の領域で注目されているPythonや、関数型プログラミング言語のHakell、日本人の「まつもとゆきひろ」氏が開発したRubyが発表されるなど、扱いやすくシンプルな言語が多く登場。
さらに1995年には実行環境に依存しない言語のJavaや、サーバーサイドの操作を行うPHP、Webサイトの構築には欠かせないJavaScriptも登場するなど、現在主流となっている言語も多く登場しました。
2000年代
2000年に入ると、さらにパーソナルコンピューターが普及し、言語の開発も加速しました。この時期に課題となったのは、情報の桁あふれである「バッファオーバーフロー」です。多くの開発者は、このバッファオーバーフローを興さない言語を使用するようになりました。
この時期に開発された言語は、オブジェクト指向と関数型プログラミングの特徴を統合したScalaや、多言語の課題を上手くクリアしたGoなどがあります。
2010年代
1990年代はコンピューター上で動くプログラムの開発を行う言語が次々に登場しましたが、2010年代に入るとスマートフォンの急速な普及に合わせて、Android用の開発言語Kotlinや、iPhone用の開発言語Swiftが開発されました。
またMozillaの開発したRust、JavaScriptの代替えを目的としたDart、高度な計算が得意なJuliaなど、より細分化された目的を持つ言語が登場しています。
2020年以降 これからプログラミングはどう進化する?
ではこれからの時代ですが、プログラミング言語はどう進化していくのでしょうか?おそらく新しい言語が開発されるというよりも、既出の言語を改良していく動きの方が多くなると思います。
プログラミング言語は1度登場すると、難点を解決するために何度もアップデートが行われます。1990年代に開発されているPython、Go、Rubyなどが注目を浴びていますし、今まで日の目を浴びることのなかった言語が活躍するのではないでしょうか。
またAIの活躍によって、プログラミングの自動化が進むともされています。そうなると、私たちが手でプログラミングを行うことは少なくなるのかもしれません。
まとめ
今回はプログラミング言語の歴史をご紹介しました。こうして見てみると、最近活躍している言語は開発から20~30年もたっているということが分かります。
また初期のエンジニアたちは、あまり効率的とは言えない環境でプログラミングを行っていたわけですが、その状態でもこんなにも多くの言語を生み出せるということに感心すると思います。
興味がある方は、言語ごとの歴史をさらに詳しく調べてみてくださいね!
参考文献:
プログラミング言語年表 – Wikipedia
構造化プログラミング – Wikipedia