[squeak-dev] Re: Unload Traits script (response to edgar)

Trygve Reenskaug trygver at ifi.uio.no
Fri May 16 15:05:14 UTC 2008


Yea and no. I have extended the parser so that methods (including 
traits) can access dynamic variables. The current version accepts code like:
    *play1*
        <Roles: #(Arrow12)>
        self displayLarge: '1'.
        Arrow12 play12.
where /Arrow12 /is a dynamic variable. It can be seen as an alias for an 
object,. The binding occurs at run time by a dictionary lookup; the 
dictionary is called a /context /and lives on the stack. The role traits 
are always executed in such a context. The roles appear at run time as 
context keys. This means that the same object can play several roles at 
the same time by simply being bound to several keys. Conversely, the 
same role can simultaneously  be played by different objects since there 
can be several contexts on the stack at the same time.

Many programmers find it hard to think in terms of classes AND objects 
at the same time. I try to build an IDE that makes the bridge from class 
to object as short and intuitively simple as possible. (I also have to 
hide the fact that the context lives on the stack).

Cheers
--Trygve


On 16.05.2008 16:07, itsme213 wrote:
> "Trygve Reenskaug" <trygver at ifi.uio.no> wrote in message
>
>   
>> It was a major breakthrough when I realized that a role should be coded
>> as a trait, the trait defining what the object does in the context of a
>> structure of collaborating, role playing objects.
>>     
>
> This mapping of role to trait is quite intuitively appealing.
>
> However, since
> - traits are applied statically, not dynamically
> and
> - trait callbacks to the object (required methods) are hardcoded in the 
> trait definition itself with no way to rename (only alias)
>
> Wouldn't it be quite difficult to handle the more general cases of dynamic 
> roles, and of multiple roles of the same role type (e.g. I am a programmer 
> on projects p1 and p2)?
>
> In these casees would you revert to using separate role-objects? e.g. a 
> Person class with a iVar that is a collection of role-like objects, one for 
> "programmer-on-p1" and one for "programmer-on-p2"?
>
> Curious - Sophie 
>
>
>
>
>
>   

-- 

Trygve Reenskaug       mailto: trygver at ifi.uio.no

Morgedalsvn. 5A         http://heim.ifi.uio.no/~trygver

N-0378 Oslo               Tel: (+47) 22 49 57 27

Norway

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080516/ae2168ad/attachment.htm


More information about the Squeak-dev mailing list