kenju's blog

About Programming, Mathematics, Security and Blockchain

書評『Rubyのしくみ ~Ruby Under a Microscope~』を読んで

Rubyのしくみ -Ruby Under a Microscope-

Rubyのしくみ -Ruby Under a Microscope-

とりあえず一通り通読をし終えた。 今後は、さらにRubyのソースコードを深掘りする中で、時々振り返りに読むことになりそう。

対象読者

  • Rubyを書いたことはあるけれど、Ruby本体がソースコードレベルでどのように動くかを知りたい人
  • 字句解析・構文解析・コンパイルの具体的な処理や仮想マシン、GCの実装をRubyを具体例として知りたい人

なぜ読んだか

  • Ruby本体がソースコードレベルでどのように動くかを知りたかったから
  • この後RHG(『Rubyソースコード完全解説』サポートページ)を読む予定だが、RHGに挑戦する前の、概念や周辺知識の補助として良いとのアドバイスを受けたから

本書の優れている点

  • シンプルで明快な豊富な図例
    • Rubyのソースコードを、必要な部分だけに絞って図例に落とし込んでおり、大きな理解の助けになる
  • ソースコードを読むべき箇所と、そうでない概念の説明箇所が明確に分かれている点
    • ソースコードを常に追うスタイルではなく、まずは概念を図例でわかりやすく説明する
    • それによって、Ruby本体の実装の変化によって本書の内容が廃れることはなさそう

本書を読む際の注意点

  • 本書が書かれた当時と今のRuby 2.4ではソースコードがかなり違うので、その差異を適宜ソースコード本体を読みながら照らし合わせていかなくてはいけない
    • 例:HashやGCの実装で適用している最新のアルゴリズムが違う、構造体の名前が微妙に違う、ファイル名が微妙に異なるなど
    • が、本書を読むにあたってはほとんど問題にならない

雑多な感想

  • 著者は「相手にわかりやすく説明する」ことが非常に上手で、自分もいずれRubyではない新しい言語を学んでいる過程でこのようなクオリティの高い書籍や説明の機会を活用したいと刺激を受けた
  • Rubyのソースコードをダウンロードして、適宜該当箇所と照らし合わせながら読んでいくのがベスト。おかげでRuby2.4と書かれた当時のRuby2.0あたりの差異がわかるし、ソースコードへの理解も深まる
  • ずっと「読んでみたい」と思っていたが、今回 “Cookpad Ruby Hack Challenge” に参加することが決定したことをきっかけに読むことができた。きっかけ大事

cookpad.connpass.com