is Missing multiple inheritance in sqeak a drawback ?
andrew_c_berg at yahoo.com
Fri Oct 11 22:57:56 UTC 2002
I've been thinking about this, and what I decided I
want (but sadly don't have time to build) is a browser
that can perform this for me. The second-rightmost
pane in the system browser--it shows message
categories--I would like to have it also show and
manage mixins for me. I could add a variable and then
say that that variable implements my Foo interface,
and it would just generate passthru message handlers
to that object, which I could then manipulate.
Also, I'd like to be able to tell it that I want to
implement the Bar interface (to use the Jave parlance)
and have it generate stubs for all of those methods
for me. Ideally, they would show up in red in the
method pane until I'd actually put in the real
implementation or explicitly said that they would be
handled by the super.
In some ways it is not as clean as extending the
language/compiler with an algebra, but on the other
hand, the language is nice and clean now and much of
what we are really asking for here is IMHO some things
to make the bookkeeping a bit easier. Isn't that what
the browser is all about?
--- Alan Kay <Alan.Kay at squeakland.org> wrote:
> What multiple inheritance is supposed to do is good
> and is needed.
> But, in practice, it is very unwieldy, etc. I think
> there needs to be
> a kind of "mixing algebra" that would make the
> semantics of
> combination clear.
> In any case, I think there is a much better
> way for almost all
> cases, and that is multiple perspectives. I have
> Goldstein's and Bobrow's PIE system (done at PARC in
> Smalltalk in the
> late 70s, and some of the papers are available). The
> current Squeak
> etoy system has a gesture towards this approach. The
> basic idea is to
> make the description of a object be in terms of
> "perspectives" or
> "roles" (for example, that of being an object, of
> being a graphical
> entity, of being a collection, of having several
> roles in a
> particular model, etc.) This is a "sideways"
> approach to what
> multiple inheritance does, but for many of the most
> important cases
> does not require any kind of inheritance at all
> (e.g. what class
> object now supplies in the hierarchy, it supplies as
> a perspective).
> Several nice things about this way of looking at
> things is that it
> doesn't stop one from using inheritance, it gets rid
> of inheritance
> for lots of cases, it makes things clearer, it
> separates concerns for
> complicated objects. Another ramification of this
> POV is that it
> encourages a different way to look at
> parameterization and variants
> without requiring subclassing, etc.
Do you Yahoo!?
Faith Hill - Exclusive Performances, Videos & More
More information about the Squeak-dev