1995年頃～2025年までのWebアプリ開発で利用するプログラム言語の変遷

# はじめに：Webアプリ開発に限定したプログラム言語の変遷

当記事は<font color=red>**以下の記事の補足**</font>となります。

https://qiita.com/SFITB/items/b880b5ebe90a89ed3980


2025年2月時点で、Webアプリに限定して実際に開発現場の目線からプログラム言語の変遷を整理してみます。
プログラム言語全体の変遷は、いろいろなサイトで整理されています。そちらをご参照いただければと思います。

https://www.sejuku.net/blog/124434


**年数は言語が初めてリリースされた年ではなく、個人的によく見かけるようになったなと思った年数**です。

# ～2000年：文字列操作やポインタ、メモリ管理が大変なC言語

Webに関するプログラム言語は以下のように変遷してきた用に思います。最初、<font color=red>**C言語**</font>で<font color=red>**CGI（Common Gateway Interface**</font>）モジュールを作っていました。

https://xtech.nikkei.com/it/article/Watcher/20101015/352993/

https://developers.srad.jp/story/10/10/22/0446221/


# 2000年前半：文字列操作が楽、メモリ管理が不要なスクリプト言語（Perl、VBScript）

ただ、C言語は文字列操作やポインタの操作、メモリ管理が大変でした。そこで、<font color=red>**Perl**</font>というスクリプト言語を使うのが増えてきました。Perlは文字列操作に優れており、正規表現のライブラリで使われているのをみたことがある人もいると思います。

http://itpropartners.com/blog/8638/

また、WindowsSererでは、ASP(Active Server Pages)という仕組みがあり、その仕組みで動くスクリプト言語、VBScriptがありました。小さめの案件ではこれが使われていることがありました。

https://learn.microsoft.com/ja-jp/troubleshoot/developer/webapps/iis/active-server-pages/asp-support-windows

# 2000年前半～2025年：大規模な構造をつくる設計に向いていたクラス構文があるオブジェクト指向言語（Java、VB、C#）

また、Perlと並んで、大規模Webシステムで使われだしたのが、<font color=red>**Java**</font>や<font color=red>**VB**</font>になります。これらの言語は、C言語に似ていますが、<font color=red>**オブジェクト指向**</font>設計をしやすくするためのクラス構文が含まれ、大規模の構造化されたモジュール設計をしやすくするために採用されていきました。

https://xtech.nikkei.com/atcl/nxt/column/18/02197/091400004/

文字列操作については、VBは楽ですが、初期のJavaはかなりめんどくさかった覚えがあります。もっとも、ポインタの処理などメモリ管理は楽になりました。

https://mid-works.com/columns/language/others/1139714

VBは、Windows系OSでWebアプリを作る際に、ASP.NETというフレームワークとともに使われていました。そのうち、言語仕様がJavaに似たC#が使われるようになっています。

https://engineer-style.jp/articles/8607


# 2000年半ば～2025年：読み書き実行のし易いスクリプト言語（PHP、Ruby、Python）

Perlは、C言語よりは文字列操作や変数の操作がらくになりましたが、記号の多い言語で可読性は高くなかったように思います。そこで登場したのが、今でも使われている<font color=red>**PHP、Ruby、Python**</font>です。

これらの言語は、<font color=red>**スクリプト言語**</font>と言われます。スクリプト言語は、C、Java、VBなどの<font color=red>**コンパイラ言語**</font>と違って、コンパイルをせずにそのまま実行できるのも開発を効率化する上で注目されました。

人間がコードを読みやすく、そして、コードをシンプルに書けたり、実行を楽にすることを目的として採用されるようになったのがこれらのスクリプト言語です。ちなみに、Perlもスクリプト言語です。

https://www.akkodis.co.jp/candidate/insight/column_77

:::note warn
コンパイラ言語について

以下の記事の「コンパイラ / インタプリタ」の項目で、コンパイラ言語という表現が正しくないという指摘があります。それについては、厳密にはそうだと思います。

