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プラグイン
図2 NetBeansプラグイン
フレームワークGrails
GroovyにはGrails(図3)という優れたフレームワークがあります。RubyにおけるRailsのようなものです。EclipseやNetBeansのプラグインと合わせて使いながら、スピーディなWebアプリケーション開発を始めることができます。
図3 Grails
日本のGroovyコミュニティ
Groovyには優れた日本のコミュニティが存在します(図4)。本書の執筆陣も参加していますので、書籍やWebだけで追い切れない部分をユーザーグループのMLや勉強会などで深めていくことができるでしょう。
図4 日本Grails/Groovyユーザーグループ
これからのプログラミングはマルチパラダイムになっていくのではないでしょうか。新しい言語を学ぶハードルをちょっとだけ下げてくれるのがGroovyです。Groovyをきっかけにして、様々な言語の良さを適材適所で使いわけていくのがお勧めです。