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

*To*: common-lisp-object-system@SAIL.STANFORD.EDU*Subject*: ECOOP Reaction*From*: Dick Gabriel <RPG@SAIL.STANFORD.EDU>*Date*: 06 Jul 87 1130 PDT

As Kempf points out, there was some negative reaction to CLOS at my presentation, but most of it was directed at the lack of encapsulation and protection, multiple inheritance, and the use of CLOS as a knowledge representation system. I might point out that most of the people who raised objections during the presentation came up to me afterwards to get a hold of the spec, the code, etc. I want to make clear what it is I said about the CPL computation: I stated that the effect of the CPL algorithm was difficult to understand, not that the algorithm is difficult to understand. The difference between the two is that an algorithm can be easy to grasp while a characterization of it suitable for a programmer to understand is not available. In contrast, the algorithm for computing the strongly connected components of a graph is easy to understand as an algorithm, and it is easy to understand what it does because the definition of a strongly connected component is easy to understand. The CPL is understood to be a total ordering on a class and its superclasses, but the only characteriztion of it that I know of is that the CPL is the total ordering computed by the algorithm. That algorithm is understandable at the operational level, but there is no easy characterization of it. What would constitute an understandable characterization of the CPL? Here are some examples of approaches: 1. We could have a set of constraints on the classes such that the CPL is the unique total ordering satisfying those constraints. 2. We could have a set of inheritance situations such that when two graphs of classes were inherited in particular ways, the new CPL was predictable. For example, suppose we have 2 graphs, G1 and G2, with no common classes except for the class named T and suppose that C1 and C2 are the bottom-most classes of G1 and G2, respectively; then if a class C is a subclass of C1 and C2 in that order, the classes in G1 precede the classes in G2, and the classes in G1 are in the same order as they are in the CPL for C1 and similarly for G2; T comes last. But we do not have such a characterization; Moon's constraints are close to it, but not good enough. Possibly we can search for the characterization. Remember that at the Palo Alto meeting in March, smart people like Scherlis could not understand the effect of the algorithm, although they (and he) thought the algorithm was simple. Intellectual honesty compels me to point out things like this when I address an audience. I suppose it annoys people when I do that, but maybe we should give some thought to designing a language such that there are few oppurtunities for ``Gabriel's inevitable critique.'' -rpg-

- Prev by Date:
**Two questions and two comments** - Next by Date:
**First Try at Terminology** - Previous by thread:
**Re: Two questions and two comments** - Next by thread:
**First Try at Terminology** - Index(es):