Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!ames!think!barmar From: barmar@think.COM (Barry Margolin) Newsgroups: comp.lang.lisp Subject: Re: Comparison of CLOS and New Flavors Keywords: CLOS, New Flavors Message-ID: <28870@news.Think.COM> Date: 5 Sep 89 23:34:30 GMT References: <4640@lindy.Stanford.EDU> <34538@apple.Apple.COM> Sender: news@Think.COM Organization: Thinking Machines Corporation, Cambridge MA, USA Lines: 36 In article <34538@apple.Apple.COM> malcolm@Apple.COM (Malcolm Slaney) writes: >As near as I can tell.....CLOS is the superset of all existing lisp >object oriented extensions :-). Not quite. There are a numberof features in Flavors that don't exist in CLOS. Symbolics sent a document, "Getting Ready for CLOS", to their customers a couple of months ago (they also gave out copies at the SLUG conference in June). The most noticeable difference between Flavors (old and new) and CLOS is the lack of SELF. CLOS permits methods to be specialized on the data type of more than one argument, so there is no distinguished argument that should be SELF. A corollary to this is that it SELF's instance variables (called "slots" in CLOS) are not automatically made accessible as if they were local variables; the macros WITH-SLOTS and WITH-ACCESSORS can be used to make a particular variable's slots accessible as variables. Various New Flavors facilities that exist only for compatibility with Old Flavors do not exist in CLOS. For instance, the SEND function doesn't exist. CLOS doesn't have any of the DEFxxx-IN-FLAVOR macros. They don't really make much sense when methods aren't associated with particular classes. CLOS also doesn't have wrappers. Many DEFFLAVOR options don't have analogous DEFCLASS options. Some of these are esoteric (e.g. :SPECIAL-INSTANCE-VARIABLES, which I think was created just to make it easier to flavorize Zwei), but others may have been used by many users (e.g. all the :REQUIRED-xxx options). Barry Margolin Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar