Why no executables?
Last updated at 6:41 pm UTC on 12 March 2003
Why are there so few Squeak standalone executables? Every other system I've worked with has lots of them. Squeak guys just seem to send around changesets for everything! Everyone who creates something wants it to become a standalone program in the end, doesn't he?
Perhaps surprisingly to Smalltalk newcomers – the answer in general is NO. Squeak, which derives directly from the original Smalltalk image and concepts, is essentially a guest OS, a world unto itself – thus integration, completeness, easy incremental improvements, and leveraging the image's functionality in one's own creations are prime virtues. Many Smalltalkers develop and use their programs as part of their very own integrated "productivity suite" within their Smalltalk image(s).
Smalltalkers often use a simple file out/file in source code discipline for developing "applications" and will often just begin with a fresh image and file in their source to create a standalone "program" when they must. This is why the question is not as central to most Squeakers (and Smalltalkers in general) as you might expect.
Smalltalk has historically been very strong in "open ended" apps – systems that grow, develop and change dynamically with dynamically changing requirements - and yet require very high uptime and very fast bug fixing (all of which in Smalltalk can almost always be done in the running image). A tightly packed and stripped standalone program is normally a very static entity – changing it, fixing bugs, or adding functionality usually means stopping everything and replacing part or all of the program and restarting.
Smalltalk encourages and facilitates an extremely dynamic style of development and design - both as a language and as an environment, so taking all of this and turning it into a typical static standalone program is not something many Smalltalkers welcome.
However the need to do so from time to time is certainly recognized. Squeak as of version 2.3 has little support for doing the specific stripping and packaging needed to create such a standalone program. Commercial Smalltalks address this to one degree or another. Dolphin Smalltalk has an Application Deployment Kit that strips the image and packages it together with the VM into a single file (plus a few dlls and such); Smalltalk MT actually compiles directly to native code (no bytecodes, no JIT translation) to create an exe; .... – Dwight Hughes
If you do need to create a standalone executable, see FAQ: Squeak executables.