BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ アーティクル インタビュー:Didier Girard氏に聞く、GWTとVoltaはWeb用のGCCなのだろうか?

インタビュー:Didier Girard氏に聞く、GWTとVoltaはWeb用のGCCなのだろうか?

ブックマーク

Microsoft社は先月(source)、Volta(source)のプレビュー版をリリースした(source)。この新しい技術とアーキテクチャ・ファクタリングのコンセプトに対して、たくさんの人々が意見を述べている。VoltaとGWT(Google Web Toolkit)(サイト・英語)とを比較した(source)人たち(source)もいた。JavaScriptの開発環境は良くなっているが、James McKay氏はこうした新しい抽象化には納得していない(source)。ChronoscopeプロジェクトのRay氏は、GWTとVoltaの起動にかかる時間(source)を比較している。InfoQではDidier Girard氏に話を聞いた。彼はパリに拠点を置くコンサルティング会社、SFEIR社でCTO(最高技術責任者)を務めている。Didier氏のGWT に関するブログはOnGWT.com(サイト)で読むことができる。

InfoQ: GWTが発表されて2年ほどたちます。あなたは当初からこの技術を追いかけ利用されていますが、現在はどのような状況でしょうか?

Didier: GWTは、リッチ・インターネット・アプリケーション(Rich Internet Applications:RIA)の開発を可能にする技術です。この分野には2種類のフレームワークがあります。1つ目のタイプのフレームワークは、 GWTのように、従来の情報システムを構築するためのものであるのに対し、2つ目のタイプはマルチメディア・アプリケーション(Flash、 SilverLight、…)に重点を置いています。 

GWTを使えば、もはやページナビゲーションのパラダイムを使うことはありません。これは、単独のページで作られたアプリケーション、もっと正確に言うと、たった一つのURLでアクセスされる完全なアプリケーションなのです。このタイプのフレームワークの目標のひとつは、デプロイ不要でブラウザ間の互換性があるという優位性を備えた、デスクトップのようなユーザ・エクスペリエンスを提供することです。

現在、SFEIRではGWTをベースにした5つのアプリケーションを開発中で、すでに稼動中のものもいくつかあります。私達は最近、GWTを使ってエクストラネットを開発しました。これは顧客の組織のいたるところ、CEOにまで温かい歓迎を受けましたが、まさにユーザ・エクスペリエンスの向上によるものでしょう。RIAとGWTは特に、ユーザ・エクスペリエンスの点でも開発のエクスペリエンスの点でも、大変革なのです。

通常、私達はWindowsのプラットフォーム上で開発を行い、Internet ExplorerやFirefoxの上で広範囲にわたる品質保証を行います。さらに我々は、OperaとSafariでも検証しています。

InfoQ: この技術がWebアプリケーションのアーキテクチャに与える影響にはどのようなものがありますか?特に、MVCパターンの適用性について聞かせてください。

Didier:  GWT はとても簡単に使えるので、Javaの開発者であれば新しいことを覚えなくてもWebアプリケーションを開発することができます。これは、VBと非常によく似たアプローチです。Javaでのユーザ・インタフェースの作り方さえ知っていれば、開発者はGWTを使うことができます。

MVC の観点で言うと、GWTはビューであり、モデルやコントローラにあたるものはありません。基本的なアプリケーションの場合、ビューで十分なのです。アプリケーションがもっと複雑な場合は、従来のMVCのアプローチを使ったほうが良いでしょう。
私たちは実際、MVCパターンのバリエーションである階層 MVC(Hierarchical MVC:HMVC)(source)パターンを使っています。このバリエーションでは、それぞれのグラフィカルなコンポーネント一つ一つがMVCのタプルとなっています。状態変化のブロードキャストにはイベントを使い、グラフィカルなコンポーネントの「振る舞い」を作成します。私たちは、このパターンの実装を簡単にするためにフレームワーク(GDF)(サイト・英語)を作りました。Google Codeで入手することができます。GDFは、参考として、あるいはむしろベストプラクティスの実例として、そして開発者のミスを避けるために抑制と均衡を取り入れた従来のフレームワークとして使用するべきです。

InfoQ: Voltaがリリースされてから、たびたびGWTと比較されてきましたよね?そのことについてはどう思われますか?

Didier: 現在、Voltaは概念の実証に過ぎませんが、これによってマイクロソフト社が製品をリリースする際の今後の方向性を知ることができます。VoltaのビジョンはGWTをはるかに凌ぐものです。GWTはJavaをJavaScirptに翻訳するコンパイラです。そもそも、Volta自体はプログラミング言語に依存していません。開発者は推奨のプログラミング言語から直接JavaScriptを生成することができます。しかし、実際はVoltaはアプリケーションの開発を目的としていて、コードをどこで実行するかは後から決めるのです。これは非常に野心的なことです。

