SmalltalkImage current

Andreas Raab andreas.raab at
Fri Jun 29 08:04:59 UTC 2007

stephane ducasse wrote:
> you can find the complete motivation in the archives but in a nutshell 
> the point
> was that Smalltalk is a namespace and that over time it agglomerates
> a lot of extra behavior (sometimes junk) that has nothing to do with 
> namespace management.

Of course the other way to look at it (which is more in line with 
reality) is that Smalltalk is a representative for the environment and 
as such includes both a name space and a set of attributes and methods 
that relate to system-wide behavior. Such as platform information, vm 
parameters, GC settings, startup/shutdown lists etc. which may be 
delegated to particular places which implement them but where the 
"natural" home (the place where the writers of the code wanted it to be 
found) is in Smalltalk.

That was the prevalent opinion before the cleansing jihads started. At 
the end of which we are in my opinion in a worse state than where things 
started: More (and duplicated) code instead of less, no improvements in 
clarity or understanding (it's just one utility class replaced by 
another, more obscurely named one), depracation warnings and porting 
woes. And for what benefit exactly? Saying "SmalltalkImage current 
platformName" instead of "Smalltalk platformName"? I really urge people 
to go back to 3.4 and compare Smalltalk back then with Smalltalk + 
SmalltalkImage today to see if the price is worth paying.

I eventually got so tired about the whole mess that was left behind that 
in Croquet I simply moved everything back from SmalltalkImage to 
Smalltalk and only left delegation stubs in SmalltalkImage. So that if 
you want to type your fingers bloody saying "SmalltalkImage current 
platformName" be my guest; but really I won't make you. And it will be 
compatible with other versions (except of course the latest 
versions but that's not my choice to make).

   - Andreas

More information about the Squeak-dev mailing list