uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

2011-03-01から1ヶ月間の記事一覧

GEP3のさらなる拡張

Groovyの1.8のどこか(たぶんbeta3)から、代入式右辺のメソッド呼び出しにおけるカッコの省略ができるようになっています。 home =System.getProperty "groovy.home" foo = System.getProperties().setProperty 'foo', 'bar' // 1.7ではエラーだが1.8の新しい…

[groovy] GroovyがTIOBEランキングで25位に

独自の基準でプログラミング言語の人気度を順位付けしている「TIOBEランキング」のサイトで、2011年3月にGroovyのランキングが25位(0.457%)になってます。過去の最高は36位(0.247%)であり、ちなみに2007年では37位、2009年では47位 、2010年には悪化して51-1…

クロージャにとってdelegateとは何か

短い答え 短い答え: クロージャにとって、delegateってのは、変更可能なthisですよ。 長い答え メソッドにとってthisとは何だったか まず、thisとは何だったかを確認します。thisの中核的な意味は、インスタンスメソッドから見て自分自身が所属するインスタ…

Builderとは何か

Builderというのは、Groovyのとても特徴的な機能だと思います。たとえば、MarkupBuilder。 new MarkupBuilder().root { a( a1:'one' ) { b { mkp.yield( '3 < 5' ) } c( a2:'two', 'blah' ) } } こんなんを書くと、 <root> <a a1='one'> <b>3 &lt; 5</b> <c a2='two'>blah</c> </a> </root> こんなのが表示されま…

Groovy 1.8 modularizationとは何か

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…

GROOVY_HOMEを設定しない方が良い理由

Why You Should Never Set GROOVY_HOMEという記事があり、GROOVY_HOME環境変数を設定してしまうと、複数のGroovyをインストールしてるときとか、あるいはGrailsとGroovyの両方をインストールしてるときに邪魔でしかないので、GROOVY_HOMEは設定せず、PATHにG…

Groovyではprivateが無視されるというのはバグとみなされている

これもトリビア。現在のGroovyはprivateを無視します。なのでjava.lang.String#valueの値を変えることも容易にできます。試験に便利なときもあるかもしれません。しかしこの機能(?)は古来からバグとみなされてます。いにしえのjsr-03では禁止されていたらし…

Groovyの生産性

GroovyとJavaとの生産性の比較について、groovy-userのMLで報告してた人がいたので紹介。 groovy/javaの混合言語のプロジェクトで、Javaコードをgroovyにコンバートすることをやってた。たいていは、拡張したりバグ修正したり必要に応じてリファクタリングも…

GroovyはPure Javaじゃない

トリビア?です。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に同梱され…