近ごろDojo 1.3がリリースされ(リンク)、同時にDojoツールキットにjQuery(リンク)風の機能を導入するためのPlugDもリリースされた(リンク)。InfoQはSitePen社のCEOでDojoの共同作者でもあるDylan Schiemann氏に今度のリリースについて、そしてツールキットの進化やTIBCOのGeneral InterfaceがDojo Foundationに加わったことについて聞いた。
InfoQ:あなたにとって今回のリリースの目玉は何でしょうか。
一番目立ったものでいえばIE8とChromeの正式サポートです。Microsoftがおこなった数多くの変更による影響、特にDijit(Dojoのウィジットフレームワーク)への影響は深刻でした。ChromeもSafariとまったく同じ挙動をするわけではありません。そのIE8とChromeへの対応以外にも、ドキュメント(http://docs.dojocampus.org/ )は著しく改善され、安定性やパフォーマンスに関する何百もの改良、そしてディベロッパの生産性を高めることになるAPIの改善が挙げられます。他に私が素晴らしいと思うのが新しいDataChartで、リアルタイムにCometから得るデータも含むDojoのデータストアから、チャートを作成することがずっと簡単になるのは間違いありません。
InfoQ:Alex Russell氏(Dojoの共同作者)よると、標準的なDOM操作をおこなう他のツールキットに比べてDojoは2倍以上速い(リンク)ということですが、これについて教えてもらえますか。
AlexのTaskSpeed(ブラウザでのパフォーマンスを測定するDojoのツール)のアナウンスはを少しばかり早かったですが、膨れあがっていたDojoがいくつもの新機能を備えたにもかかわらず遅くならないどころか0.4の時のようになったのは、控え目に言っても大変嬉しいことです。ただDojoが一番速かった、あるいはそうでなかったとしても、その結果は完全には信頼できるものではありません。TaskSpeedもSlickSpeed(MooToolsの測定ツールでTaskSpeedはこれに似ている)も完璧と呼ぶにはまだまだのものですからね。
InfoQ:今回のリリースではjQueryの機能をDojoでも使えるようにするPlugDプラグイン(リンク)も一緒にリリースされましたね。Dojo自体も将来この方向に移行していくとお考えでしょうか。
おっしゃる通りです。jQueryのAPIはDOMへのアクセス・操作をする手段として広く受け入れられるようになったのですから。PlugDはDojoプロジェクトのリードであるPeter Higgins氏によって始められ、いくつかの理由によりサイドプロジェクトでプラグインとして取り組まれました。その理由のひとつは、プラグインという形でDojoに重要な機能を簡単に追加できることを示すためでした。別の理由は、Dojo CoreとDijitの機能が安定し今後の同系リリースでも互換性が保たれることをユーザに約束することにあります。このような理由からDojo Coreに導入する前にプラグインとしてこの機能を使えるようしたいと考えたのです。その機能性についてはDojo 1.4でさらに多くのことが見えるようになるだろうと期待しています。
InfoQ:Dojo 1.3では新しいCSSセレクタエンジンであるAcmeが加わりましたが、Sizzle(jQueryの作者John Resig氏が開発したCSSセレクタエンジン)(リンク)も透過的に使うことができますね。このように複数のJavaScriptフレームワーク間で共有できるコンポーネントは今後一般的なものになると思われますか?
AcmeはSizzleが発表される前にAlexによって始められました。私としては将来的にどこかの時点で、思想的に対立せずDojoのユーザをないがしろにしないかぎり、SizzleとAcmeが一つになってほしいと思っています。jQueryの共同作者John Resig氏はSizzleを各種ツールキットで使えるようにするためにDojo Foundationへかなり貢献してくれましたし、それが今後より有用なものになっていくことを信じています。今思いついたのですが、DOM操作もCSSクラス名についてのイディオムや名前を共通にする対象になりえるかもしれません。そうすれば複数のツールキットを使っても、ウィジットにテーマコンポーネントを組み込むのが簡単になるでしょう。
InfoQ:Dojoは0.4の頃から広く知られてきました。その頃からするといくつもの方面で進化していますが、今後数年の方向性についてはどうお考えでしょうか。
私は0.2のリリースがこのプロジェクトにとっての転換点だったと考えています。その時にIBM、AOL、Sun、その他の企業から関心を集めました。Dojo 0.4はOSCON 2006(O'Reilly主催のカンファレンス)で大きな話題となったのですが、水面下の危機を乗り越えるには完全に書き直しをおこなう必要もありました。これまでのリリースでは、それより前のリリースよりも多くのダウンロードがされてきましたし、これからもDojoのユーザから多くの意見を取り入れていきます。最近の分かりやすい例ではMozilla Bespinがあります。
今日Ajaxベースのアプリケーションを作る時にはDojo、jQuery、Ext、MooTools、YUIなどの中から適当なものを選びますが、Dojoは大規模あるいは先進的なアプリケーションの領域でかなりの採用がされてきました。ただより従来型のウェブサイトの領域ではjQueryとPrototypeに大きな差をつけられていますし、おそらくYUIやMoToolsの後塵も拝しているでしょう。
Ajaxをほんの少し散らした程度の標準的なウェブサイトはDojoのターゲットにはなってきませんでしたが、最新のパフォーマンス指標からはこれらのサイトにでも強力で多機能なオプションを提供できることが分かります。Dojoは従来型のウェブサイトにより適したものになるだけでなく、私たちはモバイル向けウェブアプリやサイト、ウィジットのツールキットでもずっと適したものになるよう取り組んでいます。
そして機能についてですが、私たちはユーザの声に耳を傾けることを続け、ユーザにとって一番の問題となる機能について取り組みを続けます。Dojo Gridはここ1年で大きな関心を集め利用されてきましたし、これからも完成に向けて関心を集めるでしょう。そしてユーザのリクエストに応じた機能を追加するためにグリッドを複合させることが素早くできるようにモジュール性を高めることも継続していきます。
つい最近はTIBCOのGeneral Interfaceも加わりました。Dojo Foundationがどういった役割を持つもので、これらのプロジェクトやコミュニティにどのような恩恵があるものなのか教えてもらえますか?
もともとこの財団はAlexと私によってDojo Toolkitの著作権をもつ団体として始められました。そのためDojoの著作権はAlexや私Dylanとなってないのです。私たちはApacheのようなメンバシップを持ちたいと考えていましたが、一番重要視したのはなるべく手間を少なくし、金銭や従来の財団の役割を引き受け素晴らしいコードに集中できるようにすることでした。
Dojo Foudationはサーバ運用や最低限の年間費用を寄付金から出しますが、各プロジェクトがより良いものになるようにコードへの貢献を注目させること、各プロジェクトが予算的に自立すること、各プロジェクトに高度なよる分散コントロールをおこなうこと、これらも何とかしないといけない課題です。プロジェクトに財団が課す制約は、完全にオープンソースなプロジェクトであること(Dojo Foundationのウェブサイトを参照)、コードを認められたライセンス(今のところBSD、AFL、Apache)で提供すること、これだけです。プロジェクトがDojo Foundationで受け入れられれば、サーバ運用のアシストやその他の便益が与えられます。もしDojo Foundationに加えたいプロジェクトがおありの方は、詳細について私にコンタクトしてください。
Dojoの最新版は直接ダウンロードするか(リンク)、Google Codeからロードして使う(リンク)ことができる。またDojoと連携するためのSpring Web Flow(Java)(リンク)、Dojango(Django/Python)(リンク)(DRails (Ruby/RoR))(リンク)、DRails(Ruby/Ruby on Rails)(リンク)、Tatami(Java/GWT)(リンク)、Zend(PHP)(リンク)、Dojomino(Domino Server)(リンク)などがある。