[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

dealing with 1+2 comments

You've done a good job organizing replies to the "Written Responses to
CLOS 88-002".  One item, howver, hasn't appeared in the mails recently 
and I wonder how it will be handled: Beckerle's forwarding of a criticism
that CLOS doesn't offer "information hiding".

Several replies seemed to contradict one another about whether something
was hard or not, and what *really* was at issue, but I don't remember a
coherent reply emerging.

Since this is a rather high-level (or "fundamental" if you will) question,
it calls for a "high level" reply.  To me, the overriding factor is that
CLOS is a descendent of SmallTalk; and both its direct ancestors -- LOOPS 
and FLAVORS -- were descendents of SmallTalk.

Notwithstanding the problems that Wegner's paper at the last OOPSLA
provoked, I would say that here are two major, opposing object-oriented 
paradigms around -- the Smalltalk class-like ones with inheritance, and 
the Actor prototype-like ones with delegation -- and CLOS is definitely of 
the SmallTalk persuasion.  This particular aspect of SmallTalk -- the 
openness of class inheritance, as opposed to the guarded "encapsulation" 
implicit in actors -- is deeply ingrained, and to amend it would require 
more research (which might not even then reach a satisfactory conclusion).

I think it is enough that CLOS took on multiple inheritance, and at long
last(!) has come up with a consensus on how to make it work.  It certainly
is different than multiple inheritance in many other OO systems -- where 
features inherited from two different ancestors may be "adjoined" rather
than "unified", and where method-combination is a perversion.  

Thus, in my view, the presence of Flavor-like multiple-inheritance
and the absence of special encapsulation mechanisms means that CLOS
has deviated from its spiritual roots just enough to fit the current
needs of the Common Lisp community.

-- JonL --