[Squeakfoundation]An architecture for sustainable Squeaking

Joseph Pelrine squeakfoundation@lists.squeakfoundation.org
Sun, 03 Jun 2001 11:44:25 +0200

At 22:40 02.06.2001 , Stephen Pair wrote:
> > An easy intro (which I - in my modesty - forgot before) is my talk on
> > "Modularizing Smalltalk", presented at the ESUG conference in
> > '97. You can
> > find it at http://www.daedalos.com/~j_pelrine/ under "Lectures".
>I read your module presentation.  It looks like one of the most
>straighforward explanations of these ideas that I've seen so far...it would
>be neat if it were done as Squeak project where the concepts could be
>readily demonstrated alongside the text...but I'm babbling now.

Hey, thanks for the compliment <grin>. I tend to refrain from posting and 
writing because I realize how little I actually know (and how irrelevant 
most of it is). Also, I find that actions (code) speak louder than words. 
I'm happy that some of my musings are helpful to someone, though.

If someone wanted to put this into a Squeak project, I'd be happy to help - 
I just don't have the time myself. It could use some updating, too. I've 
learned a bit more since I wrote that presentation.

>It would be nice to support the co-existence of two versions of a module in
>an image simultaneously.  Is that part of the plan for StSq?

Hmmm. I know I *can* do it, I know *how* to do it (one possible way), but 
it hasn't been on the requirements list. I also wish I had more time to 
write code, or someone who would pay me for doing it (no, I'm not begging 
for a job - just musing again).

>One other thing that would be great (but which presents even more
>challenges), would  be to allow a module to override the behavior of an
>existing class, but have the previous behavior in effect for all modules
>except those that import the module with the new behavior.
>Here's an example:  Suppose I needed a collection to generate a notification
>when things are added.  In my module, I modify #add: to trigger an event.
>Now, when I use the collection in my module, calling #add: triggers the
>notification.  However, the other code in the system (which doesn't import
>my module), when calling #add:, gets the original behavior of that method
>(no event is triggered).
>I realize that this would require deep modification of the message lookup
>mechanism, and how method dictionaries are organized...but, I wonder if any
>work has been done in this area.

I have some ideas about that (see above). The one guy who's been there and 
done that many times over is Dave Simmons.

  - Joseph Pelrine [ | ]
Daedalos Consulting
Email:  jpelrine@acm.org
Web:    www.daedalos.com/~j_pelrine

Smalltalk - scene and not herd!