[modules] {Image Shrink and Initialization}

Richard Staehli rstaehli at agency.com
Tue Aug 21 15:22:31 UTC 2001


I appreciate the need for initialization.  Let's make it simpler
than Java/ANSI Smalltalk by requiring a module to be a persistent
immutable object.  We should not care how an object came to be in 
a particular state, only that we can make a mutable copy of that
state.

When you look at it this way, initialization code is just one way to
create a copy of a particular object state and should not be fundamental
to our definition of modules.

> -----Original Message-----
> From: squeak-dev-admin at lists.squeakfoundation.org
> [mailto:squeak-dev-admin at lists.squeakfoundation.org]On Behalf Of Allen
> Wirfs-Brock
> Sent: Monday, August 20, 2001 11:05 PM
> To: squeak-dev at lists.squeakfoundation.org
> Cc: modsqueak at bluefish.se
> Subject: Re: [modules] {Image Shrink and Initialization}
> 
> 
> Dave's experience with initialization pretty much matches mine although I 
> have tended to prefer the constructive approach.
> 
> I think part of the problem people have had adapting to additive modules is 
> that many existing classes libraries haven't been designed with 
> initialization or re-initialization in mind. In many cases Classes (or 
> probably more importantly mutually dependent sets of classes) that needed 
> complex initialization have often been initialized with ad hoc doIts that 
> aren't captured as reusable code.  Even, if the initialization code is 
> placed in a change set or file-in as a do-it it tends to get forgotten 
> because it doesn't show in the browser when looking at the class.
> 
> I think to make additive modules work reliably and repeatedly you need the 
> following support for initialization:
> 
> 1) Initialization code needs to be treated as first class code entities by 
> the language and tools. Team/V did this and this is the reason that the 
> ANSI Smalltalk language definition includes class and global variable 
> initializers as language elements.
> 
[remainder snipped]




More information about the Squeak-dev mailing list