Javaベースのハイブリッド言語 Groovy

1年に1つ新しい言語を学ぶほどアグレッシブなエンジニアでなくても、たまには新しい言語で新しい世界を垣間見たくなることがあるのではないでしょうか。そんなあなたにお勧めの言語がGroovyです。

Groovyは多くのエンジニアが使っているJavaをベースにしたハイブリッド言語です。Javaが使える環境であれば、そこに

よりGroovyのインストーラをダウンロードしてインストールして簡単な設定をすることで、Javaのアドオンのような気楽さで使えるようになります。

Groovyに対するよくある誤解

Groovyは2003年に誕生した比較的新しい言語です。2004年にプチブームがあったためそのときの(もしかしたらあまり良くない)印象を持ち続けている方もいるのではないでしょうか。

よくある大きな誤解のひとつがGroovyのスピードです。起動の遅さ、動的型付けによる遅さ、メソッド呼び出しの遅さ、これらは2004年当時はある程度事実でしたが、現在は1.8までバージョンが上がり、数々の対策が施されています。

Java VMを常駐化することで起動の遅さは解消されますし、動的型付けの遅さについてはGroovy++プロジェクトで改善が続けられています。メソッド呼び出しの遅さもキャッシュ機構により性能向上が図られています。

最新の1.8がリリースされたばかりの今は、Groovyを改めて試してみるのにぴったりのタイミングです。

Groovyは次世代Javaなのか

次世代Javaと言われている言語はほかにもあります。RubyやScalaなどに期待をかけている方もいるでしょう。一から学ぶ言語としてRubyやScalaのような新しい世界観を持った言語は魅力的です。

一方のGroovyはJavaの延長線上にあります。ある意味目新しさには欠けるかもしれません。その分今までのJavaの資産を生かしながら、必要な機能だけを都合良く使うことができます。Javaの世界の中で、最新のプログラム技法を使ってみたいというニーズに応えてくれるのがGroovyです。

Groovyの使いどころ

GroovyはJavaとセットで使うことに適しているので、一からGroovyだけでシステムを作るような用途だけでなく、グルー(糊)言語として使ったり、変更の多いビジネスロジックの部分に使ったり、簡単なユーティリティを作るような用途にも適しています。

Groovyの開発環境

Groovyには様々な開発環境が用意されています。Vim、Emacs、TextMate、JEditのようなエディタで開発できるのはもちろんのこと、EclipseやNetBeansでは専用のプラグインが提供されています図1、2⁠。

図1 Eclipseプラグイン
図1 Eclipseプラグイン
図2 NetBeansプラグイン
図2 NetBeansプラグイン

フレームワークGrails

GroovyにはGrails図3という優れたフレームワークがあります。RubyにおけるRailsのようなものです。EclipseやNetBeansのプラグインと合わせて使いながら、スピーディなWebアプリケーション開発を始めることができます。

図3 Grails
図3 Grails

日本のGroovyコミュニティ

Groovyには優れた日本のコミュニティが存在します図4⁠。本書の執筆陣も参加していますので、書籍やWebだけで追い切れない部分をユーザーグループのMLや勉強会などで深めていくことができるでしょう。

図4 日本Grails/Groovyユーザーグループ
図4 日本Grails/Groovyユーザーグループ

これからのプログラミングはマルチパラダイムになっていくのではないでしょうか。新しい言語を学ぶハードルをちょっとだけ下げてくれるのがGroovyです。Groovyをきっかけにして、様々な言語の良さを適材適所で使いわけていくのがお勧めです。