On Jul 11, 2005, at 4:26 PM, chromatic wrote:
On Mon, 2005-07-11 at 15:16 +0200, Ingo Blechschmidt wrote:
Bar.new.isa(Object); # true
Bar.new.isa(Class); # false
Bar.new.isa(Foo); # true
Bar.new.isa(Bar); # true
I'd like to go on a tangent to suggest that anyone who uses .isa() in
actual real code ought to be doing something really really tricky, for
which there absolutely is no other solution.
Alternately, it's okay with me if .isa() is actually syntactic sugar
for .does(), thought I don't expect much agreement on that.
I actually agree with you on that. But I would like to clarify it to
Foo.isa(Bar) # Foo.meta.isa(Bar) || Foo.meta.does(Bar)
... meaning that the .isa() which is supposed to be aliased into the
class from .meta is actually this.
The same too could be said for the .meta aliased .does() as well.
I see a reason to differentiate between roles and classes on the
metalevel, but the argument is not as strong on the user-level.