Yukihiro Matsumoto wrote:

> |By making the parameter default to the current behavior, we retain 
> |compatibility for all the developers out there, but by providing the 
> |parameter we give ourselves future flexibility.
> 
> By this way, inconsistency (e.g. instance_methods and methods)
> remains.  We need to make incompatible change to accomplish
> consistency.  

We can look at it the other way around: what is the cost of making the 
change vs. the cost of leaving things inconsistent?

Ruby already has a fair number of inconsistencies: these are part of its 
charm.

I agree it would have been nice if the reflection methods had started 
out consistent. But isn't there an element of 'wabi sabi' here (assuming 
I understand the concept of wabi sabi... :)?

So, perhaps rather than making the incompatible change to defaults, we 
could revert to the old ones, but warn that the default will change in 
future (and set a date for that:

   Warning: instance_methods parameter will default to 'true' in Jan 2004


Cheers


Dave