- jQueryは古い技術だから嫌われているわけではない
- かつてjQueryが必要だった理由
- 現在のJavaScriptの変化
- 「書きやすさ」の逆転
- モジュール化との相性
- 誤解されやすいポイント
- なぜ「古い」と感じるのか
- 最後に
jQueryは古い技術だから嫌われているわけではない
jQueryはよく「もう古い」「今どき使わない」と言われます。
しかし、これは半分正しく、半分誤解です。
単に登場が古いから使われなくなったのではありません。
結論から言うと、jQueryが提供していた価値が、ブラウザ標準に取り込まれたためです。
つまり、jQueryが不要になったのであって、jQueryの設計が間違っていたわけではありません。
かつてjQueryが必要だった理由
2000年代のJavaScript開発では、次のようなコードが普通でした。
var el = document.getElementById("menu"); el.style.display = "none";
この時点では問題なさそうに見えますが、実際にはブラウザ差異が大量に存在しました。
- イベントの書き方が違う
- CSS操作が不安定
- DOM取得の方法が違う
- AjaxのAPIが統一されていない
例えばAjaxです。
var xhr = new ActiveXObject("Microsoft.XMLHTTP");
これはInternet Explorer専用の書き方です。他のブラウザでは動きません。
jQueryの$.ajaxは、これらの差異をすべて吸収しました。
つまり当時のjQueryは「便利な糖衣構文」ではなく、ブラウザを使える状態にするための必須レイヤーでした。
現在のJavaScriptの変化
現在は状況が大きく変わりました。
ブラウザが標準仕様に収束し、ネイティブAPIが充実しています。
例えばDOM取得です。
| 昔 | 現在 |
| $("#id") | document.querySelector("#id") |
イベント登録も同様です。
document.querySelector("#btn") .addEventListener("click", handler);
Ajaxもfetch APIが使えます。
fetch("/api/user") .then(r => r.json()) .then(data => console.log(data));
つまり、かつてjQueryが提供していた機能の多くが、ブラウザに標準搭載されました。
「書きやすさ」の逆転
かつては
- 素のJavaScript:複雑
- jQuery:簡単
でした。
しかし現在は逆転しています。
シンプルな操作なら、むしろネイティブの方が短くなります。
さらに、jQueryを読み込むコスト(数十KB)が相対的に大きくなりました。
このため、わざわざライブラリを導入する理由が減りました。
モジュール化との相性
もう1つの理由がJavaScriptのモジュール化です。
ES Modulesが普及し、次のような開発が一般的になりました。
import { something } from "./module.js";
jQueryはグローバル変数を前提としたライブラリです。
scriptタグで読み込まれ、window.jQueryとして存在します。
この設計は、ビルドツールやバンドラと相性が良くありませんでした。
現代のフロントエンドは「必要なコードだけ読み込む」方向に進み、巨大な単一ライブラリは避けられるようになりました。
誤解されやすいポイント
ここで重要なのは、「jQueryは危険な技術」ではないという点です。
実際、現在でも多くの管理画面やCMSで使われています。
問題は次のようなケースです。
- SPAをjQueryで構築しようとする
- 状態管理をDOMに任せる
- 新規開発で全面採用する
これらは設計が合いません。
しかし既存のページに動きを付ける用途では、今でも合理的です。
なぜ「古い」と感じるのか
技術が古く見えるとき、たいてい理由は2つあります。
1. 役割がなくなった
2. 新しい抽象化が登場した
jQueryは両方に当てはまります。
ReactやVueはUIを「生成」しますが、jQueryはUIを「操作」します。
現在のWebは生成型の方が扱いやすくなりました。
その結果、jQueryの立ち位置が変わりました。
最後に
jQueryは衰退した技術というより、「標準化を成功させた技術」です。
ブラウザのばらつきを吸収した結果、その役割がブラウザ自身に移りました。
つまり、jQueryが不要になったのは失敗ではなく、目的が達成されたからと言えます。
古いのではなく、仕事を終えたライブラリと見る方が、実態に近いでしょう。