InfoQ

News

リリースされたGWT-Ext 2.0についてSanjiv Jivan氏のインタビュー

作者 R.J. Lorimer, 翻訳者 八角研究所 投稿日 2008年3月10日 午後12時38分

コミュニティ
Java
トピック
RIA
タグ
GWT
2月6日にGWT-Ext 2.0(サイト・英語)がリリースされた。GWT-Extは、ドラッグアンドドロップ操作可能なツリー、ページング及びソート可能なグリッド、バリデーションフォーム、タブパネル等の様々なコントロールを提供しているGoogle Web Toolkit (GWT)(サイト・英語) のためのウィジェットライブラリである。GWT-Extで利用可能なコントロールはExtJSというJavascriptのウィジェットライブラリ(サイト・英語)が元になっている。GWT-Ext 2.0(source)はGWT 1.4(source)に最近リリースされたExtJS 2.0を統合したものだ。(ExtJS 2.0について詳細はInfoQのインタビュー記事「ExtJSのクリエータ、Jack Slocumが今回のリリース2.0について語る(参考記事・英語)」で読むことができる。)

下記がGWT-Ext 2.0でのおもな変更点である。
  • パフォーマンスの改善
  •  コンポーネントモデルの統合
  • 新しいレイアウトマネジメントAPIの追加
  •  Beanに適したAPIの追加
  •  いくつかの新しいウィジェットの追加
2.0のリリースノートはGWT-Extのウェブサイト(サイト・英語)で確認できる。

InfoQ.com は GWT-Extのクリエータであり主要開発者であるSanjiv Jivan氏とGWT-Ext 2.0に関するインタビューをチャットで行うチャンスに恵まれた。

2.0における変更点をあなた自身の言葉で簡潔に説明してほしい。
まず、Jack氏とExt 2.0の開発で素晴らしい仕事を行ったExtチームに賛辞を送りたい。GWT-Ext 2.0での多くの改良点はExt 2.0の機能強化とアーキテクチャの改良のおかげであるといってもいい。

今回のバージョンにおける最も大きなアーキテクチャ的な改良は、Componentモデルの統合とLayoutマネージメントの改良だ。すべてのウィジェットは一貫性のある階層構造となり、また、生成・レンダリング・破棄といったライフサイクルを持つ基底のComponentクラスのサブクラスとなっている。今回のバージョンは内部のComponentにのみ注意を払うContainerのレスポンシビリティと、割り当てられたLayoutManager によってハンドリングされるContainer内のComponentのレイアウトを分離させた構造となっている。これにより複雑なレイアウトを作成するのも容易になった。

