2011-03-01から1ヶ月間の記事一覧
Groovyの1.8のどこか(たぶんbeta3)から、代入式右辺のメソッド呼び出しにおけるカッコの省略ができるようになっています。 home =System.getProperty "groovy.home" foo = System.getProperties().setProperty 'foo', 'bar' // 1.7ではエラーだが1.8の新しい…
独自の基準でプログラミング言語の人気度を順位付けしている「TIOBEランキング」のサイトで、2011年3月にGroovyのランキングが25位(0.457%)になってます。過去の最高は36位(0.247%)であり、ちなみに2007年では37位、2009年では47位 、2010年には悪化して51-1…
短い答え 短い答え: クロージャにとって、delegateってのは、変更可能なthisですよ。 長い答え メソッドにとってthisとは何だったか まず、thisとは何だったかを確認します。thisの中核的な意味は、インスタンスメソッドから見て自分自身が所属するインスタ…
Builderというのは、Groovyのとても特徴的な機能だと思います。たとえば、MarkupBuilder。 new MarkupBuilder().root { a( a1:'one' ) { b { mkp.yield( '3 < 5' ) } c( a2:'two', 'blah' ) } } こんなんを書くと、 <root> <a a1='one'> <b>3 < 5</b> <c a2='two'>blah</c> </a> </root> こんなのが表示されま…
Groovy 1.8の新機能として、「モジュール化」というのがちらほら出て来ています。たとえば、1.8.0-beta1のリリースノートには、 .. and we're also seizing this opportunity to work in parallel on making Groovy more modular. Some early work towards m…
Why You Should Never Set GROOVY_HOMEという記事があり、GROOVY_HOME環境変数を設定してしまうと、複数のGroovyをインストールしてるときとか、あるいはGrailsとGroovyの両方をインストールしてるときに邪魔でしかないので、GROOVY_HOMEは設定せず、PATHにG…
これもトリビア。現在のGroovyはprivateを無視します。なのでjava.lang.String#valueの値を変えることも容易にできます。試験に便利なときもあるかもしれません。しかしこの機能(?)は古来からバグとみなされてます。いにしえのjsr-03では禁止されていたらし…
GroovyとJavaとの生産性の比較について、groovy-userのMLで報告してた人がいたので紹介。 groovy/javaの混合言語のプロジェクトで、Javaコードをgroovyにコンバートすることをやってた。たいていは、拡張したりバグ修正したり必要に応じてリファクタリングも…
トリビア?です。GroovyはPure Javaじゃないんですね。 $ jar tvf /tool/groovy-1.7.3-bin/lib/jline-0.9.94.jar | grep dll 16069 Fri Feb 22 03:02:14 JST 2008 jline/jline32.dll 48128 Fri Feb 22 03:02:14 JST 2008 jline/jline64.dll groovyに同梱され…