[Cuis-dev] Why not to save the image?

ken.dickey at whidbey.com ken.dickey at whidbey.com
Wed Aug 2 06:50:42 PDT 2023


On 2023-08-02 01:22, Szabolcs Komáromi via Cuis-dev wrote:

> I just wondered whether something peculiar to Cuis warrants this 
> definitive statement. But as turned out the book has a strong implicit 
> engineering perspective and saving the image doesn't have any hidden 
> side effect compared to the other Smalltalk implementations. Hilaire 
> added my comment to the end of the code management chapter of  The Cuis 
> Book. Hopefully this makes the validated but implicit engineering 
> standpoint of the book more explicit for future readers.

The experience of using image based languages (Smalltalk, Actor, ..) is 
that the ability to save and reuse an image, over time, leads to cases 
where one cannot reproduce a system from source.  This is bad for 
sharing and bad for commercial products, where source control is 
important to maintaining an investment.

In one project I was working on, I noticed development images getting 
out of sync and people "debugging" to find image differences.  This 
despite source control.  The fix was to disable saving images!  People 
hated me for about a week for doing this, but realized that starting 
from versioned sources and a fresh image each day meant that they really 
did save their work each day to the version control system and it saved 
us, as a group, much time.

This became especially important when we trained up a sibling team in 
Taiwan.  Each day we saved our stuff in the US and wrote up what needed 
to be done next.  The Taiwan team worked during our night do do that and 
the next morning that stuff was magically done and we had another 
chunk/step to work on.  Distributed development can work essentially 
24/7 if you have good communication and can prime the pump.

This particular project was done in Actor -- basically a Smalltalk IDE 
but with C syntax -- no relation to Actor Semantics.

My experience is that image save based development leads to accidents of 
history -- times when one ends up with images which may work but are not 
easily reproducible from source.  One way to avoid the problem is to get 
in the habit of _always_ reproducing from source.

Like eating well and exercising.  You can have a milkshake once in a 
while, but have one with every meal you are in trouble.

Best to establish and keep good habits.

$0.02,
-KenD


More information about the Cuis-dev mailing list