プログラミング言語の歴史、変遷を辿ってみよう

プログラミング言語っていくつあるの?

みなさんはプログラミング言語が世界にいくつあるかご存知でしょうか。

諸説では2500語ほどあるそうですが、実は言語は無数にあって「数え切れません」というのが正解です。プログラミング言語はプログラマが自作することができますので、プログラマの数だけ言語も存在すると言えるでしょう。

もしプログラミング言語が1つであれば「プログラミングの勉強も楽なのに…」と考える人もいるのではないでしょうか。私自身もプログラミング初心者の時にそう思っていました。一体なぜこんなにも数多くのプログラミング言語が存在するのでしょう?

プログラミング言語が1つでは無い理由

各プログラミング言語には得意な処理と不得意な処理が存在します。プログラミング言語の製作者は、既存のプログラミング言語の持つ固有の考え方(プログラミングパラダイム)の問題点を解消するため、より使いやすいプログラミング言語を作り出してきました。

プログラミング言語は「既存のプログラミング言語に無いものを補って進化し続けている」と言えるでしょう。本コラムでは現在の代表的なプログラミング言語が生まれてきた背景を辿りながら、言語の変遷を解説していきます。

関連記事

プログラミング言語の歴史一覧

プログラミング言語の変遷を知れば、プログラミング技術の理解もより早くなります。主要なプログラミング言語は名前だけでも知っておくようにしましょう。
以下の画像は代表的なプログラミング言語がどのように変遷してきたのかがよく分かる図です。

参考画像1

1940年代、機械語からアセンブリ言語へ

コンピュータが実行できるプログラムは、0と1を使用した2進表現の機械語で書かれています。これを人間でも分かりやすく読めるように表現したものがアセンブリ言語です。

1950~60年代

科学計算用に作られた高水準言語(人間が読み書きしやすい言語)がFortran(フォートラン)です。この言語は計算が得意で、今でも数値計算などで使われています。

さらに商業用にCOBOL(コボル)という言語が生まれました。証券会社や金融機関などで今現在も使われています。

次に、関数型言語と呼ばれるLisp(リスプ)が生まれました。関数とデータの区別をつけないことが特徴のこの言語は、人工知能などの分野で使われています。
この時期に人間が使いやすい高水準言語の基礎が固まったと言っても良いでしょう。

1970年代

OSの一種であるUnix(ユニックス)を開発する高水準言語として、C(シー)が作られました。日本ではC言語と呼ぶ人が多いと思います。Fortran(フォートラン)からALGOL(アルゴル)というプログラミング言語を経て、より人間が使いやすい自然言語(人間が普段使っている言葉)に寄せてプログラミングが可能になりました。

C言語は、ベル研究所のデニス・リッチーが主体となり、ブライアン・カーニハンと共に作ったプログラミング言語です。リッチーとカーニハンが書いたC言語の本『programming c』は、彼らのイニシャルをとって「K&R」と呼ばれたりします。プログラミング学習において最初に「hello world」とブラウザに表示させることから始めるのは、このC言語のバイブル「K&R」にあやかっています。

ちなみにUnixは今も商用で使われているOSです。Linux(リナックス)や現在のMacの基礎的な仕組みは、Unixをベースに考えられたものです。またWindowsなどもUnixの強い影響を受けています。様々なプログラムがC言語をベースに作られてきました。C言語はプログラミング言語の代名詞的な存在であり、プログラミング言語の母のような存在です。

1980年代~1990年代

C言語にも色々な問題点がありました。そこで生まれたのがC++(シープラスプラス)です。この言語ではオブジェクト指向と呼ばれる考え方が導入されました。オブジェクト指向とは、人がモノ(オブジェクト)を扱うようにプログラミングができる仕組みで、大規模なシステムの開発や運用が可能です。現在のプログラミングでは当たり前に導入されている仕組みで、smalltalk(スモールトーク)などのオブジェクト指向言語から影響を受けています。

C言語やC++は、機械語に変換(コンパイル)した環境でしか動作せず、設定が難しいなど欠点もありました。そこで登場したのがJava(ジャバ)です。Javaという言語は、C言語並みの高速性能を維持しつつ、どんな環境でも動くよう仮想マシン上で動く仕組みとして作られました。ちなみに先述したオブジェクト指向という言葉を流行らせたのもJavaです。

次に、CやC++、Javaなどと比べると処理速度の面では劣りますが、他のシステムとの連携やWEBアプリの開発、字句の解析など、特定の目的を手軽に扱うために出来たのがスクリプト言語と呼ばれるタイプの言語です。Perl(パール)、python(パイソン)、PHP(ピーエイチピー)、ruby(ルビー)などがこれにあたり、C言語などの「プログラミング言語」と区別するために「スクリプト言語」と呼ばれています。

2000年代

そして現在。C++を更に進化させたC#(シーシャープ)。iPhoneの開発に使われるSwift(スウィフト)、Googleが開発したGo(ゴー)などがあります。

進化を続けるプログラミング言語

プログラミング言語は、オブジェクト指向や関数型の思想を取り入れ、他のプログラミング言語の良いところを引き継いで作られてきました。

初めて使うプログラミング言語の文法を覚える際も、「他の言語はどのようにこの処理を行っているのか?」ということを意識すると、色々な意図があることに気づくことができます。1つのプログラミング言語の文法が理解できたら、別のプログラミング言語の学習に挑戦してみるのも良いでしょう。

にほんブログ村 IT技術ブログへ
にほんブログ村