2004年6月29日,米サンフランシスコで開催中のJavaの開発者会議「JavaOne 2004」のテクニカル・セッションで,新たなスクリプト言語が発表された。「Groovy」だ。Java仮想マシン(VM)で動作するスクリプト言語である。Groovyの実行環境がスクリプトをJavaのバイトコードに変換し,変換結果をVMが実行する。Javaに文法が似ているが,Javaに比べて大幅にコーディング量を減らせる点が特徴。Java関連の規約を策定するJCP(Java Community Process)で仕様を検討中。満員となった会場が開発者の関心の高さを物語っていた。

 Groovyは,2003年の8月にJames Strachan氏(写真左)とBob McWhirter氏によって開発された。オープンソースの形で開発が進められている。「Javaは強大ですばらしい言語。しかしソースコードが大量になりがち」(Strachan氏)。一方スクリプト言語は手軽さが売り。Javaで記述すると煩雑になってしまう部分に,スクリプト言語を利用できれば開発効率は上がる。ただ既存のスクリプト言語では問題があった。「Javaアプリケーションとスクリプトが共存するには,スクリプトからJavaのバイトコードを生成できなければならない。また文法の差が大きいと開発者が苦労する。J2EEやJ2SEのAPIも利用したい」(Strachan氏)。この目的に合致したスクリプト言語は存在しない。「だからJava開発者の手で,Javaの開発/実行環境をもっと“groovy”にしたかった」(Strachan氏)。Groovyを利用すれば,Javaに比べて開発時間が半分で済むこともあるという。Groovyのコードの中でJavaのコードを記述する仕組みもあるので,両者を併用することも容易だ。

 Javaに文法を似せるだけでなく,RubyやPython,Perlなど他のスクリプト言語の特徴も取り込んだ。例えばリストや配列などに独自の文法を使って,記述効率を高めている。セッションでは,リストに格納した複数の文字列から4文字以下のものを探して表示する処理を使ってGroovyの効率を示した。Javaでは15行以上必要なところを,Groovyでは4行で記述できていた。

 もちろんJavaに比べて劣る部分もある。例えば性能。現在のところ「使い方によるが,Javaの20~90%程度。今後,細かなチューニングが進める」(同じくGroovyの開発に関わるRod Cope氏,写真右)。インナークラスに未対応,デバッグが困難などといった課題もある。ただ「小規模でそれほどクリティカルでないシステムには特に有効。習得も容易なので,是非試してほしい」(Cope氏)。Groovyの実行環境は,公式サイト(http://groovy.codehaus.org/)からダウンロードできる。

(八木 玲子=日経バイト)