Path: utzoo!attcan!uunet!zaphod.mps.ohio-state.edu!usc!apple!agate!shelby!neon!neon!gumby From: gumby@Cygnus.COM (David Vinayak Wallace) Newsgroups: comp.lang.clos Subject: Is CLOS Object-Oriented ??? Message-ID: Date: 15 Nov 90 16:05:06 GMT References: <1990Nov15.101847.26285@diku.dk> Sender: news@Neon.Stanford.EDU (USENET News System) Distribution: comp Organization: Cygnus Support Lines: 30 In-Reply-To: marquard@rimfaxe.diku.dk's message of 15 Nov 90 10:18:47 GMT Date: 15 Nov 90 10:18:47 GMT From: marquard@rimfaxe.diku.dk (Morten Marquard) In "normal" object-oriented languages (SmallTalk, C++) an object can exist alone. An object consist of a state and a set of methods, and only the methods can change the state of the object. In CLOS an object can be changed by a generic function, in spite of the fact that the object does not "own" the generic function, eq. a generic function can change the state of an object, without the object itself knowing it is has been changed! Could you please rephrase your question? What does it mean to "own" a method? The actual method invoked by a generic function may be found due to some search, but that is no different than the case of the languages you cite. The method ultimately selected still must have been defined for the class or one of its parents. If you mean that handlers are not all declared or defined lexically within the definition of some class, well, personally I consider that an advantage, but there are people (and languages) that can make a strong argument that it's a bad idea. I have diskussed this with others, and a lot of people do not view CLOS as an object-oriented language. It's ironic that an arriviste language like C++ is considered "normal."