Peeping At The KeyHole

SmallSqueak smallsqueak at
Mon May 1 14:10:55 UTC 2006

Dear Squeakers,

    Ralph Johnson kindly wrote:

> Most Smalltalk classes build on a lot of other Smalltalk classes. 
    My English is not very good. Is there any difference between 
    "on" and "from".

> So, they are hard to understand until you know the classes that 
> they use.

    I thought so too.

> In fact, you can't print out Object and completely understand it, 
> because it has methods like "inspect" that call a lot of other 
> classes.
> It is possible to build the image up from a small base, but it is not 
> done one class at a time. Each layer is partly new classes and partly 
> adding methods to existing classes.
> This is a good thing, not a bad thing, but it makes it harder to learn 
> Smalltalk.

    Is this a rule, that I have to add methods to existing classes?
    Would you please explain why it is a good thing.

    What if the authors of the existing classes don't want 
    anything added to their classes? 

    What would Squeak be like if no one(including the owners) 
    were allowed to add anything to existing classes?

> When an expert teaches Smalltalk, it is like getting a guided tour of 
> a city. We show just the part of Smalltalk that a beginner is able to 
> understand, and avoid the parts that are confusing until they have the 
> background.
> You don't get that by looking at the image. For example, I tell people 
> to ignore the GUI, the compiler, and all the tools at first.

    I would like to ignore more than that.
> Just focus on Collection classes and numbers.

    I like to ignore these as well.

> We spend several weeks with just the core classes 
> before we move on to other things.
> The GUI is way more cool, but I think students learn better 
> if you ignore it at first.

    I like to concentrate on just the cluster of the _smallest_ 
    core classes that they can exist by themselves with no 
    dependency on any other classes. 

    How can I identify this cluster, the "KeyHole" classes?

    I think these are the coolest of them all ;-)

> Unfortunately, one of the disadvantages of Smalltalk over Java 
> is that it is harder to learn on your own.
> It is not hard to learn with a guide, but newcomers don't know 
> what to look at and what to ignore.
> It would help to have a beginners browser that hid most of the 
> classes that beginners want to ignore anyway.

    I know there exists a small 3plus4.image (15KB) 
    and wondering how was that image produced? 

    Is it an art or a science? 
    (Please spare me the ambience ;-)

    I would like to get an image with just "KeyHole" classes.
    Is it possible?

    Your help is very much appreciated.



    It would be interesting to see what can be ignored on the
    VM side to build a VM just to run this KeyHole.image. 

    All external plugins (including WindowPlugin) can be 

    Platform dependent codes may boil down to just 
    printf to display the activities of the objects? 
    (I am thinking of calling this VM, "Peep" ;-)

    InterpreterPlugin and ObjectMemoryPlugin are surely 
    needed, but what about PrimitivesPlugin?

    Of course, it may not be as interesting as playing with the
    robots in a shining polished, cleaned kitchen sink ;-)

More information about the Squeak-dev mailing list