ただ、実際は、上記にあげた言語は、コンパイルして使うのが一般的でした。その当時の使い方を表現する意図で「コンパイラ言語」と表記しています。
:::


https://qiita.com/Latte72R/items/79c176b7feb17036f963#%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9--%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%97%E3%83%AA%E3%82%BF


# 2010年頃：フロントエンドの動的処理の開発ニーズに対応するJavaScript

その後、Webシステムの画面は、<font color=red>**JavaScript**</font>で動的な処理をする処理が増えてきます。Javascriptは2000年ごろでも使えましたが、2010年ぐらいまではそこまで多用されてなかったように思います。

# 2015年頃～2025年：JavaScriptをバックエンドでも使えるNode.js

フロントでの動的な処理が増えるに従ってJavascriptの存在感が増してきました。そのうち、バックエンドでもJavascriptを実行できる<font color=red>**Node.js**</font>が登場します。

Node.jsは、バックエンドだけでなく、フロントエンドのビルドや動作確認で使われるようになります。Node.jsがバックエンドを席巻したわけではないですが、採用する観点としては、フロントとバックエンドの言語を揃えることで学習コストを下げる、メンテナンスしやすくするという目的があったと思います。

2025年時点では、Node.jsの後継であるDeno.jsも登場していますが、個人的には2025年時点ではNode.jsがまだまだ多く使われている印象があります。

https://genee.jp/contents/node-js/

# 2018年頃～2025年開発効率向上のためにスクリプト言語も型を採用していく（TypeScript）

このようにWebシステム開発においては、コンパイラ言語からスクリプト言語が多く使われるようになりました。ただ、当初、スクリプト言語は変数に<font color=red>**型**</font>をつけることができませんでした。

型がないことにより、コーディングする際に、補完もつかえない、そして、実行時に想定しない値が変数にいれられ、エラーになることもありました。コンパイル言語では型は必須でしたので、コンパイル時に型にまつわるエラーは比較的潰しやすかったです。また、コード補完も効きますので、開発効率が高かったと思います。

そして、スクリプト言語も型を実装するようになってきました。JavaScriptについては、言語文法で型がなかったため、TypeScriptというJavaScriptへトランスパイルする言語の採用が増えていきます。

https://qiita.com/yutaka_pg/items/14b5ee6739b6a5cd58cd

# 2020年頃～2025年：実行速度、開発速度を向上し、設計をシンプルにするコンパイル言語（Go、Rust）

スクリプトは読み書きしやすいし、実行しやすかったのですが、速度面での問題がありました。この場合、2020年より前は、JavaやC#をつかって対応することがありました。ただ、オブジェクト指向設計については使いこなすのが難しく、スパゲッティコードになることもあったため、脱オブジェクト指向の流れもでてきます。

フロントエンドとバックエンドが分かれて、バックエンドはAPIをつくるだけのシンプルな構造になってきたため、言語としてシンプルに高速に、そして、型をつかって開発効率の高いものが採用されることになります。

https://offers.jp/media/event-report/a_2895

そこで採用が増えているのがGo、Rustになります。また、アンチオブジェクト指向として関数型言語の採用もみられます。有名な言語としては、Elixirがあります。

https://qiita.com/SFITB/items/5113c0bed1050f103761

https://offers.jp/media/programming/a_4485

2025年時点では、PHP、Ruby、Python、Node.js、Java、C#、Go、Rustが多く使われている印象があります。
特に、PythonはAIブームが後押し担っていることもありかなりユーザー、案件も増えている印象があります。

https://relipasoft.com/blog/top-10-most-used-programming-languages-by-2025/

:::note warn
Webアプリ開発に関するプログラム言語の変遷

１．C言語
２．Java、VB、C#
３．Perl、VBScript（ASP)
３．PHP、Ruby、Python
４．Node.js（JavaScript）,TypeScript
５．Go、Rust、Elixir
:::

以上、Webアプリ開発に注目したプログラム言語の変遷を、現場にいた経験をもとに整理しました。