質問: プログラミング言語はなぜ、そんなに流行り廃りが激しいんですか?
回答: 技術の進歩ですね。 一言で言うと、汎用コンピュータ用のソフト開発 -> パソコンの出現とそのソフト開発 -> インターネットの普及でサーバ上で動くソフト開発。 この流れに応じていろいろな言語が流行したとなります。 1.黎明期 1950年以降からでしょうか。 当時はコンピュータの構造も試行錯誤でアセンブラ/機械語が主流だったはずです。 色々なコンピュータの構造が出現しました。 2.高級言語の出現 初期の業務用のCOBOL言語が1959年に出現しています。この頃は業務用にCOBOL,科学技術計算用にFORTRANが出現しています。 大型コンピュータが前提です。 この時期、いろいろな言語が出現しているはずですがCOBOL, FORTRANそしてアセンブラが主流でした。 この時に一つの「アセンブラの自由度はソフトの生産性を落とす。不要な機能は削るべきだ」という思想のもと、アセンブラのうち不要な機能は削るという流れができました。専門用語ですが「Call By リファレンス」という基礎概念、基礎方針が主流でした。 3.1970年代にCPUが出現し、一台何億円もするコンピュータが誰でも手に入るようになりました。まあ、当時は腕時計、リモコン、電子炊飯器に入れるコンピュータみたいな用途でした。いわゆるマイコンですね。 ここからパソコンが出現します。 この頃はアセンブラ、マニアのためにBASICが普及します。 4.1980年代前後から16bitCPUが出現し、誰でもパソコンで開発ができるようになりました。 この頃にC言語、PASCALが普及しています。パソコン上ではBASICがメジャーでしたがBASICは大きなプログラムが組めない。業務用にムリがあるなどでC/PASCALが持てはやされました。 CとPASCALはソックリ言語です。Cはアセンブラの代替で開発されたガリガリの業務用言語です。 PASCALは教育用言語として開発されました。 この頃から、言語の設計思想が1.で挙げた「Call By リファレンス」を否定して「Call by バリュー」という方向転換が起きて言語の基礎方針が大きく変わっています。 5.GUI形式のパソコンが実用化され、従来のプログラミングではいろいろと不具合が出てきました。後述するオブジェクト指向の必要性がでてきます。アップルのマックでありMSのWindowsです。 6.1987年頃だと記憶しますが、オブジェクト指向という概念が普及します。 オブジェクト指向は乱暴な言い方をすると言語の考え方を変えたものです。 従来の言語はプログラムはデータを処理する物という発送でした。 オブジェクト指向はプログラムが処理するデータの中に入れ子でプログラムを入れるようにしてより高度なプログラムを書けるようにしたものと言うのが乱暴な表現です。 これに合わせてC言語は拡張されC++というオブジェクト指向言語に需要が変わります。 6.1990年頃からインターネットが普及して様相が一変します。 手元のパソコンで動くソフト開発に対して、サーバ上で動くソフトという需要が生まれます。 プログラミング言語は高速が特徴のコンパイラ系と、低速だがどんなコンピュータで動くインタプリタ系の2つのタイプがあります。 サーバ上で動く場合、どんなOSが来るか判らないのでサーバ用途でインタプリタ系が主流となります。 初期はUnix(ベル研究所の作った汎用コンピュータ、厳密にはミニコンと言うかな)上で稼動していたPerl, PHPという既存の言語で対応していまた。 PHPは既存というよりホームページ運営用に新設されたはずです。 7.1997年前後からサーバ上のホームページ用に有名なJavaが出現します。 既存の有り合わせの言語ではムリがあるという事でC++言語をインタプリタ化したような言語という位置づけがあります。 この前後にアップルを追い出されたスティーブ・ジョブスがオブジェクティブCなんてものを喧伝しました。iPhoneの開発言語ですね。今はSwiftなんてまたぞろ新しい言語を提唱していますがね。 8.そして今 MSはJavaを独自に作ろうとして訴訟沙汰を起こしてJavaを名乗れなくなりC#を提供。 Web系は隆盛を誇り、Ruby, パイソン、アップルのSwiftが普及しています。 ----------------- とまあ、コンピュータの変遷に合せて変化していますね。 乗っかっているコンピュータの形態に合せて流行が起きています。 まあ、補足すると時代の要請+宗教論争も少し入り流行が起きていますね(笑)。