[From the soapbox:] election details *PLEASE READ*

Adrian Lienhard adi at netstyle.ch
Thu Feb 22 12:16:50 UTC 2007


On Feb 22, 2007, at 08:36 , Andreas Raab wrote:

> Adrian Lienhard wrote:
>> Of course the tools are not perfect. Instead of helping to improve  
>> the situation people tend to complain. Unfortunately this will not  
>> bring us forward. But hey, its not that important, is it?
>
> Isn't it more like: To use traits you need tools, to write tools  
> you need to understand traits, and to understand traits you need to  
> use them?

I don't think you need to understand its internal details to be able  
to build tools. You do not need to enhance kernel but use the  
interface that is there already. E.g., Trait>>#users will return you  
all classes and traits that use a trait. Its just that this kind of  
information is lacking in the UI.

> I've been poking around in the traits implementation myself (fairly  
> well documented in [1], and [2]) and although I have a very good  
> understanding about the metaclass relationships in Squeak < 3.9 I  
> found the traits implementation basically impenetrable. If I look  
> at who implements a method and get ten implementors thrown at me  
> where there used to be one or two, it's just not helpful. I stopped  
> digging into it for that reason - the traits class kernel has  
> become completely inaccessible to me.

Just to make that clear. This contradicts to your mail [3]. Since [2]  
the traits structure of the kernel was simplified. You even looked at  
this and you said in [3] that it indeed helps you to understand how  
this all works. I do not want to start a new endless discussion.

> I'm starting to think that implementing traits using traits may  
> have been a mistake for that very reason. Maybe this should have  
> done as a second step or so.

We first implemented it without traits. But since we wanted to keep  
the old metaclass hierarchy largely unchanged the resulting code  
duplication just made it unmaintainable. Traits seemed like an  
obvious solution to that.

[...]

> [1]http://lists.squeakfoundation.org/pipermail/squeak-dev/2005- 
> August/094009.html
> [2]http://lists.squeakfoundation.org/pipermail/squeak-dev/2006- 
> October/110494.html

[3] http://lists.squeakfoundation.org/pipermail/squeak-dev/2006- 
October/110526.html

Cheers,
Adrian





More information about the Squeak-dev mailing list