1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Last updated at Posted at 2025-01-26

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

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

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

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

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

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

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

確かに。

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

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

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

確かに。

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

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

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

Javaの勉強とUIの貧弱さ

「なるほど・・・」

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

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

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

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

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

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

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

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

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

という感じだ。

なるほど。

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

「もしかして

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

だと思ってる?」

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

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

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

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

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

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

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

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

ここで敢えて間を置く。

「それにさ。

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

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

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

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

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

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

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

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

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

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

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

「もちろん。
 でも結局のところ
 どの技術を選ぶかに正解はない
 と思うんだよね。

 ただ『時代に流されるエンジニア』と
 『時代を読むエンジニア』の差は、
 過去の積み重ねをどう捉えるかじゃないか
 って思うんだよ。」

沈黙が流れる。

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

「ところでさ。

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

知ってる?」

彼は首を傾げる。

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

「そう。
 かつてはサーバーサイドでロジックを書いて
 JSPでHTMLを出力し、画面が必要ならば
サーブレット経由で再読込・・・
という流れだった。

 でもそれだとページ遷移が多すぎるし、
 ちょっとした動的な挙動をするにも
 リロードが必要。

 ようはユーザー体験がイマイチ
 だったんだよね。

 そこで、
 フロント側でインタラクティブなUIを
 実現する
ためにjQueryが一気に
 広まったんだよ。

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

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

お。

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

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

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

 そこで今度は、
 VueReactのような、
 コンポーネント志向
 仮想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)

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?