Groovy 1.7.6/1.8-beta-3リリース!

ロンドンで開催中のG*なイベント、Groovy & Grails eXchange 2010にあわせ、Groovyの新バージョンがリリースされました!

公式アナウンス:http://docs.codehaus.org/display/GROOVY/2010/12/16/Groovy+1.7.6+and+1.8-beta-3+released

1.7.6は基本的にバグフィックスが中心のようですが、1.8-beta-3は来年2月に予定されている1.8の正式リリースに向けた重要なステップ(ロードマップ参照)で、下記のような新機能を含んでいるそうです:

  • command expressionが代入の右辺でも使えるように(GEP 3関連)
  • @Log AST変換
  • MapにisCase()メソッドがついた(switch-caseで使える)
  • @GrabResolverの短縮記法(@GrabResolver("http://some/url"):いいね!)
  • StringからEnumへの型変換 ("blue" as Color) ← 1.7系でも使えるよね...
  • クロージャのメモ化とトランポリン
  • @ThreadInterrup/@ConditionalInterupts/@TimedInterrupt AST変換
  • Mapのmin() / max()メソッド(値が対象になる)
  • ASTノードにメタデータを記憶できる(自作AST用)

さらに重要な点として、int演算でprimitive型用のバイトコードが生成されるようになって、ベストケースでは1.7.5と比べて何と13倍も高速になってるとか!(ちょろっと試したけど確認できませんでした。要追試)

上記については、さきほど行われたGuillaume Laforge(Groovyのプロジェクトリーダ)のキーノートスライドでも具体例をあげて詳しく説明されているのでぜひ参照してください。(追記:ビデオも公開されています)

1.8の正式リリースが楽しみですね!