俺も昔はお前のような jQueryスパゲッティジェネレーターだったのだが、膝にReactを受けてしまってな…
基本的な方針
とくにライブラリ設計者において、小さなモジュールを単機能で分割する以上、ライブラリ設計者は可能な限り依存を減らすことを求められます。node環境ならdependency hellの回避のため、フロントエンド環境ならファイルサイズを減らすためです。 ライブラリ設計者ならずともコードのポータビリティを維持するため、できるだけライブラリに依存しないコードを書くのが望ましいです。 Githubみてる限り、最近書かれるJSのライブラリの多くはjQuery非依存です。ユーザーから見る限りは、jQueryElement渡すかHTMLElement使うかぐらいの違いですけどね。 また、Angular, React等のSPAをスクラッチで設計する場合、気づいたらjQueryを使っていない、ということは十分にありえます。 React 127k, jQuery 120k, underscore 42k みたいな世界なので、両方入れるのは嫌だな、といった具合です。ちょっとしたライブラリなのにjQuery依存あって全体に +127k となるのは嬉しくない。You Don't Need jQuery を読みなおしてわかること
You Don't Need jQuery - Qiita のコメントは﹁生DOM操作は冗長なコードが多く、jQuery の良さを再確認した﹂という意見が多かったですが、↑の記事をよく読むと分かるのですが、冗長な部分は﹁座標計算﹂、﹁親方向の探索﹂に多いです。$.fn.heght/width/offset/position
/scrollTop
その辺の﹁座標計算﹂の複雑さは、というかGUIの座標系は本質的に面倒くさいです。とはいえ、jQueryの本来の用途であるDOM操作の本質からはやや離れます。
﹁親方向への探索﹂はそもそもViewのモジュラリティを破壊するコードで、行儀が悪いコードだと思います。closest/sibling/next/prev 等を乱用したコードを想像してみてください。やっつけで書かれたjQueryで、Webエンジニアなら発狂したことはないですか?これらが標準機能として提供されない意図は、ライブラリ提供する側としては、理解できるでしょう。
本当に必要だったものは document.querySelector
結局、基本的にほとんどの人が必要としたのはdocument.q
uerySelctor
/document.querySelect
orAll
なんじゃないでしょうか。それに付随して頻出する操作は、 $.fn.css
や $.fn.attr
を対応するプロパティへ置き換えるだけで、これらはアクセッサが違うだけで、難しいとは聞いたことがありません。