GeX2007 基調講演 - Groovy 1.1正式版リリースは11月予定

それでは、GeX2007の話に移ろう。

GeX2007の基調講演では、GrailsプロジェクトリーダーGraeme Rocher氏により以下が発表された。

  • Grails 1.0 RC1が公開
  • Groovy 1.1 RC1が公開
  • Groovy 1.1正式版リリースは11月予定

Grailsの開発は、ここしばらくプラグイン機構の改良や設定ファイルの記述方法変更など、大きな機能拡張が行われてきていたが、今後1.0リリースに向け安定性向上が図られることになる。

また、Groovy/Grailsの技術サポート/トレーニングを行う専門会社「G2One Inc.」の設立が発表された。Grailsの開発にはこれまでもJBoss、Oracle、Interface21など多くの企業が協力し、貢献してきているが、このように専門企業によるGrails/Groovyビジネスが生まれたことは、安定した開発やサポートの面で望ましい。

Groovyの現在のプロジェクトリーダーであり、JSR 241スペックリードでもあるGuillaume Laforge氏は、Groovyのダウンロード数が11,000件を上回り、メーリングリストメンバが1,000人を越えるなど、開発コミュニティが成長していることを示した。また、「尖がった」先進的なプロダクトを次々と送り出すことで有名なOSSサイト「Codehaus」において、2番目に活発なやりとりがなされたのがGroovyのメーリングリストだったことも明らかにした(ちなみに1番目がGrails)。なお、ドイツで開催されているJavaカンファレンスでは、Groovyが「JAX 2007 innovation award」を受賞している(過去の受賞にはSpring Frameworkなどがある)。

本会議がロンドンで行われたことからもわかるように、Groovy/Grailsの開発は主に欧州の各国(英国、フランス、ドイツなど)を中心として行われており、同地域において先行的に認知と利用が進んでいる。

GeX2007の注目セッション

以下、同会議において行われた個別セッションの中から、注目度の高かったセッションをいくつか簡単に紹介よう。

  • GANT Groovy ビルドシステム(Russel Winder氏): 従来のXML形式のAnt、Maven等と比較しても開発効率の良い、ダイナミックなビルドシステム「GANT」の紹介・デモを行った
  • Grails プラグイン(Graeme Rocher氏): Grailsの中核構造であり、柔軟に機能拡張することができる「プラグイン機能」の概要、開発方法などについて解説を行った。プラグイン機能の存在を媒介として、コミュニティーが成長しつつあることなどを紹介した

  • Domain Specific Languages(Guillaume Laforge氏): Grailsで活用されているDSLの意義、種類、活用方法、Groovyによる定義方法などについて解説がなされた。Groovyでは言語内でDSL(Embedded DSL)を定義することが容易である。具体的には、ExpandoMetaClass、カテゴリ、オペレータオーバーロード、AST変換などの機能を使用してDSL定義を行う

  • Acegi on Grails(山本剛): もともとはSpringフレームワーク用に実装された、セキュリティーシステム「Acegi(現Spring Security)」をGrailsからスマートに使用する方法を紹介。また、公開している「Acegi plugin」の最新版を、デモを交えて解説した

Acegi pluginのセッション風景

  • The Whole 9 yards(Glen Smith氏): サイトgroovyblogs.orgをGrailsを使って短期間で立ち上げたことで有名なGlen氏によって、各種のWebサイト構築TIPSが紹介された。具体的には、Flying SaucerによるPDF生成、JFreeChartを駆使した表生成、EHCACHEによるキャッシュ、Textile4jによるWikiエンジンの呼び出しなどである

  • Canoo Web Test & Grails(Dierk koenig氏): Grailsにテストツールの1つとして統合されている「Canoo Webtest」の説明。Webサイトの試験方法はいくつかあるが、Canoo Webtestはサイトの詳細変更などに影響を受けにくい「スクリプトによるオートメーション」を採用したアプローチである。Canoo Webtestのスクリプトを生成するFirefoxのアドインなどを駆使して効率よくテストスクリプトを記述していく方法が示された

  • GORM(Graeme Rocher氏): Hibernateをベースとし、CoCを可能にしたGrails版のO/Rマッピングツール「GORM」を解説。また、GORM最新版で利用できるようになった「ORマッピングDSL」が紹介された。これは、楽観的ロック、2次キャッシュ設定、継承方針、複合キーなどの、よりきめこまやかな指定を容易に行うことができるものである

セッションは数多くあり、本稿では紹介しきれないが、他にもGrails開発者たちによるそれぞれの担当機能のレクチャー、Web2.0、AJAX、Webセキュリティー等のセッションも行われ、活発な議論がなされた。また、Grailsの新機能などの説明(Spring DSL、フィルタ、テーマ機能)などの説明も行われた。

GeX2007における発表の中でもエンタープライズへの適用の話題が散見されたが、Groovy/Grailsは実験と試用の段階を越えつつあり、実用段階に入ろうとしている。今後、その生産性の高さ、アジャイル開発への適応性の高さなどから、メインストリームへの発展が期待されるプロダクトであるといえるだろう。

なお、現在、筆者らはGrails/Groovyの勉強や情報共有のため、Grailsソースコードを読み込む「Grailsコード・リーディング」に参加している。同会は2007年7月以来、オープンな勉強会として月に一回のペースで開催しているものである。毎回20名以上の参加者があり、懇親会も行っている。興味をお持ちの方はどなたでもお気軽に参加してほしい(問い合わせはGrailsコード・リーディングのWebサイトかgcr@metabolics.co.jpへ)。

GeX2007の雰囲気

GeX2007は参加人数がそれほど多くない(70名程度)こともあり、全体的にとても和やかで、Q&Aやディスカッションも含め、親密な雰囲気の中で行われた。Grails/Groovyコミッター、スピーカーたちと気軽に直接話をできるという恵まれた環境の中で、セッションの合間のコーヒーブレーク、ランチタイムでも時間を惜しむかのように、参加者たちの間で活発な情報の交換(Grails eXchange!)がなされていた。