[modules] {Image Shrink and Initialization}

Jecel Assumpcao Jr jecel at merlintec.com
Tue Aug 21 17:51:50 UTC 2001


On Tuesday 21 August 2001 11:22, Richard Staehli wrote:
> 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.

This is the style I prefer, as I have mentioned in other messages. But 
there are problems here as well.

If the "width" instance variable of a persistent object is 320, what 
does this mean? Could it really be 1/4 of the screen's horizontal 
resolution when the programmer created it? In that case it might have 
to be changed to 150 to work on my system.

You might argue that the program was broken in the first place and 
should be rewritten to explicitly maintain the proper invariants. But 
in practice most people come from a programming background where they 
depend on late initializations to get the job done. See 
http://www.colorforth.com for an extreme example.

As I have already said, both styles have their merits and we should 
think about them very carefully. Since I have adopted the "persistent 
objects, pre-initialized" approach I am working on solving its 
problems. But it isn't as simple as it seems.

-- Jecel




More information about the Squeak-dev mailing list