読者です 読者をやめる 読者になる 読者になる

メタプログラミングRuby まとめ [学習メモ]

プログラミング 学習メモ Ruby

メタプログラミングRuby 第2版

メタプログラミングRuby 第2版

本書は ruby におけるメタプログラミングを扱った本で、ruby と言うことをのぞいても貴重なメタプログラミングの資料だ。
メタプログラミングとは「プログラムを書くプログラム」を書くプログラミング手法のことで、有名なところでLisp 族におけるマクロがある。
Lisp におけるメタプログラミングの教科書が「On Lisp」ならば、この本は ruby での最右翼だろう。
高級感のある表紙と厚くない分量はやる気をそぐことがない。
文章も対話形式で読みやすく、しばしば挟まれるクイズも技量の定着に一役買う。
メタプログラミング、と題名にはあるが、lisp におけるメタプログラミングがマクロではっきりと区切られているのに対して ruby においてその境界ははしばしば曖昧だ。
ruby におけるダイナミックなコーディング法を細かく解説してあり、全く新しい方法を学ぶ、というよりもこれまで曖昧だった ruby の深い仕組みへの理解を助けられたように思う。
これまで私は ruby は一部の人間が行き当たりばったりに仕様を決めた、使いやすいが安っぽい rails 用言語、のようなイメージがあったところだが、本書を読んで実は一貫した仕組みを備えている精緻な言語ことが分かってきたように感じる。

内容にあった動的なメソッド定義やスコープの切り替えなどはよく使うようになった。
しかし、多くの内容はいくらかの思考の飛躍が必要で、意識的に使おうとしないと永遠に使うことはないだろう。
本書は非常に難解と言うわけではないが、初心者向けでもないし、実際の所主人公のボブのように一週間で終えるのも難しいだろう。
完全に物にするには本棚に置いて何度か読み返す必要があり、またその価値がある。
背表紙も美しいので、見栄えも悪くない。

本書で書かれているメタプログラミングを使う究極の目的はコードの重複を極限まで削ることにあるのだろうと思う。
コードが短く、抽象的に、高密度になればバグの頻度が下がり、読みやすくなり、何より、楽しい。
それは ruby 自体が目指すものと近いのかもしれない。

sym.hateblo.jp
sym.hateblo.jp
sym.hateblo.jp
sym.hateblo.jp
sym.hateblo.jp
sym.hateblo.jp
sym.hateblo.jp
sym.hateblo.jp
sym.hateblo.jp
sym.hateblo.jp