Groovyが結構イケてる件

会社の同僚のJavaのプロフェッショナルの人にGroovyを強烈にプッシュされた。Groovyは約2年前にちょろっと勉強したことがある(当時SOAP-UIというWebサービスのテストツールを使う必要があったんだけど、そのツールでテスト結果の検証用にサポートされている言語がGroovyだった)。それ以来ほとんど全くと言うっていいほど触っておらず、その間にScript言語としてはRubyやらPythonをいじって勉強していた。


その同僚が色々とGroovyの利点を説明してくれて、かつサンプルのコードや実際の開発プロジェクトで使うためにGroovyで作ったツール等を見せてくれた。確かにかなり強力。特に自分みたいなJava使いにとっては。利点を簡単に書くと

  • Javaとの親和性が高い。Javaがインストールされている環境ならGroovyのjarを追加すればすぐに利用できる。Javaのクラスをダイレクトに呼べるし、逆にGroovyのコードをJavaから呼ぶことが可能(GroovyのコードはコンパイルされてJavaのクラスファイルに変換される)。
  • Javaを知っていれば学習が簡単。すぐに使える。ほとんどJavaの構文のみで記述することも出来る(それじゃあまり利点がないけど)。
  • 一般的な最近のScript言語がサポートしている様々な強力な機能がサポートされている。
  • JavaEclipseプラグインを組み合わせることにより強い型付けと弱い型付けの両方の利点を享受することが可能。
  • Antからも簡単に呼び出せるので、複雑なことをAntで頑張って書くよりもGroovyで書いたほうが綺麗でメンテしやすい。
  • GroovyでサポートされているSwingの拡張機能(SwingBuilder)が強力。クロージャによってインターフェースを実装する等のめんどくさい作業がなくなる。SwingでGUI作るならJavaで書くよりもGroovyで書いたほうが生産性も保守性もよさそう。

などなど。


実際に今日、プロジェクト用のGUIツールをGroovyでSwingBuilderを駆使して書いてみたけど、結構ちゃんとしたツールが短時間、短いコードで簡潔に書ける(Groovyに関する情報はすべてWebを検索して調べた)。


確かにRubyPythonJRubyJythonのおかげでJavaとの親和性は高くなってるけど、互換性の問題も含めてやはりGroovyには勝てないと思う。あまりGroovyが実際のプロジェクトで使われてるっていう事例を聞いたことがなかったから毛嫌いしてたけど、かなり実用的で今後も積極的に使っていきたい感じ。Groovyを知ってたらムリにJRubyJythonを学ぶ必要ないと思うな(もうちょっと調査が必要だけど)。Grailあるし。


そんなわけで、まだGroovyを使ったことのない方で何かScript言語を勉強したい方、特にJava使いには敷居が低いと思うので是非チャレンジしてくださいな。

プログラミングGROOVY

プログラミングGROOVY