2021-09-11

jQueryWebアプリケーションに使っている会社は滅びゆく(前編)

いまもjQueryWebアプリケーション大事ライブラリとして使っている会社は少なくないと思う。

jQuery会社で使っていると何が問題なのかを語っていこう。独断偏見によるものなので、jQueryを使っていても問題ない会社も当然ある。たとえばペライチのサイトを作る会社とか小規模サイトなんかでは全く問題ない。

フロントエンドエンジニアjQueryを嫌うので入社しない

退職理由: jQuery

採用困難で売り手市場になっている時代、そして「jQueryを触らなければならない環境 vs モダンフロントエンド環境」という選択肢がある中で、あえてjQueryを選ぶフロントエンドエンジニアは少ない。

また、新人はもはやjQueryを学ぶことはない。彼らはES6以降のJavaScript / TypeScriptを書く。よしんばjQueryを学ぶことになった新人がいたとしても、それはただその新人可哀想なだけで、現役なわけではない。ラガード(遅滞者)の仲間入りをさせているだけだ。新人でもキャリアデザインできる新人は「jQueryオワコン」という情報には触れているので、よほど就活で失敗しない限りはjQueryのところにたどり着かなくなっている。

そもそもバックエンドエンジニアでもモダンフロントエンドを書くような環境が増えてきた中で、2世代も前のjQueryだけでアーキテクチャに関する一考もないコードメンテしなければいけないので、「jQuery」という言葉だけでフロントエンドエンジニアでなくとも入社を避けがちだ。(jQueryアーキテクチャがしっかりしている可能性は低い。アーキテクチャがしっかりしているならばjQuery依存しておらず、jQuery依存していないのであれば簡単jQueryから脱却できるはずで、簡単jQueryから脱却できるならもう脱却しているはずだからだ)

メインストリームの部分はほとんどリプレイスが終わっているというでもなく、すべて現役でjQueryなのであれば尚更問題で、誰もメンテしたがらないコードの出来上がりだ。「弊社はCOBOLで書いてます!」とにこやかに言うようなものだ。

(ただし、さすがにjQueryだけでフロントをやっているという会社求人ほとんど見かけることはない。無意識スクリーニングで落としているのかもしれない)

jQueryを使っている会社には、フロントエンドエンジニアは一人もいないと言いきってもいいかもしれない。もしくは、今まさにjQueryをやめようとしているかたまたま入ってきたフロントエンドエンジニアが今まさに辞めようと迷っているかのどれかだ。

jQueryを使っていました」というエンジニアは、他社からフロントエンドスキルが0とみなされる。つまりフロントエンドエンジニアではないという意味だ。jQueryは、jQueryを使っている会社に対してしか武器にならないのだ(逆はできる)

jQueryが書ける人材は縮小傾向にある

jQueryを書ける人口自体は増えているだろうが、労働市場から撤退し始めている。昔jQueryを書いていた人材の人数が上限で、そこから新たに学ぶ人の絶対数が減っているため、全体としては減っている。

私もjQueryは以前業務で書いていたが、もう数年書いていない。特にメリットを感じないからだ。遊びで、生のJavaScriptを書くことはある。

jQuery入社するのは、昔からjQueryを使っている高齢エンジニアか、なぜかjQueryを学ぶことになってしまった新人である可能性がある。

そのため、需要供給に応じて、昔いたようなスキルレベルの人を今の市場で見つけようとすると費用がかかってしまう。jQuery書けますという人材が高年齢化しているのだ。そして世継ぎはいない。

jQueryを使っている会社にはフロントエンド知識が高い人がいないのでjQueryから抜け出せない

リプレイスはハッキリ言って難しい。モダンフロントエンド学習するだけでは足りなくて、それを使いこなせた上でしかjQuery使用したカオスイベントコードも読めて、そしてアーキテクチャを考えてリプレイスしなければいけない。

時代が下るにつれて、そうしたハイスキル人材はより高価値になっていき、レア度も単価も高くなる。今そういう人を雇うという判断をしない会社が、どうして今後もっとハイスキルの人を雇えようか。

jQueryを使ったサービスがしっかり利益を出している点もリプレイスを難しくしている。全廃もできない。かと言ってコストに見合わなければリプレイスという経営判断も難しい。経営が困難な状態ならより厳しい。

何も理由がなくjQueryを使い続けたいという奇特な人は多くないはずだ。何か理由があってそうなっているわけだ。カッコよく言うと『ナッシュ均衡』という状態だろう。今会社にいる人材もいわゆる『jQuery人材』が多いため、そこを打破するのはとても困難な道だろう。

