From: Yukihiro Matsumoto Date: 2008-08-14T15:05:25+09:00 Subject: [ruby-core:18286] Re: Am I right that this is wrong? Hi, In message "Re: [ruby-core:18275] Re: Am I right that this is wrong?" on Thu, 14 Aug 2008 04:04:12 +0900, "David A. Black" writes: |There was a discussion about this at the Ruby Hoedown. As Jim Weirich |pointed out, the nice thing about doing it the other way around is |that you could do: | | MyClass.instance_methods(:ancestors => true) | |or | | MyClass.instance_methods(:with_ancestors) | |or whatever, whereas to make the argument false, you have to use false |or nil which is very cryptic. Interesting. But in a dynamic language like Ruby, inheritance is just a mean to share methods and other attributes among classes, so that it's not as important as in static typed languages e.g. Java. When we want to know the instance methods of a class, we have more focus on the list of methods effective in the instances of the class, not the list of methods defined (but not inherited) in particular class. Considering the less importance of inheritance in Ruby, I think the default should be as it is implemented now. If you want to have separate method to get the no-ancestors list of methods, it's OK as long as we get the "right" name for it. matz.