なぜGroovyか

オブジェクト指向スクリプト言語が欲しいから。ようするにこれだけだろう。

他にも RubyPython がある。他にも、もちろんあるだろうがメジャーではない。
Perlは論外としておこう。

先にPythonからいこう。
Pythonはなかなかよくできていると思う。
特にドキュメントが非常によくできてるし、ライブラリも豊富である。
インデントを強要してわかりずらいプログラムにならないので初学者にもいいと思う。
ただし日本人にとっては情報が英語のみ(日本語のドキュメントの翻訳もあるが)なのでつらい。
あとメソッド内でいちいち self をつかわなくてはいけないのがちょっと面倒である。
python 2.3.x でも日本語処理がいまいちである。次のバージョンからは大丈夫みたいだが。

次にRubyについて。
Perlが5.8.x になって日本語処理がとんでもなく不便になったので Ruby を使い始めた。
実際に使ってみたところ非常によくできていることを知る。
全てがオブジェクトないけてる言語だ。
日本人が開発のメインなので日本語処理に問題がないのもうれしい部分だ。
ただしやっぱりRubyは以下の点がだめだ。

  • end がだめ
  • nil なんで null じゃないんだろう
  • i ++ がない
  • UNIX臭がする
  • ドキュメントが貧弱

つまりRubyのもつ能力というよりは外面が非常にいけてないのである。
Rubyしか使わないのであれば所詮これらは慣れなのだからこれでもいいのだが、
スクリプト言語は仕事の言語ではありえない。
たまにしか使わないので他の言語のつもりで書いてエラーになったり、
Rubyのつもりで他の言語を書いてしまったりしてエラーになったりしてしまう。
これはPytonにもいえる。
よって私の欲しい言語ではない。

さて本題のGroovyについて

  • Ruby,Pyhon後に出たのでこれらのオブジェクトスクリプト言語のいいとこどりをしている
  • 特にRubyの能力を引き継いでいるが私が習得しているCライクな C/C++/C#/Java/Perl/PHP/JScript で書き間違うことが少ない。
  • Javaで開発している
  • JVM上で動くのでOSの違いを吸収できる。native版を作る計画もある(CVS上のgroovy-native)。
  • Javaの豊富なライブラリを使える(これがJRubyではない理由らしい)。
  • James(作者) が Jakarta で活躍しているので他のプロダクトとの連携が期待できる。Ant1.6.1からGroovyがサポートされた。
  • eclipseのpluginがある(Jamesはeclipseを使っている)。私は eclipse が好きである。実際のところeclipsegoogleを検索してたときにJamesのblogにぶち当たって groovy を知ったのだ。
  • UnitTestが最初からされている。
  • J2EEスクリプト言語を目指している。J2EEは本当にめんどくさいので期待している。

いけてないのは以下の点

  • 日本語というかマルチバイトを考慮していない
  • 正規表現がいまいち
  • 情報が英語。。。

でもまだ Groovy は 1.0 にもなってないし、実際に使い始めてないのであとで評価がかわるかも。