8月22日、渋谷テクニカルナイトの特別イベントとして、日本アイ・ビー・エムとGrailsコード・リーディングの共催イベント「Groovy コンファレンス 2008」(協賛: サン・マイクロシステムズ、CIJ、ニューキャスト、デライトテクノロジーズ、メタボリックス)が開催された。

Groovyとは、Javaに対して文法上の簡潔さと実行時の柔軟性を付加した動的オブジェクト指向言語。最近はスクリプト言語としても活躍の場を広げつつある。

同言語は、その名前にも表れているとおり、Rubyにインスパイアされて開発が開始された。Rubyと比較すると、Java仮想マシン(JavaVM)上で動き、Javaとほぼ完全な互換性を持つという点が特徴的だ。

今回のイベントは、もともと「Grails(※) コード・リーディング」(ほぼ月一回のペースで開催している、Grailsのコードを読む勉強会、およびそのコミュニティ)の結成一周年を記念した「Grails Demo 2008」として企画されただけあり、当日は僅か2時間強の間にGroovyを用いた開発事例が12本紹介されるという、内容の濃いコンファレンスとなった。各セッションは、約10分間でデモを披露しながら本質のみを語るという、ライトニング・トークスに似た形式で開催。100名近いコンファレンス参加者に強烈な印象を与えたようだ。

※ GroovyとJava上で動作するWeb統合フレームワーク(http://grails.org/)。GrailsとGroovyの関係はRuby on RailsとRubyの関係に似ているが、Grailsの成果がGroovyに取り込まれるなど、より緊密な関係にある。Railsとは異なるアーキテクチャを持っているが、生産性や柔軟性が高い点などは共通している。

定員60名に対し、100名近い技術者が参加。Groovy/Grailsに対する注目度の高さが伺える

12のセッションの内訳は、Grailsを用いたWebアプリケーションの開発事例が8本、WebSphere sMash(※)を用いたWebアプリケーション開発事例が2本、GroovyとSwingBuilderを用いたRIA開発事例、およびGant(Groovy化されたAntスクリプト)の紹介がそれぞれ1ずつ。

いずれも単なる入門やチュートリアルで終わるのはなく、エンタテイメイトからエンタープライズまで幅広い領域において「実際に使える」点が強調された。Grailsは2008年2月に1.0をリリース、sMashは2008年6月に発表と、成熟度という点ではまだ初期段階にあると言える。にもかかわらず、今回のコンファレンスでは、両技術がすでに実用性と開発効率性を具備していることが明らかにされた。

※ RESTアプリケーションやサーバー・サイド・マッシュアップを迅速に実現するアジャイルなWebアプリケーション・プラットフォーム。Project Zeroとしてhttp://www.projectzero.org/で公開されているものの製品版(IBM製品)。Groovyでアプリケーションを作成することができる。詳細はhttp://www.ibm.com/jp/software/websphere/smash/を参照されたい。

以下、各セッションの内容を簡単に紹介しよう。

Groovy/Grailsのポジショニング

同カンファレンスではまず、日本アイ・ビー・エム 根本和郎氏が、Groovyを使ったフレームワークのポジショニングを説明。Grailsが、SpringやHibernateの使われているエリア、つまりフルスタックなWebアプリケーションフレームワークを想定しているのに対し、ProjectZeroはコネクティビティーに注目し、より軽量SOAとしてのエリアを指向していると解説した。

Groovyを使って記述を簡略化

Groovy/Grailsの位置づけを明確にした後で12本の事例紹介に突入。その先陣を切ったのが、「Groovyでつくるお手軽RIA(日本アイ・ビー・エム須江信洋氏)」だ。

Groovyではビルダという仕組みを利用して、ドメインに応じたカスタム言語(DSL: Domain Specific Language)を簡単に作ることができる。同セッションではその仕組みについて、JavaのGUIであるSwingを簡潔/柔軟に記述できるSwingBuilderを用いながら、短期間(1日!)にRIAアプリケーションを構築した例が紹介された。

「Groovyでつくるお手軽RIA」では、Remember The Milkのクライアントを作成

一方、Antスクリプトを簡潔/柔軟に記述できるGroovy製ツール「Gant」を紹介したのが「AntからGantへ(日本アイ・ビー・エム 宇野るいも氏)」である。Antは強力だが、スクリプト記述はXMLで、必ずしも読み書きしやすいとは言えない。Gantでは、ビルダと同様の仕組みを用いてこの問題を解決しているという。

GantはAntよりも記述が簡潔かつ柔軟