SmalltalkImage current

stephane ducasse stephane.ducasse at
Sat Jun 30 11:38:11 UTC 2007

We wanted to have a real namespace class so that we could use it to  
have a better way of controlling
references (for security/classloader like things....) because  
Smalltalk is really weak to that respect.
I still think that having a secure modular but open and reflective  
system is a really important/exciting goal.

So the goal of cleaning SystemDictionary was to convert it into  
Namespace. May be it was wrong, still
having a separate class to deal with class management is really  
needed and subclassing from systemDictionary
was not a good idea, since there is far more than what is needed.

Now retrospectively I think that SmalltalkImage was a mistake and  
that creating a separate namespace class
was the way to go and that SystemDictionary should delegate to it.
Now SystemDictionary as a name for what it does sucks. If Smalltalk  
would point to an instance of SmalltalkImage
then we would not need all these SmalltalkImage current. And we could  
do Namespace smalltalk at: #Point instead
of Smalltalk at: #Point to query class existence.

Retrospectively it was also a mistake for me to invest in Squeak and  
in the future I will see if we can gather a
group of people that just want to have fun building a better system  
but not taking the responsibility of the rest.
Forking is the only way so it should that way.


> Giovanni Corriga wrote:
>> Interesting. Can I ask why you chose to move everything back to
>> Smalltalk and delegate from SmalltalkImage current to Smalltalk  
>> instead
>> of the other way around?
>> Would turning Smalltalk into a full-fledged facade object be a good
>> solution?
> It is one possible solution. The reason I decided against it was  
> that if the natural home for those methods is in Smalltalk and if  
> those methods are primitives (which most of them are) then what is  
> the point in delegating again? Like, for example,  
> Smalltalk>>vmParameterAt: which is a comment and then a one-line  
> primitive. Except that in the versions the one-line  
> primitive is replaced with a deprecation warning, a no-comment, and  
> a delegation to SmalltalkImage. And what's that good for?
> So I decided that since most of the methods in SmalltalkImage are  
> of that kind it'd be more useful to move them back to where they  
> belong and have SmalltalkImage instead of Smalltalk be the facade.  
> It also means that one may be able to get rid of SmalltalkImage at  
> some point (I'm pretty sure Smalltalk is around to stay ;-)
> Cheers,
>   - Andreas

More information about the Squeak-dev mailing list