From: Wayne A. Christopher
Subject: CLOS speed
Date: 
Message-ID: <19009@pasteur.Berkeley.EDU>
It seems that CLOS differs from systems like C++ in that its main goal
wasn't so much data encapsulation and abstraction as good handling of
generic functions.  In C++, there is no reason to ever use structs if
you have classes, and the more member functions you use the better.  On
the other hand, if you make everything you can think of into a class in
CLOS, and make every function that conceptually "belongs" to a class
into a generic function, you will take a big hit in performance.  Maybe
another way to look at it is that in most object-oriented systems the
classes are the first-class citizens and the methods sort of hang off
the classes, whereas in CLOS it's the other way around.

	Wayne
From: Jeff Dalton
Subject: Re: CLOS speed
Date: 
Message-ID: <1323@skye.ed.ac.uk>
In article <·····@pasteur.Berkeley.EDU> ·······@yew.Berkeley.EDU (Wayne A. Christopher) writes:
>[...]
>Maybe another way to look at it is that in most object-oriented
>systems the classes are the first-class citizens and the methods sort
>of hang off the classes, whereas in CLOS it's the other way around.

I feel that a better way to look at it is to say that in CLOS classes
and generic functions (and other objects) are all first-class citizens.
But, if we think of objects as structure + behavior, some systems
conceptually attach both aspects to the classes while CLOS gives
generic functions more of an independent role.