SmalltalkImage current

Joshua Gargus schwa at
Thu Jun 28 18:41:59 UTC 2007

  On Jun 28, 2007, at 10:09 AM, Damien Cassou wrote:

> 2007/6/28, Norbert Hartl <norbert at>:
>> I read in a posting from Andreas that there are problems
>> with the renaming from Smalltalkk to SmalltalkImage
>> current. I discovered problems with it several times
>> myself.
>> That remembers me that I wanted to ask what were the
>> reason to change it? It breaks a lot of code and reading
>> this list it appears to me that nobody likes it :) So how
>> came it has been renamed?
> I guess it's because Smalltalk is a global variable and global
> variables should be avoided when possible.

This is a good rule of thumb, and will tend to serve well when  
writing new code (and even for most refactorings).  However, for this  
particular case, I have not heard a compelling argument for how this  
change increases the utility of the system; to me, it seems to  
decrease it.

The costs are clear: code is uglier and longer to type, and  
compatibility is lost between different versions of Squeak.  Do the  
benefits outweigh these costs?  Let's see...

One justification for this change might be that it is a step toward  
not depending on that global variable.  This is simply not the case.   
In order to remove 'Smalltalk', a radical restructuring of the entire  
system would have to take place.  If there was a feasible technical  
and political plan for this restructuring, then changes such as  
'SmalltalkImage current' would be the most trivial and preliminary  
parts of the plan.  In other words, we are no closer to removing  
'Smalltalk' as a result of these changes.

'SmalltalkImage current' also early-binds a suggestion about how such  
a restructuring would look.  While it is laudable to aim for a  
loosely connected network of communicating Smalltalk images, it is  
not clear what role images themselves should play in structuring  
object interactions in such a system.  For example, the fundamental  
principles might instead be based on 'namespaces' for code and  
'islands' for objects.  The point is that we don't know; all we know  
is that 'SmalltalkImage current' and 'SmalltalkImage otherImageNamed:  
imageName' are almost certainly wrong.

To me, it seems that the costs and benefits were not carefully  
considered before the changes were made, because otherwise the  
changes would not have been made.

(even though I dislike this particular change, I have tremendous  
respect and appreciation for the efforts of Stephane et. al. to make  
a better Squeak).


> -- 
> Damien Cassou

More information about the Squeak-dev mailing list