Eyes, JAPAN Blog > jQueryは本当に終わったのか?

jQueryは本当に終わったのか?

Yuki Ito

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

jQueryLogo_アイキャッチ

6/9にjQuery 3.0の安定版がリリースされました。今度のアップデートで大きな機能追加はなく、バグフィックス等が中心になっています。

jQuery 3.0 Final Released! | Official jQuery Blog

一時期Webフロントエンド界隈ではその学習コストの低さや利便性から全盛を誇ったjQueryですが、現在はその人気も陰りが見えるものとなっていますね。

Google Trend の結果:

Google トレンド ウェブ検索の人気度 jquery すべての国 2004年 現在

それはどうしてでしょうか。

まず、かつてjQueryが異常なほど流行った理由として、標準のJavaScriptAPIの使えなさがあったと思います。IEにはaddEventListenerの実装がなく、ブラウザごとの差分は激しかった。それをうまく受け止めるライブラリとして、jQueryは最高でした。CSSセレクタを書くようにHTML要素を得ることができたし、IEだけattachEventを使う、なんて処理も書かなくて良くなりました。

しかしその後ゆっくりとではありますが、ブラウザごとの差分は消えていきます。標準化は進み、2012年にIE10が出る頃にはほとんど気にしなくてよくなりました。

さらに、HTML5/ES2015の流れによってjQueryのイケてる機能群は少しづつ形を変え、JavaScriptの標準APIへと取り込まれていきました。

また、jQueryは別の問題も抱えていました。jQueryの使い方として、基本的にDOMというグローバルなオブジェクトをユーザーが直接操作するので、ある程度プログラムが大きくなるとどこでDOMが変更されたのか分かりにくくなり、ソースコードがスパゲッティ化しやすいのです。

SPAのはやりもあり、大規模化を始めたフロントエンドの流れに合わせて出てきたのがBackbone、Angular、Reactといった現在まで続くモダンフレームワークたちです。これらのフレームワークはユーザーがDOMを直接触らないのでjQueryは基本的に必要ありません。MVCやリアクティブ、コンポーネント志向といった構造化のための新しいキーワードたちが、jQueryを不要なものとしていきました。

では、jQueryはこのまま消えていくのでしょうか。

私は必ずしもそうならないのではと考えています。確かに、これからもjQueryを不要なものとする、新しいフレームワークは出続けるでしょうし、それらをキャッチアップしていく層も一定数存在し続けるでしょう。しかし、フロントエンドでの大きなフレームワークの存在意義に疑問を投げかける人々が出てきたのも事実なのです。

私がMVCフレームワークをもはや使わない理由

Reactやvue.jsの台頭もその先駆けと言えると思います。

大きなフレームワークの弊害として、そのフレームワークがサポートしない機能を使いづらいというものがあります。とくにWebの世界では進化も速いため、そういった機能はどんどん出てくることになります。

実は、大きなフレームワークが流行った後、よりシンプルなものに収束するという流れは、サーバーサイドの世界でもう少し前に起こっていたことでした。一時期はRoR系のフレームワークが爆発的に流行りましたが、今はマイクロフレームワークと呼ばれるよりシンプルなものもある一定の支持を得ています。

関数型プログラミングや、リアクティブプログラミングの流れもこの流れを推し進めると考えられます。MVCよりもより柔軟な設計ができるため、小さなアプリケーションは小さな実装で済む可能性が高いためです。

このままフロントエンド界隈でもよりシンプルな実装が好まれるようになれば、今後もjQueryがシンタックスシュガーのように使われ続けることもあり得るのではないでしょうか。実際、すでにReactはいらないと言い始めている人もいます。

ReactをjQueryの数行に要約する | プログラミング | POSTD

数行のアイディアでうまく構造化されたソースコードを眺めるのは気持ちのいいことです。jQueryが次世代のアプローチでうまく役割を演じてくれていたら、それはそれで楽しいですよね。

Comments are closed.