コードの世界
2章まで読んだ。本当にいい本です。オススメ。 オレ言語を作ったりしている人はたぶん買っているだろうけど、それ以外の人にも薦めるぞ。 2章まで読んだだけでも、なぜ、RubyにLispのようなmacroを導入しなかったのかを感じ取ることができる。 Lispのようなmacroで無限の柔軟性を手に入れたいのは一部の人だけで、もっと広く使われるためにはもう少しマイルドな代替手段を使って攻める必要があるという狙いがあるようだ。 たしかに、Rubyのmethod_missingの仕組みや、メタプログラミングの仕組みを使えばかなり読み書きしやすいDSLが作れる。 でも、個人的にはその仕組みが複数あったり、それぞれになんとなく固有の限界が見え隠れしたりして全容を理解するまでが、遠いという感じがある。でも、これは好みの問題か。 LisperはLispマクロの単純なルールで限界を突破するけれども、普通のひとにはたしかにコードをパッと見ただけで拒否反応を起こすのも現実なのは何度も経験している。 うーん。Rubyのバランス感覚はすばらしい。 でも、それをあえて崩してみるのも楽しいかなと思って作っているのが、[Nendo]というわけ。さてどんなものになるのやら。