また、GWT-Ext 2.0はBeanに適した扱いやすく、またGWT DesignerのようなUIビルダーと統合しやすいAPIを持つ。新しいすぐれた特徴として、グリッドのグルーピング、アコーディオン、プログレスバー、グリッドとツリー間のドラッグ・アンド・ドロップ等の機能があげられる。また、今回のリリースのハイライトの一つは、新しく改良された Showcaseデモがあることだ。 (http://www.gwt-ext.com/demo) 多くのグラフィカルなサンプルをそれらのソースと一緒に確認することができる。私はサンプルから学ぶことは非常に効果的であると強く信じており、このShowcaseデモはユーザの開発の助けとなることを望んでいる。

GWT-Ext 2.0のライセンスについても触れておきたい。FSFによると、GWTライブラリのコンテキストにおいてLGPLは、作者が明記しないかぎり事実上GPL として解釈されるということであった。私は、GWT-Extのライセンスページ (http://gwt-ext.com/license/) に明記し、それによりライセンス違反することなく、商用プロジェクトで GWT-Extを使用できるようにした。
GWT-Ext in 2.0のパフォーマンスをどのように改善したのか説明してほしい。開発者はどういったところでパフォーマンスの違いを実感できるか?
今回のバージョンでは大幅にパフォーマンスが改善されたわけだが、それはExt 2.0のパフォーマンスが改善されたおかげである。Ext 2.0のサイトでどのような改良がなされたかを確認することができるが、GWT-Extに関係する重要なパフォーマンスの改善点についてここでいくつか挙げておこう。
  • すべてのコンポーネント、ウィジェットは現在レイジーレンダリングをサポートしている。これはどういうことかというと、コンポーネントやウィジェットはいかなるオーバーヘッドもなくインスタンス化することができ、それらの描画処理はDOMに追加される必要のあるタイミングで遅れて実行される。これにより、特に大規模なアプリケーションにとっては、大幅なパフォーマンスの改善をもたらすことができる。
  • 適切なメモリ管理を行うため、フレームワークがすべてのコンポーネントの生成から破棄されるまでのライフサイクルを管理する。フォームやグリッド(テーブル)は特に改善され、ユーザはこれらのウィジェットを扱う際にその恩恵を受けるができる。
  • GWT-Ext 2.0では、ウィジェットの設定に分離された"config"クラスを使わなくてよい。Componentの属性を設定するためには、Component のsetterを単に呼び出せば良い。これはAPIを整理するだけではなく、コーディング量を減らすことにもつながる。
  • 最後に、百聞は一見にしかず。何人かのユーザはすでに、GWT-Ext 2.0にアップデートすることで自分たちのアプリケーションがどれだけ反応がよく、素晴らしいものになるかコメントしている。そして、GWT-Ext 2.0のShowcaseデモのサンプルを実行させれば、パフォーマンスが改善されたことを実感できるはずだ。
GWT-Ext 0.9.3の利用者はGWT-Ext 2.0にアップグレードするとどういった問題に直面するか?
レイアウトマネジメントAPIは変更されたが、ほとんどのユーザはこの変更を直観的で且つ複雑なレイアウトを素早く簡単に扱うことができる新しいAPIとして受け入れてくれている。分離されたconfigクラスはComponentの設定に必要はなく、Componentの setterを呼び出すことで設定を行うことができるようになった。アップグレードに際しては、数時間の単調な作業が必要となる問題があるにはあるが、これはそんなに頭を悩ませるような作業ではない。そして、ユーザはこの変更も再び受け入れてくれた。実際、Javabeanのアクセッサを分離された configクラスの代わりに使用するという変更は、GWT-Ext 0.9のユーザからのフィードバックに影響されたものだった。

今まで通りJavaのコンパイラを使用することができ、そしてコンパイラでコンパイルすることで非互換性がないこともわかっている。さらに、ユーザはアップグレードに関する質問をGWT-Extフォーラムで投稿することができる。アップグレードに要する時間はユーザによって異なるが、あるユーザは1万行のコードを持つアプリケーションのアップグレードを2日間で済ませたという報告をしている。ユーザはAPIが安定して動作することを期待していい。
2.0がリリースされた後にGWT-Extの開発はどうなるのか?次は何をするのか?
GWT 1.5はJavaとJavascriptの境界を越えたパフォーマンスの改善が行われており、その結果GWT-Extにも大幅なパフォーマンス改善をもたらすことになる。私はこの最適化されたGWT 1.5を利用するために、必要な(内部的な)変更を行っている。

 私はまたwikiドキュメントやユーザの生産性を向上させるためのFAQやチュートリアルをまとめ上げようと考えている。現在行っている機能の強化に加えて、ユーザの開発の助けとなるようなことにも注力して行きたいと考えている。成功するライブラリはユーザサポートが充実しているものだ。
GWT-ExtはLGPL 3.0ライセンス(サイト・英語)で配布されている。コミュニティのフォーラム、Wikiドキュメント、ライブラリのダウンロード、そしてさらに詳細なライセンスに関する情報の確認はGWT-Extのホームページ(サイト・英語)で行うことができる。

原文はこちらです:http://www.infoq.com/news/2008/02/gwt-ext-2
ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

Linda Rising氏による「誰を信頼しますか?」

Agile2008の3日目、8/6(水)午前中の、Linda Risingによるセッションです。セッションの冒頭、Linda Risingはとてもゆったりとしたきれいな、わかりやすい英語で話し始めました。

Googleの分散処理技術(マルレク2006 第1回より)

Web2.0 に対する関心は、引き続き高いものがあります。 ただ、その関心は、新しいビジネス・モデルと、プログラミング・スタイルの二つの分野に集中しているように思えます。 今回のセミナーでは、Google のサービスの基礎である分散処理技術に注目します。

Jean Tabaka氏による「Collaboration Explained--真のアジャイルチームのためのファシリテーションツール」

Jean Tabaka氏の書いた書籍では、会議などのチーム活動において、ファシリテーションの手法とツールについて具体的かつ実践的に説明しています。8/8(金)、Agile2008の最終日の朝のセッションでは、Jean Tabaka氏自身が本の内容をベースとしたセッションを行いました。

Hubert Smits氏による「ゲーム・デザイン・ワークショップ」

Agile2008の4日目となる8/6(木)の8:30から、Hubert Smits氏による「ゲーム・デザイン・ワークショップ」がおこなわれました。ゲームと言っても単なる遊びではなく、「フレームゲーム」と呼ばれる、グループでの情報収集や意志決定、また教育やトレーニングの教材として使えるいろいろなゲームです。

スケーラビリティに関するベストプラクティス:eBayからの教訓

eBayが日々挑んでいる主要なアーキテクチャの勢力は、スケーラビリティです。これはアーキテクチャや設計に関するあらゆる意思決定を特徴づけたり、駆り立てたりします。

インタビュー: Emmanuel Bernard氏にBean Validation仕様について聞く

Bean Validationフレームワークの初期ドラフトに関する以前の記事に続き、InfoQは専門家グループが求めているコミュニティの関与と提案について理解を深めるため、Emmanuel Bernard氏と対談しました。

ポーカーに学ぶ、ソフトウェア開発のレッスン

ポーカーは他のトピックにも広く適用できるような数少ない教えを私にもたらしてくれたと信じています。実際私はソフトウェアを開発すればするほど、これら二つの仕事は非常に似ていると言う確信の度合いを深めています。

InfoQがBPEL4PEOPLEの代表と対談

恒例の「バーチャルパネルセッション」で、InfoQは新しいOASIS BPEL4People技術委員会の代表と対談をし、この作業が何故必要であるかについて彼らのフィードバックを得る機会を得ました。