HTML5とEcmaScript 5は非常に強力なAPIを提供しており、これによって、Webとデスクトップの間のユーザ体験の違いは曖昧になってきている。このことで、多くの組織が、旧来のデスクトップアプローチではなく、Webテクノロジーを使ってアプリケーションを構築することを選択するようになってきている。このトレンドの進化を調べるために、InfoQはSitePenのCEOであり、Dojo Toolkitのの共同創始者であるDylan Schieman氏にインタビューを行い、Webプラットフォームの潜在能力について話しを聞いた。
InfoQ: こんにちは、Dylanさん。Webプラットフォームの構成要素としてあなたがお考えのテクノロジーの概要をお話いただけませんか。
Dylan氏: Dioさん、こんにちは。私たちにコンタクトいただきありがとうございます。Webプラットフォームは、ここ数年、その能力と機能を格段に向上させており、アプリケーションを構築するのに必要な機能すべてを網羅するために取り組みを行ってきました。HTML(5)、CSS(3)、JavaScript、ベクタグラフィックス(CanvasとSVG)、WebSockets/Comet、Local Storage/Offline、Data、WebGLやその他多くのものを基盤としており、時折、すこし取っつきにくく感じることがあります。特にパフォーマンスと、ブラウザからモバイル端末、その他多くのプラットフォームまで含むプラットフォームの多様性を考えるときにその傾向は顕著になります。
Dojoは、創設当時と同じ目標を今日でももっています。ブラウザ実装のギャップを埋める、開発者の生産性を高める、効率的で技術的にすぐれたWebアプリケーションを構築することを手助けするなどです。何年にもわたって進化を続けて、上記の機能すべてをカバーするようになり、さらに多くの機能をもつようになりました。我々はCommonJS AMDパッケージを効率的に管理するツール群を進化させてきており、その上に少数のパッケージを構築しています。バージョン1.6で、数多くの改善や変更を行っており、2011年には、信じられないような計画を持っています。私たちの歴史のなかで、格段に野望に満ちた年となります。
InfoQ: 現在、実装されており、サポートされているこれらの機能に関してどのようにお考えですか。どの重要なAPIが既に利用可能であり、どの新しいテクノロジに関しては、利用できるようになるまでまだ待たなければならないのでしょうか。
Dylan氏: 残念なことにHTML5によって、機能や実現性に以前より大きなギャップが生まれ、モバイルによって、機能と実現性にばらばらの展望が生まれました。面白いことに、標準化されたものだけを利用しようという考え方から、ターゲットとするプラットフォームで利用可能なものは何でも利用するという考え方に変わってきています。例えば、WebGLやネイティブ・バードウェア・アクセラレーションを利用していたとすると、十分な速度で実行できないにせよ、それらをサポートしていないプラットフォームに対してもサポートを提供することが必要なのです。その結果として、数個の問題のみを扱う小さなツールキットが信じられない数存在するのです。例えば、geolocationです。表面的には、とても簡単に扱えるように見えますが、APIに一貫性が欠けており、GoogleのIPベースAPIのようなものををバックアッププランとして利用することができることは素晴らしいことです。私どもは、IndexedDBに対してとても興奮しています。IndexedDB自体は、現時点で様々なブラウザではサポートされていないものの、単純な形式でデータをロードするためのDojo 1.6のDojo StoreやWidgetやテンプレートへのデータ接続、さらにPersevereなどのサーバーサイドJavaScript実装のアプローチでは、IndexedDBと同じコンセプトを利用しました。私たちが今あるところまで進化してきて、今も人々がすごいスピードで前にすすんでいるのは驚くべきことです。
例えば、Game Closureは、最新のJavaScriptとHTML5のゲームエンジンであり、リアルタイムのComet/WebSocketを稼働の基盤としています。一年前には、まじめに考えることすら難しかったのですが、今やデスクトップであれモバイルであれブラウザが現実的なゲームプラットフォームとしての役割を果たしています。
InfoQ: 旧来のデスクトップ技術と比較して、Webプラットフォームの主要なメリットはどういったものでしょうか。
Dylan氏: とっつきやすい一連の開発ツールを、多くの場面で利用することができます。極めて単純ですが、JavaScript、HTML、CSSは大半の開発者にとって、とっつきやすいものであり、今やおおむねどこで動くようになっています。さらにいうと、Write once, run everywhereではなく、JavaScriptの禅を手に入れて、どこでも生産的になれるようになるのです。これは、より現実的なゴールです。サーバーサイドではNode.jsが立ち上がろうとしていますし、モバイルWebやHTML5への関心など、さまざまな動きをみることができます。このようなことから、私は主要なメリットは開発者の効率、生産性と普遍化だと考えています。配布とURL閲覧の簡単さという歴史的な利点に加えて、今やインストールアプリケーションを作りたいと思ったときには、デスクトップであれモバイルであれ、Webアプリケーションをラッピングしてくれるツールが数多く存在します。
InfoQ: どのような種類のアプリケーションがWebテクノロジーによる実装に向いているのでしょうか。またどのテクノロジーがそれにあてはまりますか。Dojo toolkitは、それらと組み合わせて利用できますか。
Dylan氏: 以前、私は激しいグラフィックスを利用するゲームや大量のビジネスロジックを伴うもの以外すべてと話していました。今は、Webで不可能なものが存在するかどうかわかりません。Dojoは、JavaScriptをプログラミング言語として利用するアプリケーション分野のすべてを手助けします。Dojoの一般的な利用例としては、コミュニケーション・スイート(電子メール、カレンダーなど)、リアルタイム・アプリケーション、ベクター・グラフィクスを多用するプログラム(リアルタイム・ホワイトボード、お絵かき、グラフ表示など)、企業向けアプリケーション、モバイルアプリケーションなどがあげられます。Dojoを使って実装したゲームの例を見たこともあります。もはや、何がきても驚きません。
InfoQ: Webテクノロジーの要のJavaScriptは、C/C++、Javaなどのデスクトップ言語と比較して優れているのでしょうか。現在利用可能なフレームワークやツールに関して、どのようにお考えですか?
Dylan氏: キャッチアップしていくのがとても難しいぐらい変化のスピードが速いですし、既存の環境と同じぐらい易しくテストを行うのもいまだに難しいです。Alex氏が最近話したように、5年前に格闘していたことと同じ問題に、様々な意味で今も取り組んでいるのです。プログラミング言語という点に限れば、10年以上批判の的だったシンタックスの問題は積極的に改善されてきています。そして、おそらく初めて、ブラウザベンダだけでなくWebアプリケーションを開発する人々もまじめに関わりをもったのです。JavaScriptは言語として、とても柔軟性があり動的であり、そして、どこでも利用できます。これが理由でJavaScriptが勝利をおさめようとしているのです。すぐれた言語であるかどうかは、真に重要な点ではありません。フレームワークやツールキットがかつて無いほど急速に発展してきています。ここ数年JavaScriptを無視してきたのであれば、数週間をつかって、再度見直してみるべきタイミングです。劇的に変化していることに驚くことでしょう。
InfoQ: Webテクノロジーを使って、デスクトップ・ソリューションを開発しようとしている開発者にとっての最大の関心事はどんなものでしょうか。セキュリティに関してはいかがでしょうか。
Dylan氏: 今日の大半のセキュリティ問題は、ブラウザもしくはサーバサイドのものであり、それはWebアプリケーションにあまり権限を与えるべきでないという前提に起因します。ここ数年間で起こった主要なセキュリティ問題が、数えるほどしかなく、それらの大半は、即座に封じ込められたことに、私は驚きを感じます。私は、Webプラットフォームがデスクトッププラットフォームに比べてセキュアでないなどとは全く考えていません。なぜなら感染の経路がより少ないと考えるからです。そうはいっても、最近の進化のスピードの向上ぐあいからすると、新たな種類の潜在的な問題に遭遇するかもしれません。
InfoQ: 現在のデスクトップ・ソリューションの現実的な代替となるために、Webテクノロジーに現在欠けているものがあるのでしょうか。
Dylan氏: 現時点で未完了ものが即座に完了し、すばらしい成果を上げたとしても、取り組まなければならない問題はまだあると思います。しかし、この議論はおもしろいものにはならないでしょう。これまでのように急速に発展していくこと、すばらしいパフォーマンスのアプリケーションをずっと簡単に作れるようになることに焦点をあてていくことが必要であると思います。したがって、過去5年間に登場して、現在、制限のあるアルファやベータ品質の機能やアプローチに磨きをかけて完成させることが、より重要だと考えます。
InfoQ: これらのAPIやテクノロジーは近い将来にどのように成長していくと考えられていますか?
Dylan氏: 中長期的にオープンWebに逆張りしないようにおすすめする以外の点では、私は将来を予想するのが苦手なのです。おそらく、それらは急成長し、Webで驚くほど生産的になるためにまさに必要なものを開発者に提供する点で、ものすごく優れたものになると思います。
HTML5やJavaScript、Dojoのより詳細な情報をInfoQでは提供している。