ホリデーシーズンにJRubyはちゃくちゃくと進化中、という話。
実際にServer VMを使った場合には、 場合によってはC Rubyに比肩しうる性能が出る(こともある)ということだ。
今までは「Bignum計算なら速い」とか、JRuby自身の性能によるものではない 点でしか性能勝負はできてなかったんだけど、 今回はわりとアグレッシブな最適化(再定義されてない整数メソッドの直接呼び出しとか)を 行ったようだ。
JRubyってのは非常に面白いポジションにいると思うんで、 かれらの頑張りには今後も期待したい。
この間のメニーコアのエントリを連想させる内容。さらに吉岡さんのはてな日記の方では
Rubyあたりでマルチコアに対応した実装をハックしちゃうというのも面白いかなあなどと妄想しているがあくまで妄想である。そこの人、本気にしないように。
とある。いやあ、私もそういうの欲しいなあ。 私自身は並列は得意じゃないので、できそうにないけど。
そういえばささだくんの専門はそっちだったっけか。
「落とし穴」のエントリ以来、 ずっと考えていたのだが、ようやっと結論が出たような気がする。
今までクラス変数は、登場した場所を囲むもっとも内側のクラス(ただし、特異クラス定義は除く)に所属する、というのがルールであった。 変数がどのクラスに所属するかは静的に決定した方が分かりやすいだろう という判断からである。
しかし、「落とし穴」と呼ばれるからには、この判断は間違っていて ユーザの暗黙の期待を裏切っている(悪い驚き)である可能性は否定できない。
新しいルールはこういう風にしようと思う。
こうやって文章にすると結構複雑なのだが、どうやらこれが多くの人が暗黙に期待するルールに一番近いようだ。