Squeak is an unsuccessful open source project (was RE: Let us
face reality)
Milan Zimmermann
milan.zimmermann at sympatico.ca
Mon Jan 31 23:12:00 UTC 2005
On January 31, 2005 10:21 am, Trygve Reenskaug wrote:
> Milan,
> Yes, I am confident that traits is an important part of our future. Give me
> a few months, and I can (hopefully) be more specific about where I believe
> it fits in.
Juicy bait, will stay atuned -)
Thanks for your comment, Milan
>
> Trygve
>
> At 23:22 30.01.2005, you wrote:
> >Trygve,
> >
> >yes! one note/question - do you think using Stef's (at all) Traits would
> >replace the need for interfaces and/or delegation or do you see something
> >inheritent in having interfaces that Traits would not cover (because I
> > assume Trait's provide what delegation can give us). [Well in any case
> > it's time for me to start playing with Traits, loaded the new version
> > this wekk but not time ...]
> >
> >Milan
> >
> >On January 30, 2005 09:52 am, Trygve Reenskaug wrote:
> > > Hear, hear!
> > >
> > > Subclassing is generally evil with two exceptions:
> > > 1) When subclassing a stable core.
> > > The only way for core classes to evolve is by creating
> > > new classes with new names.
> > > 2) When a developer creates super- and subclass simultaneously.
> > >
> > > The Squeak programming environment needs to be extended with support
> > > for Interfaces. A great deal of what we today do with subclassing
> > > should be done with delegation.
> > >
> > > Finally, the notion of a Component as an object that encapsulates other
> > > objects looks promising for program sharing; more robust than the code
> > > based Package.
> > >
> > > Cheers
> > > --Trygve
> > >
> > > At 11:20 30.01.2005, Peter wrote:
> > > >[...]
> > > >-- another way --
> > > >
> > > >1. Throw away the notion that you can depend on that big, juicy class
> > > >library. You can't, and it's a mistake to try, because it will evolve
> > > >faster than you can keep up and your code will rot.
> > > >
> > > >2. Decide on a very small, stable core. Collection and number classes
> > > > may be a good start.
> > > >
> > > >3. Introduce a proper notion of interfaces for these. Freeze the
> > > >interfaces, either formally or by people avoiding modifying them.
> > > >
> > > >4. Build up from this core. In each package - for example, the MVC UI
> > > > - define and freeze interfaces. Document all the dependencies.
> > > > Ensure each package can be loaded into an image that only has its
> > > > dependencies loaded; and ensure that a package *cannot* alter any
> > > > other package. Yes, this means that nobody except the maintainer of
> > > > the core can touch Object, for any reason, no matter how apparently
> > > > noble.
> > > >
> > > >We will then have a basis for a system that might begin to satisfy (2)
> > > >above. (1) will only happen when another (non-SqC) group of people
> > > > get together and decide to use Squeak for a project. The larger
> > > > community cannot force it.
> > > >
> > > >Note that by making a system that is suitable for parallel development
> > > > by many developers, we have thrown away most of the things that make
> > > > Squeak such a productive system for developers. We have moved away
> > > > from the concept of an exquisite personal computing environment to
> > > > something much more rigid and prescriptive. This may put people off
> > > > adopting such an approach, but I think stability and flexibility are
> > > > mutually exclusive goals.
> > > >
> > > >-- conclusion --
> > > >
> > > >Due to Squeak's origin as a personal computing environment, it has
> > > > never had a way of allowing a large group of developers to work on it
> > > > and re-use each others' artifacts. Current efforts are attempting to
> > > > change that, but there is no appetite for throwing the image away and
> > > > starting again with a small core - a very hard task, made harder by
> > > > the fact that all the development tools are in-image and need a
> > > > larger core. So the architecture of Smalltalk itself is against us.
> > > > Newcomers come in, realise that they can change the world in Squeak,
> > > > do so, and then get discouraged when their code no longer works in
> > > > the next minor version. So they put Squeak away - nice toy,
> > > > unsuitable for me - and go back to perl, or Java, or .Net, or
> > > > something that has a stable core and where their code won't break in
> > > > the next minor revision. And it takes them more effort to develop in
> > > > that environment, but *much* less effort to maintain.
> > > >
> > > >I admire Craig Latta's work on small images that do not contain a
> > > >development system. If we are ever to build a Squeak that allows many
> > > >developers to work in parallel, Craig's work - or something very
> > > > similar - is going to be pivotal, as the *only* way to build and test
> > > > the core parts of such a system.
> > > >
> > > >I'll leave you with one last puzzle: why does majorShrink exist? Why
> > > >isn't it majorGrow?
> > > >
> > > > - Peter
More information about the Squeak-dev
mailing list
|