Stefs roadmap for 3.9, time to get it nailed down

Martin Wirblat sql.mawi at t-link.de
Thu Feb 24 21:46:30 UTC 2005


Hi Nathanael!

Just to make this clear, I very well understand that the proposed 
inclusion of Traits in mainstream Squeak is aimed to serve all users of 
Squeak and not only researchers. I didn't talk of research items, 
instead I wrote "researcher's" items. Perhaps I wanted to express with 
the quotation marks that you are not only researchers but of course 
members of the community too ;)

Let me further assure you that I know what hard work you and others have 
invested in Traits and I am also quite sure that from an implementors 
point of view we are talking about high quality work here.

Unfortunately this has often an unexpected drawback likely being 
overlooked. Mostly everyone who wants to critically discuss Traits the 
language extension, hesitates to do so, knowing about the hard work you 
spent and the hopes you associate with it.

Really unfortunately adding to this is Stephane's bully behavior, so 
that a discussion about the pros and cons of Traits is endangered to 
become very single sided, if it starts at all.

To break this silence I jump-started the discussion with an abstract 
criterion which I consider a good test for a bigger language extension 
to Smalltalk.

So if you say humans tend to stick to what they know and you would wish 
to the opposite, my reply is that programmers seem not to be humans - I 
see languages all over the place which are, as I called it, 
concept-overloaded, growing with every new version.

My wish would not only to have an open mind but an "over mind". 
Focussing on some specific thing and becoming enthusiastic may lead the 
open mind to neglect the bird's eye view asking the question:

What do I gain in the end?


A final word to the ongoing discussion. The question:

Can I switch off Traits and work as if it were not there?

is not the important one. After all we don't want to incorporate Traits 
just to switch its existence for the programmer off, because that would 
mean that we shouldn't put it in at all. This is absolutely clear in 
case there are no core libraries with Traits. If there are, we get the 
performance hit from the inst var setters and getters. Given that we 
have the standard core libraries already, why replace them with slower 
ones when the browsers are "flattening" the traits?

So the more appropriate question is:

Can I program significantly better with Traits or not?


Some very final words about my preliminary reasoning so far:

My judgement about this more appropriate question was based on a purely 
theoretical basis. I assumed that we could have a traitified Collection 
hierarchy and I guess Collections are by far the best example of where 
to use Traits, because they are deeply hierarchical and this hierarchy 
is also the best example of the "inheritance-maze".

But thinking theoretically I could not imagine if Traits makes it really 
easier to understand the code or disentangles the "inheritance-maze" 
somewhat or not.

Furthermore this Collection hierarchy is already there! It is my 
assumption, that unless I program a similar hierarchical monster like 
Collections I don't gain much from Traits. I even fear that Traits may 
lure into programming hierarchical, where a flat structure combined with 
the normal composition would be the better way to go.

Conclusion: It is surely the right thing to produce somehow an image 
with Traits, be it the "Berne edition" as a recurring fork or not, so 
that people can study Traits practically, doing actually a project with 
Traits.

And then we should hope for an open discussion.

Regards,
Martin


Nathanael Schärli wrote:
> Hi Göran and all
> 
> 
>>... and if we hurry up we might be able to get this included
>>in 3.9 or else it will be in 4.0 - but that doesn't really 
>>matter, now does it? Because the above steps seems something 
>>we *do* need to do.
>>
>>Ok, just a suggestion - how does that sound? Stef? Nathanael?
> 
> 
> I fully agree with you. It's very important to make sure that Traits (as
> all the other major tools/improvements) are made available (at least as
> a beta) so that the "evaluation crew" (and anyone else who is
> interested) can see it and decide whether it should go into the image.
> 
> Therefore, I also agree with Goran that following this process is
> something we do need to do and if that means that it will postpone it to
> Squeak 4.0 rather than 3.9, so be it.
> 
> But at the same time, I can also understand Stef's concerns. Pushing
> traits ahead means a lot of work for him and his students (such as
> Adrian and me ;-). And because traits have a fair amount of dependencies
> on the kernel, it requires a lot of work just to keep it compatible with
> each new version of Squeak. So, I can really see why he would like to
> have it to be in the image as soon as possible.
> 
> What makes this worse is that some people really do not understand the
> difference between research and improving Squeak for the community
> (which we are of course also part of)! When we invented traits three
> years ago, this was exciting research and that's why we implemented a
> prototype that allowed us to do all the cool experiments that were
> necessary from a scientfic point of view. But this is where the research
> aspect ended and we could have stopped right there without loosing
> anything as far as fun and research is concerned. However, we didn't
> because we thought that traits could be a very useful improvement for
> the Squeak language and we wanted to make it available to the community.
> This is why we went throught the hassle of cleaning the kernel and
> implementing a clean version of traits on top of it, even though this
> was really "boring engineering work" and was taking away time that we
> could spend on cooler stuff!
> 
> Regarding all this (and knowing Stef's French spirit ;-), even I (a
> "nice" and calm Swiss) can somehow understand that Stef freaks out when
> he reads that traits are a "research item" that only serves the purpose
> of satisfying the urges of some academics.
> 
> As a last point, I would like to say that I somtimes wish that people
> would be a bit more open-minded regarding their judgments of
> improvements to the Smalltalk language. I think it is very important to
> keep in mind that humans have a tendency to idealize what they are used
> to, simply because this is what they know.
> 
> Cheers,
> Nathanael




More information about the Squeak-dev mailing list