On Jan 4, 2010, at 10:47 PM, David T. Lewis wrote:
On Mon, Jan 04, 2010 at 09:30:45PM +0100, St?phane Ducasse wrote:
david
I would really like to continue the cleaning of SystemDictionary because I do not like the current state of affair.
Now we can either have a namespace class (with only namespace behavior) and a imageManagement class
Now we could have one variable Smalltalk to point to either of it. but we will need another name. Now the point behind the current (which I do not like but live with it is that) it would be cool to be able to do from my image some query into your image). This was about thinking about that that SmalltalkImage current got birth.
Now I would love to get some discussions about a way to - have a class management class = SystemDictionary but with clean contents and cool name => namespace? (which often people confused with having namespace at the language level and it not part of the proposal don't open the box please) - have a cool abstraction over image housekeeping - a cool abstraction about vm information
so if you have ideas please let me know.
Stef,
I think it would be good to step away from the details and just think about the high level objects - what do they represent and what are they responsible for (http://www.wirfs-brock.com/Design.html)?
this is couple of years that I'm teaching oop design :) And I have been thinking about how to solve the social and historical issue around smalltalk since years.
Maybe there would be two or three classes involved, as few as possible. Then write the class comments for the empty classes. Think about it for a few weeks, and if it still makes sense then start the refactoring. But I would not touch a single line of code until the class comments are clearly written and understood.
We already did that. This is the easy part. The problem is the overload of Smalltalk (the global name). Now SmalltalkImage could be called SmalltalkImageManagamentClass :) and its singleton be a global name smalltalkImage and it could be reached via Smalltalk Thinking about it we could avoid a global and have messages (much better) Smalltalk -> points to Namespace instance = SystemDictionary singleton Smalltalk image -> points to SmalltalkImage current Smalltalk vm -> points to SmalltalkImage/VM current Now it means that we get only one real global Which is good if one day we want to have real namespace or can help people like gulik to have them in. Of course this promote Smalltalk image snaphot kind of style Stef