[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