はじめに:Webアプリ開発に限定したプログラム言語の変遷
当記事は以下の記事の補足となります。
2025年2月時点で、Webアプリに限定して実際に開発現場の目線からプログラム言語の変遷を整理してみます。
プログラム言語全体の変遷は、いろいろなサイトで整理されています。そちらをご参照いただければと思います。
年数は言語が初めてリリースされた年ではなく、個人的によく見かけるようになったなと思った年数です。
~2000年:文字列操作やポインタ、メモリ管理が大変なC言語
Webに関するプログラム言語は以下のように変遷してきた用に思います。最初、C言語でCGI(Common Gateway Interface)モジュールを作っていました。
2000年前半:文字列操作が楽、メモリ管理が不要なスクリプト言語(Perl、VBScript)
ただ、C言語は文字列操作やポインタの操作、メモリ管理が大変でした。そこで、Perlというスクリプト言語を使うのが増えてきました。Perlは文字列操作に優れており、正規表現のライブラリで使われているのをみたことがある人もいると思います。
また、WindowsSererでは、ASP(Active Server Pages)という仕組みがあり、その仕組みで動くスクリプト言語、VBScriptがありました。小さめの案件ではこれが使われていることがありました。
2000年前半~2025年:大規模な構造をつくる設計に向いていたクラス構文があるオブジェクト指向言語(Java、VB、C#)
また、Perlと並んで、大規模Webシステムで使われだしたのが、JavaやVBになります。これらの言語は、C言語に似ていますが、オブジェクト指向設計をしやすくするためのクラス構文が含まれ、大規模の構造化されたモジュール設計をしやすくするために採用されていきました。
文字列操作については、VBは楽ですが、初期のJavaはかなりめんどくさかった覚えがあります。もっとも、ポインタの処理などメモリ管理は楽になりました。
VBは、Windows系OSでWebアプリを作る際に、ASP.NETというフレームワークとともに使われていました。そのうち、言語仕様がJavaに似たC#が使われるようになっています。
2000年半ば~2025年:読み書き実行のし易いスクリプト言語(PHP、Ruby、Python)
Perlは、C言語よりは文字列操作や変数の操作がらくになりましたが、記号の多い言語で可読性は高くなかったように思います。そこで登場したのが、今でも使われているPHP、Ruby、Pythonです。
これらの言語は、スクリプト言語と言われます。スクリプト言語は、C、Java、VBなどのコンパイラ言語と違って、コンパイルをせずにそのまま実行できるのも開発を効率化する上で注目されました。
人間がコードを読みやすく、そして、コードをシンプルに書けたり、実行を楽にすることを目的として採用されるようになったのがこれらのスクリプト言語です。ちなみに、Perlもスクリプト言語です。
コンパイラ言語について
以下の記事の「コンパイラ / インタプリタ」の項目で、コンパイラ言語という表現が正しくないという指摘があります。それについては、厳密にはそうだと思います。
ただ、実際は、上記にあげた言語は、コンパイルして使うのが一般的でした。その当時の使い方を表現する意図で「コンパイラ言語」と表記しています。
2010年頃:フロントエンドの動的処理の開発ニーズに対応するJavaScript
その後、Webシステムの画面は、JavaScriptで動的な処理をする処理が増えてきます。Javascriptは2000年ごろでも使えましたが、2010年ぐらいまではそこまで多用されてなかったように思います。
2015年頃~2025年:JavaScriptをバックエンドでも使えるNode.js
フロントでの動的な処理が増えるに従ってJavascriptの存在感が増してきました。そのうち、バックエンドでもJavascriptを実行できるNode.jsが登場します。
Node.jsは、バックエンドだけでなく、フロントエンドのビルドや動作確認で使われるようになります。Node.jsがバックエンドを席巻したわけではないですが、採用する観点としては、フロントとバックエンドの言語を揃えることで学習コストを下げる、メンテナンスしやすくするという目的があったと思います。
2025年時点では、Node.jsの後継であるDeno.jsも登場していますが、個人的には2025年時点ではNode.jsがまだまだ多く使われている印象があります。
2018年頃~2025年開発効率向上のためにスクリプト言語も型を採用していく(TypeScript)
このようにWebシステム開発においては、コンパイラ言語からスクリプト言語が多く使われるようになりました。ただ、当初、スクリプト言語は変数に型をつけることができませんでした。
型がないことにより、コーディングする際に、補完もつかえない、そして、実行時に想定しない値が変数にいれられ、エラーになることもありました。コンパイル言語では型は必須でしたので、コンパイル時に型にまつわるエラーは比較的潰しやすかったです。また、コード補完も効きますので、開発効率が高かったと思います。
そして、スクリプト言語も型を実装するようになってきました。JavaScriptについては、言語文法で型がなかったため、TypeScriptというJavaScriptへトランスパイルする言語の採用が増えていきます。
2020年頃~2025年:実行速度、開発速度を向上し、設計をシンプルにするコンパイル言語(Go、Rust)
スクリプトは読み書きしやすいし、実行しやすかったのですが、速度面での問題がありました。この場合、2020年より前は、JavaやC#をつかって対応することがありました。ただ、オブジェクト指向設計については使いこなすのが難しく、スパゲッティコードになることもあったため、脱オブジェクト指向の流れもでてきます。
フロントエンドとバックエンドが分かれて、バックエンドはAPIをつくるだけのシンプルな構造になってきたため、言語としてシンプルに高速に、そして、型をつかって開発効率の高いものが採用されることになります。
そこで採用が増えているのがGo、Rustになります。また、アンチオブジェクト指向として関数型言語の採用もみられます。有名な言語としては、Elixirがあります。
2025年時点では、PHP、Ruby、Python、Node.js、Java、C#、Go、Rustが多く使われている印象があります。
特に、PythonはAIブームが後押し担っていることもありかなりユーザー、案件も増えている印象があります。
Webアプリ開発に関するプログラム言語の変遷
1.C言語
2.Java、VB、C#
3.Perl、VBScript(ASP)
3.PHP、Ruby、Python
4.Node.js(JavaScript),TypeScript
5.Go、Rust、Elixir
以上、Webアプリ開発に注目したプログラム言語の変遷を、現場にいた経験をもとに整理しました。