Squeak (file system & project structure) newbie questions

Chris Muller afunkyobject at yahoo.com
Mon Oct 24 14:42:44 UTC 2005


> Ok... From what everyone is telling me, I am starting to envision an
> 'image' as something which is synomynous with Java jar files and
> VC++ DLLs, and C# Assemblies... Please correct me if I am wrong.

Ok, I correct you.  :)  JAR files are just a bunch of zipped up class and/or
java files and/or resources in stasis.  In Squeak this is analogous to a SAR
file.  An image, by contrast, is a memory dump of the entire state of the
running system.

You know how, in eclipse, when you launch your workspace it loads your
preferences and custom perspectives from the last time you used it?

Now, imagine if it also included all the code-editor tabs that you had up. 
Further, imagine the text cursor exactly where it was when you left or if you
had some code highlighted, that same code is sitting there, still highlighted.

Further, imagine if you were in the middle of debugging a Java program, you
have the "Debug" perspective open, and you decide to exit the workspace.  Next
time you start eclipse, you could resume debugging.  Just press "Step Over" and
continue debugging right where you left off.

Eclipse can't do this because it stores its various state in a bunch of
different config files (probably xml) and then reparses and loads them when you
start next time.  Tons of details about where you were when you exited are
simply not saved; to attempt do so would make an already slow and bloated
worse.

However, Smalltalk can do it because the IDE is built of regular Smalltalk
objects.  When you save and exit your "workspace" in Smalltalk, it simply takes
a snapshot of all objects in the system, the ones that make up your data, the
ones that make up your program and the ones that make up the ide.  Smalltalk
does not discriminate between any of these.

That's why Squeak starts up 10 times faster than eclipse, its got just one file
to load into memory instead of 57 config files to parse.  And you end up able
to continue debugging right where you left off.

Hope this helps,
  Chris



More information about the Squeak-dev mailing list