[squeak-dev] Namespaces, Packages: Image available for download, screencast.

Igor Stasenko siguctua at gmail.com
Wed Jul 16 00:24:17 UTC 2008

Cool screencast Michael! :)

I have played with it few minutes to look how it doing things.

One thing, which i don't like is how looks a class declaration:

self inNamespace: 'Kernel.Classes'
	createClass: 'ClassCommentReader'
	ofType: 'normal'
	superclass: 'ClassCategoryReader'
	instanceVariableNames: ''
	classVariableNames: ''

to what 'self' refers to?

Do you plan to allow creating classes by subclassing existing ones,
e.g. by sending a messages to them, like in regular smalltalk?

To my understanding, the above should look like:

Kernel.Classes addClass: (
   Kernel.Classes.ClassCategoryReader subclass: #ClassCommentReader
   type: 'normal'
   instanceVariableNames: ''
   classVariableNames: ''

This indicates two separate concepts involved here: namespaces
(Kernel.Classes) and subclassing by sending message to existing class.
And #addClass: here is just a convenience method, which can look like:

Namespace>> addClass: aClassObject
   ^ self addSymbol: aClassObject name value: aClassObject
"or, more smalltalk-ish"
  ^ self at: aClassObject name put: aClassObject

More information about the Squeak-dev mailing list