バニラJavaScriptを選択する

2014年2月19日

jQueryを用いて書いたコードと同等な働きをするコードをjQuery抜きで書くとどのようになるのかを示したWebサイト「You Might Not Need jQuery」(jQueryは必要ないかも)が先日話題になりました(はてなブックマークも180以上付いています)。

ちょうどこのWebサイトを話題にした記事「Choosing Vanilla JavaScript」が、Webデザイナ向けに情報発信をしている著名なWebサイト、A List Apartに掲載されていました。

Vanilla JavaScriptとは、要するに何もトッピングされていないバニラアイスクリームのように、jQueryなどのライブラリを使わない素のJavaScriptのことを示しています。

この記事は何でもjQueryを使うのではなく、正しい選択をしようというテーマの内容になっており、参考になりそうだったので翻訳しました(A List Apartの翻訳は許可されています)。

Choosing Vanilla JavaScript ∙ An A List Apart Blog Post

Choosing Vanilla JavaScript

著者:ANTHONY COLANGELO

私を含む世の中の多くのJavaScriptデベロッパーはjQueryが好きだ。それは優れたツールがそうであるように、とても役に立つし、なにか大きなWebアプリケーションで多くのフロントエンドコードを開発するときに、jQueryはとてもパワフルな役割を果たしてくれる。

けれども、比較的小規模から中規模な開発を行おうとするときには、バニラなJavaScriptを使うことをまじめに検討すべきだ。ときにそれはまるで古い手仕事のように思われるかも知れないけれども。

You Might Not Need jQuery(jQueryは必要ないかも)というWebサイトは、こうした場面に対する素晴らしい情報源だ。jQueryを使ったコードに対応するバニラなJavaScriptコードを教えてくれる。これによってjQueryがどんな動作なのかも、直接的に知ることができるだろう。

それぞれのコードを並べてみることは、どちらの立場にとっても有用だ(「jQueryは必要ないかも」であって「jQueryは必要ない」ではない点に注意)。要素を選択するだけなら、jQueryを使うかバニラなJavaScriptを使うかは、アニメーションのコードほど大きな違いがでることはない。だからもし、あなたが要素を選択することを多用しているのなら、バニラなJavaScriptを採用すればよい。もしもあなたがアニメーションを多用しているのであれば、jQueryは正しい選択だ。

歴史的に見て、jQueryは優れたツールだった。あらゆるクロスブラウザの問題を解決してくれたからだ。しかしYou Might Not Need jQueryの作者は次のように説明している。

Some developers believe that jQuery is protecting us from a great demon of browser incompatibility when, in truth, post-IE8, browsers are pretty easy to deal with on their own.

jQueryはブラウザ間の非互換性という大きな怪物から身を守るものだと、信じているデベロッパーは一定数いるけれども、実際にはIE8より後のブラウザでは、そうした問題は以前より扱いやすくなっている。

もしもjQueryを使わないのであれば、自分でブラウザの非互換性を解決するか、あるいはプログレッシブエンハンスドのユーザー体験を構築するかを選ぶことができる。いずれにせよ、利用者の稼働環境としてJavaScriptを要求するべきではないけれど。

バニラなJavaScriptを書く工数(およびjQueryをロードしないことによるリクエストやデータの減少)と、いくつかのブラウザにおいて完全なユーザー体験を保証しかねる点を秤にかけ、ほかのあらゆる仕事と同様に、あなたやチームや何を作るかによって正しい選択をしよう。

著者:Anthony Colangelo
Anthony ColangeloはフィラデルフィアのHappy Cogで働くデベロッパーで、同社のハイブリッドフロントアンドバックエンドデベロッパーであり、レスポンシブデザインからオブジェクト指向プログラミングまでのどの技術も好きである。彼とはTwitterで開発について対話できる。

あわせて読みたい

JavaScript Web技術 jQuery




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本