jQueryから抜け出すには、すでにいる人材がなんとかしてリプレイスするか、外から連れてきて改革するしかない。しかし大抵の場合既存従業員にとってはそんな大変なことをするよりも転職したほうが楽な道だ。(もちろん、「jQueryしかなかったサービスモダンフロントエンドにした」というのが実績としてある人材はかなり魅力的な人材で引くてあまたなことだろう。その意味ではピンチをチャンスに変えるときの『チャンス』ではある)

ReactやVue.jsに変えたいと思ったとして「じゃあお前それですぐに利益出せんのかよ?」と詰められたら、その論争をクリアしてまで変えるのはほとんど無理に近い。通常、リプレイスそれ自体価値を生み出さない。リプレイス後に運用コストが低下したり、人材獲得がしやすくなるために利益が出るのだ。リプレイスとは長期の投資であるため、短期的には必ず損失になる。経営が困難な状態リプレイスしようとするのは、生活困窮世帯リボ払いをやめさせるぐらい難しい。そのため、まず自分が身銭を切ってリプレイスするしかない。そしてリターンがあるかもわからない身銭は切りにくい。そして同僚は容易に『抵抗勢力』になる。

ちなみにこのヤバい状態を『jQueryの崖』と言う。

jQueryを使っている会社フロントエンド周りのCI/CD等、エコシステムが構築できていない可能性がある

jQueryを今も使っているということは、裏を返せば「これまでリプレイスをしてこなかった」「リプレイスしようとしたが無理だった」という実績にもなる。

jQueryを使っている会社は、昔からあるコードをもとに書いているため、今もES6以前の文法で書いている可能性がある。そうしてどんどんと情報が少なく、古く、現代通用しにくいものになっていく。

bundlerを使っていない可能性が高いし、もしかするとCI/CDも無いかもしれない。そうすると、モダンインフラエンジニア(もしくはモダンインフラ知識のあるエンジニア)がいないかもしれない。SREという概念がないかもしれない。

世間一般から見ると会社の中が古いのだが、古い会社にいると「自分が古い」とはなかなか思えないものだ。太っちょの集まりの中にいたら「自分はそんなに太ってない」と思うのと同じことだ。

すべては憶測なので、実際は違うかもしれない。

jQuery自体が悪いわけではない

さんざんdisってきたが、そもそもjQueryは何も悪くないし、大変優れたライブラリだ。ちょっとしたプロトタイプを作るときには良いものであるかもしれない。しかも今もjQuery自体メンテされている。そのため、状態管理さえうまくできていればjQueryだろうがなんだろうが問題ない。

問題は、jQueryというライブラリを使ってきた時代からアーキテクチャ前進していない点にある。何年もずっとその状態だということだ。そこを今日に至るまで誰1人として変えられなかったということだ。特に経営陣は何の問題視もしていない可能性が極めて高い。そうした社内のしがらみが反映された結晶体、それが『使用技術: jQuery』という言葉になっているのだと思う。また、ヤバさは、jQueryバージョン反比例する。

jQueryを使っているアプリケーションには、jQuery担保していなかったアーキテクチャ部分に問題があることが多い。また、どこから呼ばれているか誰もわからない複雑なイベントSPAもクソもないページ遷移ごとのリロード、誰もどこもテストできず、HTMLベタ書きで書かれたJavaScriptコード、その場しのぎでデタラメに書かれた関数無視される変数スコープサポートが終わったライブラリドキュメントを見つけるのすら困難なよくわからないライブラリ高齢しか知らない伝説機能伝説のハック、などもある。これらはモダンフロントエンドではほとんど発生しないものだ。

そのため、一定基準として「jQueryを使っているかどうか」で、フロントエンドエンジニアとしてのやりがいがあるかどうかを判別できる。

そうして、フロントエンドエンジニアというのはもうjQueryに見向きもしていない。書けるけど書きたくない。パラレルワールドのようなものだ。

そういうようなことを「使用技術: jQuery」という文言から感じ取ってしまうのだ。

(そしてこれは、実際の仕事の中身が違うかどうかは関係ない。jQueryとは、そういうふうなブランドと化しているのだ)

前編のおわりに

jQueryを使っている会社からしたら「そんなことはわかっている」という部分で、「じゃあどうすればいいのか?」という部分が気になるところだと思う。

そこで、後編では「どうやってjQueryを全廃すればいいのか?」「実際にどのように全廃したのかの事例」について、だいたい来週ぐらいに書くつもりだ。

お楽しみに!

  • それなんてよむの?

  • もう仕事でコード書く機会がないから生jsしか使わんわ。

  • 業界がそもそも違うんだろうけど(当方はメーカー IT技術力低くても優秀な人がいて儲かってる職場を経験すると こういう言説に違和感しか感じなくなってしまう

  • JSが jQuery を吸収した気がする。クエリセレクターをチョメチョメすりゃええんだろ、って思うなら >>> window.$ = (b, a = document) => a.querySelector(b); window.$$ = (b, a = document) => a.querySele...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん