[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 --