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".
Joseph,
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!