From: Gregory Brown Date: 2006-01-09T07:01:40+09:00 Subject: Re: Ideas on "Why Living Dangerous can be A Good Thing" in Ruby? On 1/8/06, dblack@wobblini.net wrote: > Hi -- > > On Mon, 9 Jan 2006, Gregory Brown wrote: > > > How does this sound for a definition: > > > > "When code is designed to dynamically write or modify it's own code or > > s/'// :-) Thanks :) > > other code, this is considered to be Meta-programming. This often > > makes heavy use of reflection and introspection, two key tools for > > dynamic manipulation of code." > > I'm not sure I'd say that reflection and introspection (and by the > way, is there an established difference between those two terms?) I suppose not, but they were your words. Perhaps the only difference between them is that introspection is looking within oneself and reflection is slightly more general. Maybe they're the same thing. I don't know. > are "manipulation" techniques. In fact, they're sort of non-manipulation > techniques; they give you information about what's going on, without > actually changing anything. Right. I didn't intend to mean that they were manipulation techniques, but that they were important tools for meta-programming. If meta-programming is a manipulation technique, say... giving you a haircut. Would you rather use a mirror (reflection) or not? ;) How can I best rephrase, rewrite, etc the definition to show that reflection is a key tool for doing manipulation, not something that does manipulation itself?