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
|