Hi --

On Mon, 9 Jan 2006, James Edward Gray II wrote:

> On Jan 8, 2006, at 2:21 PM, Gregory Brown wrote:
>
>> How would you (the community) define meta-programming
>
> Code that writes code.

Do you mean it's synonymous with code generation?  I don't think I'd
make that association -- not that I have a great definition for it.
In fact, I tend to think of metaprogramming in Ruby as programming
that someone things would seem cooler if it were called meta :-)
Another way to put which is: in Ruby, I'm not sure there's really a
strict line.

Then there's reflection and/or introspection, which I think are part
of it.  If you examine what methods exist on a given object, rather
than just calling them, that's reflective and also could be called
metaprogramming. But, again, I don't really have a definition.  Ruby
lets you eat the tablecloth, so to speak.

>> open class system
>
> Classes that can be changed (methods added, removed, etc.) at runtime.
>
>> and the dynamic nature of ruby?
>
> That's a lot harder.  :)
>
> I like to think that Ruby does away with much of the compile time vs runtime 
> separation and that is a big source of it's dynamic nature.
>
> You will need a better definition than that though, of course...  ;)

"Ruby is dynamic, like human nature" -- Matz, RubyConf 2001 (or 2002;
I think 2001).


David

-- 
David A. Black
dblack / wobblini.net

"Ruby for Rails", from Manning Publications, coming April 2006!
http://www.manning.com/books/black