「jQueryってdisconじゃないですか」

（この文章は３割の事実と７割のDeepSeekが創出したストーリーをChatGPT o1による調整を加えて作成しました）

# **「jQueryってdisconじゃないですか」**

そう話すのは、
ヘアカラーは少し淡いアッシュグレー、
背は高いがやや猫背ぎみ。
胸元に英字が踊る真っ黒のパーカーを着ている、
いかにも“新しいもの好き”な雰囲気のワカモノだ。

実は彼は、知人のお子さんなのだが、
『４月から新卒でIT関係の会社に入るんだけど
　なんかアドバイスしてもらえる？』
という、よくわからない流れで
休日の昼間に池袋のスタバで話をしているのだ。

会うなり
『いまJavaの勉強してます！初学者です！』と
挨拶をしてきたのだから、
まぁ、まさにそのような状況なのだろう。

そして、
なんだかんだ上っ面の話をしたところで
冒頭の発言に至ったわけだ。

# 「え？jQueryは『まだ』廃止されてないよ。」

確かに。

確かに、
昨今のモダンなWeb開発の潮流を考えれば、
VueやReactが台頭し、
jQueryは「古い」「もうすぐ廃止」
というイメージがあるのも仕方ない。

でも実際には、
2024年にメジャーアップデートがされるなど
「廃止された」という事実はない。

**「そうなんですか・・・。
　でも・・・、もうこの先が無い
　というか・・・」**

確かに。

先にも記載した通り、
選択肢が無数にある現代社会において
果たしてjQueryを選ぶ必要があるのか？

同じ学習時間、学習コストをかけるなら
別の言語をやったほうがよいのではないか？

そのような”軸”で考えはじめると
なかなかその回答が難しい。

# **Javaの勉強とUIの貧弱さ**

「なるほど・・・」

と、小さくつぶやいてから、
しばし思考を巡らせる。

「今って、Javaの勉強してるんだよね？」
「そうです」
「サーブレットとかやってるってこと？」
「はい。JSPとかもやってます」

「ところで、なんでJavaの勉強してるの？」

という質問をしてしまってから
『はっ！』っとする。

なぜならば、この質問の意図は

『JavaとかサーブレットとかJSPって
　どうしてもUIが貧弱。
　だからbootstrapとかjQueryとかに頼る
　必要がでてくるんだけど、
　それは把握できてんの？』
という、ちょっと皮肉を込めたものであったから。

だけれども、それも杞憂に終わった。
幸い、彼には”そこ”は伝わらなかったようだ。
（よかった・・・）

まぁ、彼が言うことをまとめると・・・

『４月から新卒で入る会社で
　Javaを使うって言われたから勉強してる』
『Pythonは研究で使ってたからわかる』

という感じだ。

なるほど。

これはもしかすると・・・。

「もしかして

# 『学ぶ技術』って『時代の最先端』じゃないとダメ

だと思ってる？」

ふと、自分が新人だった頃を思い出しながら、
言葉を紡ぐ。
この言葉は、彼に言っているのではなく
新人時代の自分に言っているのだ。

「いや・・・別に・・・
　そうじゃないですけど。
　でも・・・
 　無駄な努力はしたくないというか・・・」

彼は首を傾げながら答えた。

「あぁ、わかる。わかるよ。
　でも、技術の『寿命』って意外と長いんだよ」

私はスマホで某求人サイトを開いて
『jQuery』で検索する。

「ほら、今この瞬間にも
　『jQuery知識必須』って案件が
　300件以上ヒットする。
　Javaに至っては5000件超えてる」

彼の目がかすかに動く。
数字が脳裏に刻まれる音が聞こえた気がした。

「これってどういう意味かわかる？
　現場ってのは新しい技術だけじゃ
 　動いてないってこと。
　10年前のシステムをメンテするのも
 　立派な仕事」

ここで敢えて間を置く。

「それにさ。

# jQueryって『古い』んじゃなくて『完成されてる』んだよ。

