In the article http://groups-beta.google.com/group/comp.lang.smalltalk/msg/63af6a2749af4a17, there's a link to http://www.scottishdevelopers.com/downloads/articles/AWeeBletherAboutSmalltalk.pdf, which claims that Squeak doesn't have Class Instance variables.
I offered a rebuttal (which hasn't made it to googlenews yet) that clearly stated that not only does Squeak *have* Class Instance variables, I was able to determine that there were 22 instances of such in my current image, with the expression:
(Metaclass allInstances select: [:m | m instanceVariables size > 0]) size
And I had no clue how to do that before I spent about 8 minutes browsing the image. But there are the results. :) I even browsed a few of the classes just to see how they were used. Nothing significant, but nice to know they're there, and that the original PDF was wrong.
Smalltalk, for being reflexively introspective, is unbeatable.
"Randal" == Randal L Schwartz merlyn@stonehenge.com writes:
Randal> (Metaclass allInstances select: [:m | m instanceVariables size > 0]) size
instVarNames, sorry. Never do that from memory.
In message 868y47s4vm.fsf@blue.stonehenge.com merlyn@stonehenge.com (Randal L. Schwartz) wrote:
In the article http://groups-beta.google.com/group/comp.lang.smalltalk/msg/63af6a2749af4a17, there's a link to http://www.scottishdevelopers.com/downloads/articles/AWeeBletherAboutSmalltalk.pdf, which claims that Squeak doesn't have Class Instance variables.
further mistakes:-
page 2. Only one image is ever in use.... blah balh. Nonsense. I often run several at once to compare etc.
page 5. Smalltalk supports only single inheritance. Not so; it is fairly simple to add MI and 'Smalltalk' doesn't need to support it as such. No language change is needed. What has been found by experiment (having had a usable if imperfect MI) is that it just isn't worth the effort.
page 5. ... three pseudo-variables... hmm, I think I'd include true false and thisContext but perhaps he's right.
page 12. Class instance varaibles. Looks like he's conmfused not having the word 'classInstanceVariableNames:' in the class definition string with not having class instance variables.
Aside from that it's not a bad intro article.
tim -- Tim Rowledge, tim@sumeru.stanford.edu, http://sumeru.stanford.edu/tim To be, or not to be, those are the parameters.
squeak-dev@lists.squeakfoundation.org