I forward an email conversation that I had with matz:
[snip]
I created RubyMacros, an extension to ruby which adds lisp-style
macros (and forms). see
http://github.com/coatl/rubymacros or 'gem
install rubymacros'. It can use some refinements, but it's basically
as powerful as lisp macros as is.
I don't understand Matz' objection to macros. He seems to be saying,
"Macros would let you create DSLs, and to understand code using them,
you'd have to understand the DSL as well." But people are already
creating DSLs with ruby, so this problem largely already exists.
Macros just enable better DSLs. Indeed, the capacity to, in effect,
extend the syntax of the base language is one of the biggest selling
features of macros.
Robert, Matz, concrete criticisms of the macro system I have created
are welcome.