トップ «前の日記(2014/12/03 (水) ) 最新 次の日記(2014/12/05 (金) )» 編集 RSS feed

HsbtDiary


2014/12/04 (木) [長年日記]

Ruby のしくみを読んだ

@snoozer05 と @kakutani より頂きました。ありがとうございます。

実はこの原著である Ruby Under a Microscope は電子書籍で買っていて、1章の「字句解析と構文解析」まではふむふむ~と読んでいて止まっていたという状況だったので、翻訳版のおかげで最後までちゃんと読むことが出来た。これ、読んでみると8章の Proc あたりの内容を英語で理解できたかというと絶対に無理だなこれは、という内容だったので日本語になっていてとてもありがたい。

最初にこの本について書いておくと、この本を読んでも良い Ruby コードが書けることはないだろうし、Rails の地雷回避がわかるかというとそんなことはない。だけど、僕ら Web の世界でプログラマをする人間なら、Kernel やもうちょっと上のミドルウェアである redis, memcached, nginx, apache のようなソフトウェア、Ruby や Perl, Python のような言語の内部構造を知っていると、何かしら極限、もしくは限定された状況で力を発揮するというのは経験にあると思う。なによりもそういうことがすぐ出てくる人というのは憧れだしね。

そういうわけで Ruby のしくみである。

まず、Ruby のコードを読み込んでから、それらのコードがどのように字句、構文解析されて、コンパイルされ、YARVの機械語に変換されるか。またRubyでよく使われるクラスやオブジェクトがどのように表現されるか、メソッド探索がどのように行われるか、Procは何者なのか、ということが豊富な図で解説されている。また 10-12 章では JRuby と Rubinius がどのように実行されるかという説明をしながら、MRI との対比をしているという点で非常に勉強になる。

この YARV を作った @_ko1 さんの凄さを改めて認識させるには十分な本なのだけど、最後の JRuby と Rubinius の比較の部分で、「この問題は Ruby 2.1 では解決されている」という部分をすべて @_ko1 さんが作ってしまったというあたりがとても良かった。

自分はまだ Ruby の内部(Cの部分)については勉強途中で、ちょっとしたビルドエラーや typo、メソッドの修正くらいしか出来ない人間なんだけど、この本を読んで内部のデータ構造についてはだいぶ詳しくなれたと思う。ただ、中盤はだいぶぼんやりした理解なので、もう何回か読み返そうと思う。

まとめ: @_ko1 さんはすごい。


Rubyのしくみ -Ruby Under a Microscope-
Pat Shaughnessy
オーム社
¥3,520