chromatic,

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 say that:

  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.

Stevan


-- c



Reply via email to