クライアントサイドにおけるウェブ開発の場面で Ajax が当たり前のように用いられるようになり、「どの JavaScript/Ajax フレームワークが最高か」という問いかけをよく耳にするようになった。Glenn Vanderburg 氏が記事の中で Prototype(参考記事リンク) と jQuery (参考記事)を比較すると、業界のエキスパートである Douglas Crockford 氏と Dion Almaer 氏からさまざまなレスポンスが返ってきた。
Glenn Vanderburg 氏は自身がプロとして JavaScript をつかった経験から語り始め、彼がどういう事情で両方のフレームワークをつかって作業するに至ったかを説明する(リンク)。
Rails をつかった開発を経験した多くのプログラマと同じく、わたしは JavaScript ライブラリである Prototype(リンク) に強い親しみを抱くようになった。それが Rails に組み込まれていることはさておくとしても、わたしにとって Prototype は自然な選択だった。わたしは Prototype をつかった作業を始める以前から JavaScript には精通していたし(リンク) (リンク) (参考記事・英語)、Prototype が JavaScript (リンク) の弱点のいくつかを克服してくれたことを非常に嬉しく思った。加えて、わたしはすでに数年間 Ruby をつかってプログラムをしていたので、明らかに Ruby からインスピレーションを得ている Prototype の哲学は非常に自然に思えた。
しかし、そんな中、わたしは jQuery を支持する声が日増しに強くなっていくのを聞いていた。わたしは jQuery (リンク)をざっと概観して感銘は受けたものの、Prototype から乗り換える気になるような要素は何もなかった。しかし jQuery を支持する声は増していき、わたしが尊敬する人々からも聞こえてくるようになった。その中には、ここ Relevance に勤めるわたしの同僚も何人かいた(リンク) (リンク) (リンク) (リンク) 。
わたしは現在、jQuery をつかった二つのプロジェクトにたくさんの時間を費やしている。何人かの経験豊富な jQuery ユーザといっしょに仕事をし、わたしの jQuery に関する知識や、jQuery から得られる安らぎは飛躍的に増加した。作業で発生する JavaScript タスクは、シンプルなものから複雑なものまであり、適度な多様性をもっていたので、わたしは jQuery の魅力を楽しみ、どのように応用利用できるのかを知る機会をもつことができた。
彼はひきつづき、両フレームワークの長所と短所を詳細に並べるが、彼の意見は Prototype を支持するほうに傾いている。
これらをもって Prototype が間違いなく jQuery よりすぐれていると言えるとは考えていない。jQuery は確かによくなった。そのデザインは基本的に制限されない(さらに言えば、わたしが jQuery に欠けていると考えている機能の多くはプラグインとして利用できる)。jQuery API のかかえる欠陥のいくつかは互換性を維持したまま修正することができないのは残念だが、将来のバージョンでは互換性を捨てて修正する選択肢もあるかもしれない。
だが、少なくとも Prototype が引けをとることはない。わたしや他の多くの人たちにとって、最適な JavaScript ライブラリはやはり Prototype だ。
彼の分析を受けて、Yahoo のシニア JavaScript アーキテクトであり JSON (参考記事リンク)産みの親でもある Douglas Crockford 氏は jQuery 擁護にまわる(リンク)。
わたしは Glenn 氏の議論には最後まで説得力を感じなかったが、何人かのコメント発言者は、jQuery に関して無知なままであることに気分よくしていることができると聞いて嬉しかったようだ。後発のライブラリである jQuery には Prototype の試みから学べるというメリットがあり、非常に表現力に富んだプログラミングモデルを考え出した。けれど、誤りはあり、jQuery の突然の人気は、それらの誤りを修正することを不可能にしているように見える。jQuery コミュニティはそれらの問題を許すだろうが、Glenn 氏は許さないようだ。John Resig 氏は頭のよい人物だし、それらの問題を修正できない期間に酷評を受けることにフラストレーションを感じているのでは、とわたしは考えている。彼は今たぶん Brendan 氏の気持ちがわかったのではないか。
Mozilla の Dion Almaer 氏は異なる意見で、Prototype が自分の嗜好に近いことに気付いている(リンク)。
最近、現実の文脈(例えば、チームにおけるスキルやプロジェクトが行うこと)抜きで考えることがある。
- 動的なウェブサイトを作るにあたって jQuery はすばらしいライブラリである。簡単で、エレガントで、うつくしい。わたしがリッチなサイトを構築するデザイナーだったら、かならず利用するだろう。
- Dojo は多くの機能が必要で大量の JavaScript を書かないといけない大規模なアプリケーションの構築に有効だ。必要とするものはすべて Dojo が提供してくれる。しかし、これは Dojo が小さな差異とで利用できないことを意味しない。新しいコアは小さく、高速で、すぐれている。
Prototype は、わたしにとって、これら二つの世界の中間にフィットするものだ。学ぶのが苦にならない程度に小さく、自分でたくさんのコードを書くハメにならない程度に大きい。
もちろん、Dion 氏が指摘するとおり、この議論は数多く存在する他のすぐれたフレームワークやライブラリやツール( Dojo(参考記事リンク), YUI(リンク), GWT(リンク),MooTools(リンク), ExtJS(リンク), SproutCore (リンク)など )のことを考慮していない。
あなたの考える最高の Ajax フレームワークはどれだろうか?
原文はこちらです:http://www.infoq.com/news/2009/01/prototype-vs-jquery