Behaving Selfishly? Was: [Re: Self 4,1 for MacOs?]

JArchibald at aol.com JArchibald at aol.com
Fri Nov 5 05:29:13 UTC 1999


=> 11/4/99 9:00:59 PM EST, Helge.Horch at munich.netsurf.de =>
<< I'm very interested in seeing Squeak become a little more Selfish. >>

To present a contravalent point of view~

The interesting interchange that has been going on in the Mailing List 
parallels the broad and deep investigations of Morphic within Squeak. The 
general attraction of such an approach also created much enthusiasm and 
software within Digitalk's PARTs development. The attraction of the Selfish 
approach seems to have its best expression with the view that "it would make 
things much simpler." I would like to argue that this simplicity is an 
illusion. 

In a class based arena, the number of distinct ideas for which an individual 
is required to map a conceptual graph is precisely the number of classes in 
the domain which one is interested in. For example, Smalltalk in an MVC 
Squeak incarnation (in a Mini version), can be understood in approximately 
100 classes (more or less). (I am working with a Mini Swiki 2.6 with a pruned 
image <roughly Dan Ingall's #majorShrink> but which also includes the 
'System-Network' and 'PluggableWebServer' categories which has exactly 257 
classes in it)  So I claim that there are roughly 100 ideas which must be 
known, some perhaps mastered, others perhaps regulated to "over there," "up 
there," or "down there," in order to claim to have knowledge of basic 
Smalltalk. Some of these ideas may be overly complex, I will agree, but just 
the finiteness of the bound of how many are there determines a rough 
conceptual "size" for the set of ideas which an informed developer must 
master.

Even the entire of distributed Squeak 2.6 has only 1089 classes. Again, I 
would assert that this is a rough measure of the number of ideas which a 
developer must master in order to get their arms around the system.

In a Self oriented environment, however, the number of distinct behaviors is 
not governed by the number of classes which form the system, but the number 
of instances. Each instance will have a distinct behavior determined by the 
signature which is "pertinant" to that object. If you argue that "Well, many 
of them have the same (or similar) behavior" I would argue in return that 
"Well, you are just reintroducing the Class concept by doing that."

In any case, in distributed Squeak 2.6, there are 125,678 instances of 
objects. While one can argue about the size of 100 vs. 257 vs. 1089 classes 
as a measure of Squeak's conceptual complexity, it is hard to argue that 100 
(or 257, etc.) is in any way of the same order of complexity as 125,678.

Enough said. I would be interested in hearing the responses of the Self 
proponents.

The numbers I quote come from:

(Smalltalk select: [ :i | i isKindOf: Class ]) size => 1089

| count | count := 0.
(Smalltalk select: [ :i | i isKindOf: Class ]}
  do:
    [ :i | count := count + i allInstances size ].
count
    => 125,678

With best counting,
Jerry Archibald
systemObjectivesIncorporated
--------------------------------------------
A belated Halloween message:
"One day of the year, you get to dress up and pretend that you are someone 
else,
364 days of the year, you get to dress up and pretend that you are you."





More information about the Squeak-dev mailing list