　あれだけのシェアを
 　長年維持してるってことは、
　何か理由があるはずだって思わない？」

彼が初めて前のめりになる。

「え？それってどういうことですか？」

「例えば・・・『抽象化の美学』とか？」

カバンからMacBookProを取り出し
テキストエディタを開いてコードを書き始める。

```jsx
// ネイティブJS
document.querySelectorAll('.item').forEach(element => {
  element.addEventListener('click', () => {
    element.classList.toggle('active');
  });
});

// jQuery
$('.item').click(function() {
  $(this).toggleClass('active');
});

```

「えっと、この２つが同じ挙動するんだよ。
　jQueryはブラウザ間の差異を吸収しつつ、
　宣言的な記述を可能にしてるんだよ。
　この思想はReactのJSXだって引き継がれてるんだ」

彼は私のモニターに映るコードを
食い入る様にしばらく見つめてからこういった。

「でも・・・それだったら結局は
　Reactやったほうがいいってことじゃないですか？」

「もちろん。
　でも結局のところ
　どの技術を選ぶかに正解はない
 　と思うんだよね。
  
　ただ『時代に流されるエンジニア』と
　『時代を読むエンジニア』の差は、
　過去の積み重ねをどう捉えるかじゃないか
 　って思うんだよ。」

沈黙が流れる。

そして沈黙を破るように、
私はコーヒーを一口すすってから言葉を継いだ。

「ところでさ。

# Java＋JSPって、どうしてjQueryに依存するようになったか

知ってる？」

彼は首を傾げる。

「いや・・・。
　でもUIが貧弱ってさっき言ってましたよね。
　なので、そういうことかなと」

「そう。
　かつてはサーバーサイドでロジックを書いて
 　JSPでHTMLを出力し、画面が必要ならば
  サーブレット経由で再読込・・・
  という流れだった。
  
　でもそれだとページ遷移が多すぎるし、
　ちょっとした動的な挙動をするにも
 　リロードが必要。

　ようはユーザー体験がイマイチ
 　だったんだよね。
  
　そこで、
 　**フロント側でインタラクティブなUIを
  　実現する**ためにjQueryが一気に
   　広まったんだよ。

　当時はそれだけで『おおー！』
 　ってなるくらい、画期的だったんだよ」

「でも今じゃ当たり前ですよね？
　SPAとか、Ajaxとか」

お。

なるほどSPAとか、Ajaxとか
そういう単語も知ってるのか。

だったら『いまさらjQuery・・・』と
モチベーションが下がってしまっても仕方がない。

「まさにその通り。
　当時は、あちこちで
 　“jQueryプラグイン祭り”が起きてたけど、
  　大きなアプリケーションになると
   　**コードが管理しにくい**とか、
    　**複雑な状態管理**が苦手とか、
  　問題が目立つようになってきた。

　そこで今度は、
 　**Vue**や**React**のような、
　**コンポーネント志向**や
 　**仮想DOM**を取り入れたフレームワークが
　主流になっていったんだ」

「あぁ、なるほど。
　だったらやっぱりjQueryとか
　限界に来てるじゃないですか」

「まあまあまあ、そうなんだけど。
　まぁ慌てなさんな。

　とりあえず。

　そういう背景があるから、
　**jQueryを完全に切り捨てる**
 　プロジェクトもあれば、
　**既存のjQueryコードとの共存**を図る
 　ケースもある。

　ただ、
 　“古いけど終わってるわけではない”
  　というのは、ちゃんと理解して
  　ほしいんだよね。

　いまだに
 　jQueryにしか詳しくない現場だってあるし、
　メンテナンス案件も山ほどある。
　**だから企業は求人条件に『jQuery必須』と書くわけ。**

　ここまではオッケー？」

「あーーー、はい。
　なんとなくわかりました」

と言いつつも、その顔はまだ腑に落ちていない。

# 『でも、jQueryをやろう！って気にはならないよ・・・』

と、今にも言葉がでてきそうな雰囲気を感じる。

