Hi -- On Mon, 18 Apr 2005, why the lucky stiff wrote: > David A. Black wrote: >> The tutorial itself looks good, though the terminology in this area >> continues to be a problem. My understanding is that the most general >> term is "singleton class", and that "metaclass" is a special term for >> singleton class of a Class object. (See Pickaxe, 2nd ed., p. 382.) >> So, for example, I would rename your Object#metaclass method >> #singleton_class, since it applies to all objects (as per RCR 231). > > Sure, I'm aware that "virtual class" is the generic term, while Matz has also > used "singleton class" and "meta-object" to describe these classes used in > tandem with an RObject. > > I only use the term "metaclass" because it is the term predominantly used in > the PickAxe II. While Dave does interchangibly use "virtual class" and > "singleton class", the only term he uses to generically refer to the > construct is "metaclass". > > And I really need to be able to wrap these up in a single word, whilst still > jiving with the PickAxe. I read the Pickaxe differently, especially the box on p. 382. It paraphrases Matz as having said: "You can call it _metaclass_ but, unlike Smalltalk, it's not a class of a class; it's a singleton class of a class." I don't think there's any case where Dave refers to a singleton class as a metaclass, except where the object is a Class, but I could be wrong about that... ? Anyway, when RCR 231 gets addressed, we'll find out for sure :-) (I think I misread the p. 382 thing about "virtual". It does actually sound like Matz is accepting it as a synonym for "singleton", though I avoid it because I don't see anything "virtual" about singleton classes. They're objects.) David -- David A. Black dblack / wobblini.net