PIE please! ( Was: Re: Classes as Packages (was: Harvesting infrastructure) )

Markus Gälli gaelli at emergent.de
Mon Nov 18 17:43:15 UTC 2002


Maybe Robert Hirschfeld's stuff is interesting for you:

http://www.prakinf.tu-ilmenau.de/~hirsch/Projects/Squeak/PerspectiveS/

"PerspectiveS was inspired by the layers idea of the PIE system by Ira 
Goldstein and Daniel Bobrow. The main difference between the two 
systems is that while PIE simultaneously offers alternative designs to 
developers within their development environment, PerspectiveS allows 
design alternatives or variations to coexist concurrently at run-time. 
Such alternatives or variations are active depending on context 
information. "

Markus

Am Montag, 18.11.02 um 18:25 Uhr schrieb Brent Vukmer:

> Daniel --
>
> Weren't you working on a PIE implementation in Squeak?
>
> Daniel Joyce wrote:
>
>>
>> 	Take a look at Traits before reinventing the wheel. I think Traits 
>> are the best tradeoff between MI and SI w/o all the ugliness. Stepha 
>> Ducasse is working on it, IIRC. Very Very Cool Stuff!
>>
>>
>>> - Every selector bound to the abstract behavior which introduced it. 
>>> A behavior can only implement methods for selectors bound to it or
>>> its super behaviors (same as described before).
>>> - Environments representing versions/projects of Squeak containing
>>> new classes/versions and inheriting classes from zero or more other
>>> environments (same as described before).  But now an environment is
>>> also a namespace.  All local and inherited classes/vars of an
>>> environment, as well as their selectors, are visible to methods of
>>> classes in that environment.
>>>
>>> Environments form layers of Squeak.  Processes can run with respect
>>> to different environments on the same image.  Classes of an
>>> environment can be downloaded together or individually.  Class
>>> prerequisites can be downloaded with the class automatically, or on
>>> demand during runtime.
>>>
>> 	
>> 	Sounds like PIE, I posted a message with exactly these ideas a few 
>> weeks ago. Also, it gives us other goodies too, like easy 
>> type-inferencing.
>>
>>> The key to this design, and any package design, I think, is that
>>> class extensions are first class objects (I make them new super
>>> behaviors). When they are not first class objects they act like
>>> changes to a class. Changes is a lot harder to manage and mix than
>>> separate objects, so you want to keep them to a minimum.  In this
>>> design, only true behavior changes need to be managed as changes. 
>>> They are managed as versions in environments that override versions
>>> in inherited environments.
>>>
>>>
>> 	Bingo!
>> 	Look for messages on Traits and PIE, and that old message from me...
>>
>>
>>>
>>
>
>




More information about the Squeak-dev mailing list