Croquet alpha release(s?)

Joshua 'Schwa' Gargus schwa at cc.gatech.edu
Fri Dec 6 15:11:21 UTC 2002


On Fri, Dec 06, 2002 at 10:44:21AM +0300, Daniel Vainsencher wrote:
> Joshua 'Schwa' Gargus <schwa at cc.gatech.edu> wrote:
> > Unless it stands in the way of progress.  I'll take Traits over complete
> > backwards compatability with ST-80, any day.
> I think the two cases are very different. Point by point -
> Usefulness/power -
> Traits are a general purpose tool that allows to express more kinds of
> design. They might (or might not) be useful for programming any kind of
> system. And their usefulness (if it's real) would translate into better
> factored, more concise systems. This is a huge advantage, because it
> makes every piece of code that uses it more accessible to contributors.
> I put alot of conditionals there because so far it's been used only by
> it's designer (Nathanael) and an expert (Andrew Black). Nathanael will
> hopefully soon release on SM and we'll all be able to judge for
> ourselves.

Fair enough.

> 
> The proposed change for Matrix does change the syntax, allowing the
> writing of methods that no Smalltalk compiler would accept. This code is
> equivalent to somewhat more verbose code - this means that it makes the
> code somewhat shorter, but it doesn't simplify the design. 
> 
> The same speed advantages could be gained using more conventional by a
> special case in the compiler  syntax (like #ifTrue: uses). Andreas,
> please correct me if I'm wrong here. 

This has problems too, like lack of polymorphism in what appears to be
normal Squeak code.  I seem to remember some confusion in the past
caused by ifTrue:/ifFalse:, and it seems at least as likely that 
people would try to modify Matrix.  I'd rather have a visible syntax
extension than more Smalltalk code that doesn't act like Smalltalk.

> 
> Compatibility -
> Traits are designed to be rendered into Smalltalk - they have no syntax
> and no semantics. So the flattened code is Smalltalk. This allows some
> semblance of compatibility. Matrix operations are not valid Smalltalk
> code.

I admit to not having read the Traits paper.  However, I have read here
that they allow for a much cleaner factoring of the Collection hierarchy
than possible with classic ST-80.  Even if each Trait is written in
Smalltalk, you would still have to smush them all together when porting
to another Smalltalk.  The "semblance of compatibility" is just that.

Andreas addressed your other points, so I'll snip them.

<snip> :-)

Best,
Joshua



More information about the Squeak-dev mailing list