[squeak-dev] Future of Squeak, and outsider's view

Ralph Johnson johnson at cs.uiuc.edu
Mon Jun 29 14:42:19 UTC 2009


On Mon, Jun 29, 2009 at 9:16 AM, David Goehrig<dave at nexttolast.com> wrote:

I agree that Squeak has accumulated a lot of cruft and it needs to be
removed.  This happens to most systems as they age.  But I disagree
with a lot of the detailed things you said.

> Modularity: No component in a complex system should depend on the internal
> details of any other component.
>
> Well if you look in the latest Pharo image, you'll find there's around 38
> methods of the Object class that amount to:
> isFoo
>
> ^ false
>
> Each of these methods violate this principle, not only in spirit but also in practice.

No, they do not.   You are assuming that Object is a component.
Classes in Smalltalk are not necessarily components.  Often a
component is a set of classes.  Sometimes it is a set of classes plus
some methods on other classes.  Components often add methods to
existing classes.

> Principle 12:
>
> Factoring: Each independent component in a system would appear in only one place.
>
> This is probably the single greatest reason for moving towards Traits across
> the board.

Maybe.  This is certainly the purpose of traits, but there is
disagreement about whether traits actually succeed.

>But look at this concept in the context of two seemingly entirely different methods:
>
> Object acceptDroppingMorph: transferMorph event: evt inMorph: dstListMorph
>
> Object hasLiteralSuchThat: testBlock
>
> If you look at both of these methods, you'll quickly realize that they are
> in fact the exact same method!  This is because they have the exact same
> bytecode representation.

Again, I disgree.  They are not the same method.  They are just
methods with the same implementation.  There is much more to a method
than its byte-code.  The name of the method is important.  The type of
the argument is important.  The number of arguments is important.  The
meaning of the the method is important, i.e. what is its precondition
and what do you expect to be true after you call it.

-Ralph Johnson



More information about the Squeak-dev mailing list