Melvin Smith wrote: > 1) In Perl6 we can tag metadata properties to an object using the 'is' keyword.
Err, no. We can add properties to a *class* using C<is>. To tag objects (which are run-time phenomena) we'd use C<but>. > 2) Also, in Perl6 we can derive a new class from an ancestor using 'is'. Correct. > 3) Thirdly, we can specify that the class is an 'interface'. > > From my understanding 'interface' is a keyword here. Fair enough. No. C<interface> is a standard property that can be applied to classes. So it's really just an instance of usage (1). > I'd simply like to propose using 'has' for properties for 2 reasons: > > 1) The above is, to me, fuzzy to use it for all 3 of the cases. Only two cases. > 2) 'has' is more intuitive for saying "This object _has_ this property". Sure, but C<is> is never applied to objects. Object properties are specified by creating attributes and methods. More generally, it also depends whether you think of out-of-band properties as nouns or adjectives. For example: class Toaster is silver is shiny is hot is little {...} vs: class Toaster has silveriness has shininess has heat has smallness {...} I think the former reads more clearly. > Then, 'is' means something more tangible to me, such as the > item IS a Bird, or the item IS the Client interface. This *is* an area where English is inadequately precise. There are huge differences between: Rover is (possessed of the property of being) hungry. and: Rover is a(n instance of the category) Dog. and Labrador is a (subcategory of the category) Dog. yet we use "is" for all these constructions. > I guess its all about linguistics, but thats what we are here for. Yep. And linguistically (in English at least) we say "is" both when describing copulative relationships (like inheritance) and when ascribing adjectival properties to classes. So Perl 6 does too. Damian