[Newbies] Image vs. source code (was Re: Very Basic Squeak information)

Bert Freudenberg bert at freudenbergs.de
Tue Nov 21 10:22:32 UTC 2006

On Nov 20, 2006, at 23:13 , goran at krampe.se wrote:
> Yes, the image is like a "snapshot" of RAM with live objects in it. So
> an image is not the same thing as for example a jar-file in the Java
> world which is just a bunch of class definitions - not objects.

That's a thing you have to deeply understand. In all object-oriented  
systems that are *not* image-based (which is the huge majority), you  
always start at the Big Bang - every time you run the program, it  
defines classes and creates instances until it can finally start  
servicing the user. Not so in Smalltalk - we make a snapshot of all  
the object instances that are already fully initialized and save it  
to disk. Running that image again just resumes execution wherever it  
was frozen.

Indeed, the last time objects were created "from scratch" in Squeak  
was like 30 years ago! From then, it's a continuous creation and  
destruction of objects inside the system, snapshotted to disk from  
time to time and passed to other people.

The objects in the image are the essence of Squeak, source code is  
just a temporary artifact. You cannot recreate a Squeak image from  
source-code alone, because in source-code only a few selected kinds  
of objects are preserved. Source-code pretty much is just a textual  
serialization of all instances of ClassDescription and its subclasses.

- Bert -

More information about the Beginners mailing list