「ところで話は少し変わるけど。

　たとえば、昨今のAIの進化とか考えてみてよ。
 
　最新モデルが次々登場して、
　これを追いかけるだけで大変だよ。
　それを本当に全部キャッチアップできると思う？」

彼は首を横に振る。

「無理・・・ですね・・・。
 　出てくるスピードのほうが、
　自分の学習速度より全然速いです・・・」

「そう。
　だから、
 　**すべてを追うことはできない**んだよ。
 　じゃぁどうしたらいいと思う？ 」

 彼は、訝しげに眉を潜めて
 「いや、わからないです」
 といった。

「アマゾンの元CEOのジェフ・ベゾスが面白いことを言ってたんだよ。

# 『10年後も変わらないものにフォーカスする』

って」

「10年後も変わらないもの…ですか？」

彼が怪訝そうな顔をする。
そりゃまぁ、“変化が激しい”IT業界において
GAFAMに名前を連ねる巨大テック企業の社長が
そんなことを言ってたなんて知ったらびっくりするだろう。

「うん、詳しい言葉は忘れたけど、
　彼はだいたいそんなニュアンスのことを
 　言ってた。
　たとえばアマゾンなら、10年後だって
　『安くて速い配達をしてほしい』という
　顧客の要望は変わらないだろう、
 　みたいな話だね。

　これを私たちエンジニアに置き換えれば、
　『ユーザーに価値を届ける』とか、
　『わかりやすくメンテしやすいコードを書く』
 　とか、そういう根本は10年経っても
  　変わらないと思わない？」

「あぁ…なるほど。
　『どんな技術を使うか』よりも、
　『ユーザーに何を提供しているか』が大事
 　ってことですか？」

「そうそう。もちろん技術選定は重要だけど、
　**“技術自体は常に変わり続ける”**。

　でも、
 『人間が快適に使えるUIを作る』って目的は、
　10年後だって変わらないと思うんだよ。

　たとえばさっきの
　『フロントエンドが進化してきた歴史』
 　を追ってみると、
  　その一つの足がかりが、
   　**jQueryからVueやReactに至る道**
    　だったりするわけ」

そこまで話してから、少し間を置く。
おっと、ちょっと話しすぎたか？
彼の目を覗き込むと、
明らかに以前よりもキラキラしている。

「技術って、常に**創造と破壊**を繰り返すんだよ。
　たとえばjQueryが生まれ、
 　そこに不満や課題が出てきて、
　さらにVueやReactが生まれて、
 　それらもまた進化し続けている。
  
  　いわばスパイラル（らせん状）に
 　インクリメンタルに成長してる。

　日本には『温故知新』という言葉があるけど、

　『古いものを学び、
 　そこから新しい知識を得る』ってことが、
　実はすごく大事なんだと思うだよね」

彼は少し首をかしげ、それから静かに頷いた。

「具体的な言葉にはできないですけど、
　かなりイメージがついてきました。」

「あぁ、それは良かった。
　『なんでこういう設計になってるの？』を
　**歴史的に遡って勉強する**と、

　今の最新技術にも**DNA**として受け継がれてる部分が見えるんだ。

　それがわかると、**次の時代**、つまり
　‘この先、どんな技術が出てきても、
　根本はこういう方向に進化するんだろうな’

　って読めるようになると思うよ」

その言葉を境にして
彼の顔が急に晴れやかになる。

彼の心境の変化を見届けた後、彼と別れ

『10年後とかに、
　彼の名前をテック業界のニュースで
　見たりしたら嬉しいな。』

そんなことを考えながら自宅に向かう地下鉄のホームに
降りていった。

わずか数時間の会話だったけれど、
彼の中に小さな灯をともしたのかもしれない。

「まぁ・・・だからと言って
　『jQueryをガッツリやれ！』とは思わないんだけどね」

私のそんなつぶやきは、
ホームに滑り込んできた地下鉄の騒音に
かき消されていった。

(fin)