書籍『Merb in Action』の第 1 章が無料配布中

共著者に Merb 開発者が含まれている書籍『Merb in Action』の "Section 1. Introducing Merb" が PDF で無料ダウンロードできる。
といっても Merb の概要を紹介しているだけなので、別に読まなくてもいいかも。書籍自体まだ 1/3 くらいしか書かれてなくて、いつ完成するんじゃい! ってな状態。


で、ですね、この Section 1 を頑張って翻訳してみたんですよ。でも英語がわかんないところだらけでお手上げなんですよ。
なので、誤訳を訂正してくれるという奇特な人を募集。そんなやついるのか知らん。


なお Merb の書籍としては、他に『Beginning Merb』と『Merb: What You Need to Know』があるそうな。こちらはすでに発売中。

Ruby 1.9 でアプリケーションが速くなるとしたら

個人的には、Ruby 1.9 を使っても業務アプリケーションや Web アプリケーションはそう速くはならないと思ってる。少なくとも、自分のプログラムでベンチマークした限りではそうだった。

Ruby 1.9 による高速化の恩恵を受けるのは、数値計算を多用するようなプログラムであり、具体的には、数学系、科学技術計算系、ゲーム系のアプリケーションやライブラリがこれに当たる。また業務アプリケーションなら、統計処理や Business Intelligence (BI) 系のものは速くなるだろう。
ただしこういった CPU Bound なものは、Ruby 1.9 でも満足できる速度ではないので、そもそも Ruby がメインとして使われることはほぼないと思う。あっても補助的なものに限定されるだろう。

ただ、次のような場合は業務アプリや Web アプリでも Ruby 1.9 の恩恵を受けるはず。

・使用しているライブラリが改善されている場合
たとえば 1.9 では erb.rb や cgi.rb が書き直されてるようだから、こういったライブラリを使っているアプリケーションは速くなる可能性がある。もちろんこれは YARV とは関係ない。

・追加された組み込みメソッドを使った場合
たとえば Rails では Enumerable#group_by を定義しているけど、これは Ruby 1.9 では組み込みで用意されるようになった。組み込みメソッドは C で実装されているので、その分速くなる。これも YARV とは関係ない。

・新しく導入されたアーキテクチャを使った場合
具体的には、native thread や fiber や asynchronous I/O のこと。これらが利用可能になるので速くなる、というケースは十分考えられる。実際に非同期の PostgreSQL ドライバや MySQL ドライバが登場しており、性能が大幅に向上しているらしい。
個人的には、この点を強調したい。VM の改良による速度の向上なんて、業務アプリや Web アプリではたかが知れている。それよりも I/O 性能を向上させることのほうが大事であり、そのために fiber や async I/O には期待しているし、もっと活用されるべき。

Native thread は、まあその、なんだ、言語比較表を作る時にマルが 1 つ増えるという効果があるよね。