On Tue, Feb 17, 2004 at 11:39:07AM -0500, Dan Sugalski wrote: : At 8:30 AM -0800 2/17/04, Larry Wall wrote: : >So perhaps we need a different word than "does" to indicate that : >you want to include the Dog interface without including the Dog : >implementation. Perhaps we can do that with "is like(Dog)" or some : >such if we don't want to Huffman code it shorter. Then people who : >believe only in Interfaces can use the same underlying system-defined : >Roles without compromising their Java-bedeviled value system. :-) : : You could, I suppose, use "implements" to note that a class provides : the role all by itself, and "imports" to note that it brings in the : role from an external source.
I think you are using the word "role" to mean "implementation". I prefer to use "role" to mean both interface and implemention. But I like your idea of using "implements" when you want to force yourself to override the complete implementation, and it will make Java programmers comfy. However, I still prefer "does" for pulling in the complete role including both interface and implementation, in part for Huffmanly reasons, but also to get the programmer concentrating on the actual semantic relationships rather than the mechanism. In other words, for the same reason Perl changes other C-ish words to more natural English words: C Perl ------ ------ switch given case when break last continue next Plus I think we should hold the "imports" notion in reserve for talking about how to pull in bits of modules. It's okay to think of "does" as a kind of fancy import or include, but I'd rather bias the verbiage in favor of a more abstract view. Larry