Hi -- On Wed, 20 Apr 2005, Jim Weirich wrote: > > David A. Black said: >> I have some trouble applying the quotation to Ruby, since classes make >> but don't determine the properties of objects, > > I think you misunderstand "properties". It is true that the class does > not (directly) influence the attributes/instance variables of an object. > But properties also include the methods of the object, which are directly > influenced by the class. I was actually thinking of methods, mainly. And you've swapped in a new wording :-) I'd go along with "directly influenced", but not "determined"; that is, an object's "birth class" certainly has a role to play in the object's method capabilities, but is not a determinant. > Actually, the objections regarding "making objects" and "instance variable > properties" goes more to saying that the singleton classes of classes are > not /classes/, rather than saying they are not /meta/. I must have garbled something I said somewhere along the line; I definitely would never (knowingly :-) suggest that singleton classes are not classes. See below.... > What I was trying to focus on is the tendency for folks to call /any/ > singleton class a metaclass. I was just arguing that not all singleton > classes are metaclasses. I guess we can continue to discuss whether some > subset of singleton classes might be metaclasses. What I got from the quotation, and your gloss on it, was that "metaclass" is recognized (outside of Ruby) to mean a factory for classes, and that therefore it could be used to refer to a Class object's singleton class. I would argue the opposite: singleton classes, in every case, are non-factories, so to the extent that "metaclass" might suggest factory-ness (i.e., factory of Class objects), it could be misleading -- not only as a general term for "singleton class" (which we both agree it isn't), but even as a specialized term for "singleton class of Class object". Correspondingly, if there is a "template for making cookie cutters themselves" (to paraphrase) in Ruby, it would be the object Class itself. So Class could be called *the* metaclass :-) David -- David A. Black dblack / wobblini.net