Voltaの一番の能力は本当に便利であること、二番目は、私の意見では、理論的だということです。今のところ、これが実際に稼動するかどうかがわかるような十分なデータはありません。

例を挙げて私の意見を説明しましょう。JavaScriptにはlong型はありません。たいていはfloatに対応させますが、精度があまりよくありません。そのため、アーキテクチャ・ファクタリングは難しいのです。選択肢があるというのは非常に興味深いことです。しかし、あなたの選択したもが効果的なものであるように保つには、こうした問題に積極的でなくてはなりません。事実でありそして問題なのは、言語を直接他の言語に射影することはできないということです。言語から言語へのコンパイルは、実際は投影です。その過程で、セマンティクスを失っているのです。

InfoQ: GWTやVoltaのような技術によって、今後はどのような方向に進んでいくのでしょうか?

Didier: 現在のトレンドは、開発言語と実行言語の分離です。このことを理解することは、とても重要なことです。JavaScriptの開発者の中には、この提案に少々反発している人たちもいます。しかし、JavaScriptはいろいろなことができる言語ですが、だからこそマスターするのは難しく、特に4つのブラウザの全てについてマスターするのは大変です。そこに到達するためには、異なる言語から始めなければなりません。私はブラウザをプロセッサとして考えるのが本当に好きなのですが、GWTやVoltaによって、このプロセッサ用に最適化されたコードを生成することができるようになります。しかし、開発者は通常、立ち返ってこのコードを最適化する必要はありません。これらのコンパイラが複雑なWebアプリケーションを効率的に構築するのに役立つのはこうした理由からです。私たちは、GWTやVoltaをWeb用のGCCとして考えるべきです。そして、JavaScriptを一般的なWeb実行環境と考え、プログラミング言語であることは忘れるようにするべきなのです。

Google 自身はブラウザを「プラットフォーム」として位置づけています。現在のブラウザは不完全であり、だからGoogleはローカルデータベースやワーカプール、ローカルサーバをもつGearsを開発しているのです。これは第一段階に過ぎません。第二段階は、ブラウザとサービスとの間の相互作用を定義することでしょう。Googleは今、キャッシュとサービスのトランザクションの相互作用のような、同期化の問題を扱うためにAPIを開発しています。コネクションが時々切断されるのは日常よくあることであり、ネットワークのレイテンシや帯域幅の問題よりも頻繁に起きるでしょう。たとえば、iPhoneはいつもつながっているわけではありません。Googleはこの問題を解決しようとしています。Gearsには、複数ファイルのアップロードAPIや暗号化 API、ロギングAPI、メッセージングAPI、ロケーションAPI、デスクトップ・ショートカットAPI、画像処理APIなどの、たくさんのAPIが出てくるでしょう(詳しくはDion Almaer氏のブログ(source)を参照)。Gearsの背後にあるビジョンは確かに、PCWorld誌主催の「Most Innovative Product of the Year」(source)を受賞した理由なのです。

RIA アーキテクチャでは、もっぱら離れたところにあるサービスに頼ったものがほとんどで、アプリケーション自体のURLには無関係なこともしばしばあります。プログラミングモデルでは、サービスのプロキシはローカルです。実際、その接続の特異性を管理することが、アーキテクチャの役割です。これこそ RIAフレームワークが目標として進めていることであり、プラットフォームとしてのブラウザの役割を強固にしています。

これはリッチ・メディアを目標とする2つめのタイプのフレームワークについてはあまりあてはまらないことで、ここではビューや性能、特にストリーミングに重点が置かれています。実際に、リッチ・メディア・アクセス・ポイントの市場が現れつつあります。例えば、goodOS(source) はWeb指向のLinux をリリースしたばかりです。いくつかのネットワーク・アクセスポイントはまだコンテンツを作り続け、アクセスという点でもっと堅牢な性能を要求するでしょう。しかし、新しいタイプのコンテンツ(やアプリケーション)のアクセスポイントの急増も知らなければなりません。

InfoQ: 開発者やアーキテクトに向けて、アドバイスをお願いします。

Didier: Java開発者の方は、GWTを試してみてください。きっとGWTを採用するでしょう。そして.NETの開発者の方は、Voltaに注目していてください。Voltaは確実にマイクロソフト社のWeb戦略の要となるものです。

原文はこちらです:http://www.infoq.com/articles/didier-girard-gwt-volta

この記事に星をつける

おすすめ度
スタイル

BT