気になる開発プロダクツ

第8回 Groovy/Grails

この記事を読むのに必要な時間:およそ 1.5 分

筆者は今月,「スクリプティング with Java」を刊行させていただきましたが,その中の特集2で取り上げたのはGroovy 1.1-Beta2Grails 0.6でした。ですが,その後の開発によって,本稿執筆時点ではGroovy 1.1-RC1,Grails 1.0-RC1となり,大幅な改良が加えられました。今回はその改良点を取り上げます。

Groovyとは

Groovyは,Java VM上で動作するスクリプト言語の1つで,JSR241としてJCPに採択されています。Javaに改良を加えた文法と拡張性の高さが特徴で,Java経験者にはとっつきやすい言語といえるでしょう。11月中旬にバージョン1.1のリリースが予定されています。

開発リーダーのGuillaume LaForge氏は,Grails開発リーダーのGraeme Rocher氏らと共にGroovy/Grailsのサポート,コンサルティング,トレーニングなどを手がけるG2One Incという企業を設立し(*1),VP Technologyというポストに就いています。

主な改良点

1.1-Beta3と,RC1の主な改良点を以下に列挙します。Groovyの文法などについては,Webサイトおよび拙著を参照してください。

●1.1-Beta3の主な改良点(*2)
  • Java 5の列挙型(enum)に対応
  • クロージャの実行方法が指定可能に
  • クロージャとマップの具象クラスへのインターフェースを拡張
  • 新たな演算子(Elvis operator)の導入
  • ExpandoMetaClassにメソッドを追加
  • Antタスクgroovyc内でjavacタスクを利用可能
●1.1-RC1の主な改良点(*3)
  • Groovy Shell(groovysh)からgoコマンドを削除(図1) (注)
  • Beta-3より15%~45%のパフォーマンス改善
  • 単項の+, -, ~演算子が再定義可能
  • metaClassをどのオブジェクトからも取得可能
  • metaClassによるstaticメンバの定義がよりシンプルに
  • Java5対応の改善
このバージョンのGroovy Shellでは,コマンドラインに日本語を入力すると文字化けしてしまいます。ですが,日本語を含んだソースコードをファイルに保存し,groovyコマンドでそれを実行する場合は,問題なく日本語も扱えます。

図1 コマンドラインツールからgoコマンドが削除された

> groovysh
Groovy Shell (1.1-rc-1, JVM: 1.6.0_03-b05)
Type 'help' or '\h' for help.
----------------------------------------------------------------
groovy:000> def sum( n ) {        ← メソッド(関数)の定義
groovy:001>   n * ( n + 1 ) / 2
groovy:002> }
===> null
groovy:000> sum( 10 )             ← すぐに実行できる
===> 55
groovy:000> quit

>

Grailsとは

GrailsはRuby on Railsに影響を受けて開発された,自動生成機能をもったWebアプリケーションフレームワークです。ただしRailsクローンというわけではなく,コマンドやクラスなどは独自のものです。先述の開発リーダーRocher氏はG2OneでCTOを務めています。

Grailsによって構築されるアプリケーションはGroovy + Spring + Hibernateの構成になりますが,必要な設定ファイルも生成されるため,XMLファイルを見ることなく開発を進められます。

ちなみに,Groovyを採用しているアプリケーションフレームワークには,GrailsのほかにProject Zeroがあります。

主な改良点

Grails 1.0-RC1の主な改良点を以下に列挙します。アプリケーションの実装例などはWebサイトや拙著を参照してください。

●1.0-RC1の主な改良点(*4)
  • O/Rマッピング機能(GORM)の改善
  • Filterによるインターセプタの作成
  • タグライブラリで名前空間やBody部の変数を定義
  • URLマッピングで**やレスポンスに応じたマッピングが可能
  • GORMでペシミスティック・ロックやセッションのフラッシュ制御が可能に
  • jndiNameプロパティによるJNDIサポート
  • 設定ファイルを複数指定可能

Groovy/Grails共に,今後も更なる改良が続けられることでしょう。RubyやPythonなどのスクリプト言語も注目される中,どのように発展していくのかが楽しみです。


この連載は今回で最後となりました。しかしライブラリやツールの開発はこれからも変わらず続けられます。それらがやがて新たなムーブメントを起こすきっかけになってくれることを,筆者は信じて止みません。

*1 G2One: The Groovy/Grails Company is born
*2 Groovy 1.1-beta-3 released, RC-1 and 1.1-final around the corner
*3 Groovy 1.1-rc-1 released
*4 Grails 1.0-RC1 Release Notes

著者プロフィール

沖林正紀(おきばやしまさのり)

SE/プログラマを経て,WebアプリケーションやXMLなどについて雑誌記事や書籍の執筆活動を始める。大手メーカで製品資料の作成や,セミナーの講師を担当したこともある。現在は,取材記事や製品レビューなどに執筆活動の幅を広げる一方,プログラミング教材の開発も手がけている。

著書

コメント

コメントの記入