From: Chad Fowler Date: 2003-11-22T03:50:44+09:00 Subject: Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) On Sat, 22 Nov 2003, Mark Wilson wrote: # My own views on interface crystallization: # # 1. It should not be done in-line, but rather through a separate express # creation of an interface table. [Note: one of the nice things about the # way Ruby (and other languages) does things is the inline creation of # dispatch on type tables for generic operators through the use of # classes in an object system. It would be bad to complicate this and # other elements of Ruby's human interface by also putting interface # "contracts" inline with Ruby's current (usually very comprehensible) # class declaration system.] This is a wonderful idea. Let me restate it to make sure I understand it. Just as you can do the following: class Person def greet(other_person) other_person.to do say "hello" end end end class Person def some_other_method end end ...(I've defined class Person somewhere, but I can always open up the class again and define something else in it): it would be wonderful if you can *either* inline it *or* make it external in a similar fashion. I'm not sure what that would look like, but for those of us who don't want to use this feature, we could make sure that any "interface" declarations are contained in separate files and can be excluded when we program. I think the ability to do this would make the whole idea a lot more palatable to a lot of us. Chad