Classes as Packages (was: Harvesting infrastructure)

Nathanael Schärli n.schaerli at gmx.net
Wed Nov 20 15:47:48 UTC 2002


Hi Anthony,

> What do you think of 
> getting rid of classes and just using traits with accessors 
> as I have explained.

Well, I agree with you that decreasing the number of different concepts
and making things more uniform has something nice to it. This is part of
the reason why I mentioned the experiment of "getting rid of
inheritance" in the future work section of the Traits paper. However,
since Squeak (rsp. ST-80) is an old language with many different users
and a enormeous amount of existing code, I think that backwards
compatibility is also an important issue. 

> I'm proposing that we replace instance variables with accessor 
> methods,
> so all behaviors are just collections of methods and equally reusable.
> It's like shifting the state responsibility from the behavior to the
> method, which I think is appropriate since even local senders don't 
> care

I definitely like the idea of replacing instance variables through
accessor methods. This one thing about SELF I always liked. However, I
have to think more about how a concerete implementation would actually
work (performance, etc.)

> (1) remove classes and single inheritance from Traits, and

This is a point where I am concerned about the backwards compatibility.
If we do that, this means that "super" does not exist anymore.
Therefore, much of the existing code had to be rewritten and it would
not be possible to write "traditional single-inheritance" code anymore. 

As I said, from a theoretical/conceptual standpoint, this may be the way
to go. But I'm not sure whether we are already there and whether the
Squeak users would really like this. In addition, I have some more ideas
about improving Traits (stateless MI, or however we want to call it) so
that the gap between what we have now and what we would have if we took
away inheritance would be less big. But that needs some more time to
think about...

Nathanael



> -----Original Message-----
> From: squeak-dev-admin at lists.squeakfoundation.org 
> [mailto:squeak-dev-admin at lists.squeakfoundation.org] On 
> Behalf Of Anthony Hannan
> Sent: Wednesday, November 20, 2002 4:52 AM
> To: squeak-dev at lists.squeakfoundation.org
> Subject: RE: Classes as Packages (was: Harvesting infrastructure)
> 
> 
> Nathanael Scharli <n.schaerli at gmx.net> wrote:
> > Anthony,
> > I completely agree with you. The way 'super' is bound really is the 
> > crucial difference.
> 
> I never got this message earlier (I don't know what's wrong 
> with my mail).  I'm so glad we agree.  What do you think of 
> getting rid of classes and just using traits with accessors 
> as I have explained.
> 
> Cheers,
> Anthony
> 




More information about the Squeak-dev mailing list