Interesting project to modularize Squeak

Ralph Johnson mentions an interesting project from Pavel Krivanek to modularize Squeak. For example, there's a KernelImage that excludes the GUI (it's 2.8 MB compared to 15 MB for the full 3.9 release). The modularized images are created automatically from the complete image, by Squeak code.

It's been awhile since we discussed Squeak, which remains as far as I can tell, an interesting project worth keeping an eye on.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Squeak people

I find it interesting that one so famous as Ralph Johnson is hacking along as release engineer on Squeak. I'm really impressed in general that the long-term Smalltalk veterans take leading roles in the Squeak community and work to drive things forward. They've built quite an attractive and enviable community.

modularization is good

Occasionally I tell folks (like coworkers) how cool Smalltalk is, and I give them a short run down which includes a caveat that Smalltalk "the language" tends to come coupled with a Smalltalk "runtime-as-image" distribution format, which takes some explaining.

(The image thing is a little alienating to folks used to, say, C or C++. It seems to represent a form of baggage that looks like a dependency in deployment that's hard to cost. Someone who wants to write a server in Smalltalk can't easily decide what effect the image basis has.)

Anyway, my main message is: awesome! Modularization is a good sign someone cares about some dependency control, and about satisfying potential customers who want light (lite) versions of things. Lite seems good for showing folks a ramp they can try with committing too much.

re: modularization is good

Have you looked at Dolphin Smalltalk? In most of the systems people use: we try to build the software, see something we want to use, keep adding/removing components until we finish it. Then we run the tools to build an executable.

In Smalltalk you start with all the components up front and (at least in Dolphin) when you are ready to deploy you just click "deploy". The image figures out what you didn't use and strips it out. It also builds DLL's for the components you used and makes a windows install script to check if they are on the target system before installing, etc.

For me that just feels more natural. Let the software do as much of the work as possible. :)

stripping from dolphin smalltalk

I've heard of Dolphin Smalltalk, but not used it. In a short search now, I saw a blurb about Object Arts offering Dolphin at three price points, all generating executables looking like normal Windows apps.

For folks I work with, the immediate questions would be: 1) Is one of the price points ... zero? and 2) Can you debug and build on Linux, and generate a normal Linux app? (I haven't worked before for anyone who did Windows servers.)

I'm often enjoined -- say in public communities like this one -- to "let the system do it" or "trust the compiler" or something similar. And I'm totally in tune with this vibe. But in work contexts, I'm often the guy who gets assigned any problem that involves divergence from expectations in the system or compiler. (I.e., it's my job to cope with nonzero difference between what's supposed to happen and what actually happens. At times difference can be very small, but just as troublesome as a bigger difference.)

For such reasons, it's nice when tools are open enough to lift the covers and make tiny changes as necessary, to satisfy a work injunction to get an exact result instead of an approximate result. The fear of inability to get an exact result can stop folks from using tools that are wonderful in most respects, but closed in some places.

No, Dolphin is a windows

No, Dolphin is a windows only product. But I also meant in my post that this sort of thing is one of the advantages of the image based concept. Something like this could be done for squeak as well, and I expect it probably will be once the advanced new JIT-ish Exupery is finished.

deployment images

I wonder what happened to the old OTI Smalltalk technology

BTW, the smallest image I have ever made/used is about 20k. Prints hello world on the screen. Even including the VM it was smaller than the C tty version. Jeff McAffer

And where would we be without the type system conversation

If you could figure out the type of the image then everything changes. We have a type system for Smalltalk, and we have a program that can trace an application and build a customized image containing it. Our smallest image (without being real image hackers) is about 45K. Ralph Johnson

Interesting JSR to modularize Java

JSR 277: JavaTM Module System

Java Archives (JARs) are widely used as both the distribution and execution format for Java applications. The JAR format dates back to the mid-1990s, and it has not scaled particularly well in either of these roles. JAR files are hard to distribute, hard to version, and hard to reference in general.

Sorry, the bot made me do it :-)