Two important issues...

Nathanael Schärli n.schaerli at gmx.net
Sun Feb 16 15:17:30 UTC 2003


Hi Goran,

> And then here we are, left with a system we don't understand, 
> with a halfbaked new browser/parser etc. etc. That wouldn't 
> be good. It could all turn out similarly to 3.3alpha (even if 
> it would be partly due to other reasons) where we ended up 
> with a halfbaked system we couldn't move forward.
>
> So... please tell me that I am paranoid and that the above 
> will not happen. :-)

I agree with you and I think it is very important to distinguish between
a nice and very promising research model/prototype and a language
extension for _real_ language like Squeak. At the moment, traits really
are still on the prototype level and we have still a lot more ideas of
how to make an extended and much more poweful version.

Since the model of the current version is relatively stable, it would of
course be possible to take it and implement a productive version of
traits for Squeak right now. However, in order to do this right and
clean, this would require a lot of preliminary work on the language
kernel, the browser, etc. Once this were done, introducing traits would
actually be _very_ simple: Remember that traits are essentially just a
group of methods that can be reused and shared between different
classes. Since ST has the concept of first-class method dictionary, it
is therefore nearly trivial to accomplish that! 

This means that implementing traits in the right way on a clean basis
really does not make the system much more complicated, and everyone who
understands the current kernel can easily understand the extended
kernel. However, this is only partially true for the current prototype
implementation. This has several reasons: I didn't quite now where I was
going when I started and therefore I definitely didn't always choose the
best design decisions. And even if I knew what would be the best thing
to do, I sometimes didn't do so just because it was not worth the effort
for the prototype implementation I needed for my research. However, one
of the main issues definitely was that there are so many places where I
had trouble with existing parts of Squeak. Whether it was the parser,
the kernel, the browser, it sometimes really prevented me from doing
things the way they actually should be.

Of course, I could have spent some time to fix or rewrite these parts
first, but I simply didn't have the time for all of that. And this is
exactly what Stef tried to communicate:

If the Squeakers at one point want to have traits (and all its tools
such as the browser and the realtime code analysis) in their language,
it just is _necessary_ to clean up certain essential parts of the system
first. And this is not because the "guys of Berne" say it, it is simply
because this is the _only_ way of getting a clean, stable and
well-understandable language.

In this case, I'm 100% certain that the nightmare you are afraid of
(i.e., having a half-baked and buggy system noone understands) will
_not_ happen. In the opposite, I'm sure that having a clean basis with
traits would even make everything more understandable.

But at the same time, more than a year of experience in implementing the
current traits prototype in Squeak taught me that just "hacking" traits
onto a messy and unclean basis may be enough for a research prototype,
but it is not at all the right thing for creating a system people
actually use for real work. And again, this is exactly what Stef wants
to communivate when he says that Squeak needs to move a bit in order to
be ready for stable and clean traits, and it is also the reason why it
needs more work than many people think in order to convert the traits
prototype implementation into a stable version. The current
implementation really is a prototype and it is not ready for prime time.

As a bottom line: I'm sure that we can have a Squak with a stable, clean
and well-understandable traits-based kernel, but it just needs time and
work. Things just don't come for free.

Cheers,
Nathanael


> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org 
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On 
> Behalf Of goran.hultgren at bluefish.se
> Sent: Sonntag, 16. Februar 2003 15:00
> To: The general-purpose Squeak developers list
> Subject: Re: Two important issues...
> 
> 
> Standing on the side here...
> 
> A few of the postings from Stephane has probably 
> mistakenly/unintentionally sounded like "Ok, Squeakers - 
> either you do this and this or we will leave...". I 
> understand Jim's reaction, but I don't think it was 
> intentional from Stephane.
> 
> Ok. But there is indeed one important thing to note here - 
> and please - these are just my personal reflections.
> 
> As one of the people committed to Squeak I would not like us 
> to adopt technology that will really affect Squeak to the 
> core - if not the principal people behind that technology is 
> devoted to Squeak and to the community and will "hang on even 
> if the road gets bumpy". What am I trying to say? Well, I 
> would really hate the following scenario:
> 
> 1. The community adopts Traits (still a long term gradual 
> thing of course). Nathanael is AFAIK the principal engineer 
> behind the code. Perhaps this stuff is so complex and to the 
> core of Squeak that few others can help out and/or maintain it.
> 
> 2. Along the way "the guys in Bern" decide that, nah - Squeak 
> wasn't the proper vehicle for our research. It may be due to 
> some choices in the community that doesn't turn out to the 
> liking of "the guys in Bern" - or whatever. And "the guys in 
> Bern" simply jumps off the ship and start using 
> Smalltalk-younameit instead.
> 
> And then here we are, left with a system we don't understand, 
> with a halfbaked new browser/parser etc. etc. That wouldn't 
> be good. It could all turn out similarly to 3.3alpha (even if 
> it would be partly due to other reasons) where we ended up 
> with a halfbaked system we couldn't move forward.
> 
> So... please tell me that I am paranoid and that the above 
> will not happen. :-)
> 
> regards, Göran
> 
> 



More information about the Squeak-dev mailing list