DeltaModules vs Envy/Ginsu Class Extensions (was Re: Squeak Starter)

squeak-dev at lists.squeakfoundation.org squeak-dev at lists.squeakfoundation.org
Wed Oct 23 19:06:49 UTC 2002


goran.hultgren at bluefish.se wrote:
> Hi Doug and all!
> 
> Doug Way <dway at riskmetrics.com> wrote:
> > Right, I forgot to mention that.  DeltaModules can also add/remove instance variables, etc.
> Since people seem to have a problem grasping DMs I just wanted to be
> picky. ;-)

Since people tend to not make explicit the difference between wishlist
items and green tests ;-) I will - this one is a wishlist item. Not
implemented.
 
>> Yes, this is exactly the problem I was thinking of when I said "version number 
>> worries".  This seems like it could be a major problem.  I'm not sure how things like 
>> String>>asMorph were intended to be dealt with when the image is partitioned... 
>> perhaps most of them would need to be removed completely, requiring a lot of 
>> refactoring, so that we don't have branches all over the place?
One of the conceptual problems I have with DMs is that handling class
extensions (I think your class should also do X) is mixed with modifying
classes (not a + b, a * b). Note that this is also one of the problems
in ChangeSets. 

This is not a big problem in systems that claim weak semantics - fileins
have the exact same issue, but since a filein doesn't "tell you" it has
any specific meaning, you don't expect it to fill any particular role
very well, except "This will put code in your image, overwriting".
ChangeSets are mainly for tracking time-related bunches of changes, and
they tell you that by automatically storing things in the same CS until
you change. This works pretty great. But ChangeSets can also be edited
(using the change sorter). This is wonderful to clean up your history
before presenting it to the world. But - some gullible users might take
this editability as a claim that "I (CS) am a way for you to maintain a
certain piece of code", at which point, if the code is somewhat complex
and has several parts, horror stories begin to emerge (hmm, did I give
myself away? ;-).

DMs, claiming to handle versions too, might be dangerous to more
practical people than me, too.

> > Envy/Ginsu-style modules don't have this particular problem, because the additive-only Class Extensions don't require the base module to "branch" (change its version number).
> Exactly.
Good point.

> > - Doug Way
> >   dway at riskmetrics.com
> 
> regards, Göran

Daniel Vainsencher



More information about the Squeak-dev mailing list