From: "J. Ryan Sobol" Date: 2006-01-09T14:58:02+09:00 Subject: Re: Ideas on "Why Living Dangerous can be A Good Thing" in Ruby? Indispensable uses of Ruby meta-programing. 1) Module.attr and friends are probably the simplest (and strongest) uses that highlight the advantages of meta-programming. 2) Rails' ActiveRecord. 3) Dwemthy's Creature class. http://poignantguide.net/dwemthy/ When boiled down, Dwemthy's Creature class creates a domain-specific mini-language that is actual Ruby code. I'm pretty sure someone else brought up domain-specific languages in this thread, but here are some links to learn more about them. http://en.wikipedia.org/wiki/Domain-specific_language http://en.wikipedia.org/wiki/Domain- specific_language#Advantages_and_Disadvantages_of_DSLs DSL's are used everywhere: in Sendmail configuration files, Windows resource files, World of Warcraft UI scripting, etc. One obvious advantage of embedded mini-languages, like sub-classes of Creature, over external ones, like configuration files, is the ability to apply Ruby's tools, like the irb, directly on the language. ~ ryan ~