A roadmap for 3.9 (Plus, [BUG][FIX] Wonderland in Squeak 3.7)

Jeffrey T. Read bitwize at snet.net
Sun Dec 12 16:14:29 UTC 2004


On Dec 12, 2004, at 8:51 AM, stéphane ducasse wrote:

> A final point:
> Now if we agree about merging back SystemDictionary and SmalltalkImage 
> then I can create a changeset that fixes
> that. But on our side we will need Namespace and SystemDictionary will 
> stay a big giant crappy class.
>

I don't know about the rest of you guys but I liked the fact that 
SystemDictionary and SmalltalkImage were separated into two classes 
which better abstract the actual goings-on; and I kind of loathe the 
bigness and crappiness of SystemDictionary.

I don't know much about this system-level hacking (I took a cursory 
glance at 3.8) but I have observed that there is a pernicious 
temptation in the world of Smalltalk (or at least, Squeak) to tack more 
and more methods onto a class until the number of methods the class has 
is huge. This is because adding a method to a base class (like, say, 
Number) is easy and convenient, and you can't exactly write a function 
or procedure to do what you want to do with numbers because Smalltalk 
lacks procedural or functional semantics (except for BlockContexts and 
such). What I've found is, creating a new class is oftentimes almost as 
easy, and it really helps you to keep organized: for example, when I 
wanted a way to format numbers in a particular way for a Web/database 
application, I wrote a class that verifies and formats the data in a 
particular format, rather than extending Number.

Stef and Marcus's changes seem to reflect this latter approach: they've 
seen the method creep in SystemDictionary and are now trying to move 
all this stuff into a new class. Smalltalk is not C++, and making a few 
new classes isn't going to kill you; if anything, it will break down 
the core system functionality in SystemDictionary into more manageable 
units. It's called "refactoring"; live it, love it. :)

We kind of need to make a decision, either we get behind these changes 
or we won't, either we fold them into Squeak and decide "this is what 
we call Squeak" or we won't. I like the spirit in which the changes are 
conducted; and yet I'm not sure if "this is what we'll call Squeak" 
until some serious use is put on these changes, and we can look at 
their effects both good and bad. And Andreas, if it bothers you that 
much you can always revert back to 3.4 for working on Tweak and fork 
your own changes from there; likely, someone who likes Tweak will 
likely come along and port it to the new Squeak base system that Stef 
and Marcus are working on (like was done to Morphic from Self). It is 
kind of like "adapt or die" out here in Squeakland and it's scary 
sometimes but I think it's really for the best.

--Jeff



More information about the Squeak-dev mailing list