Peeping At The KeyHole
smallsqueak at rogers.com
Mon May 1 14:10:55 UTC 2006
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
> 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
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
> 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