Polymorphism without protocol dilution
Maurice Rabb
m3rabb at stono.com
Tue Sep 1 16:57:31 UTC 1998
On 8/29/98 at 4:37 PM, alank at wdi.disney.com (Alan Kay) wrote:
> Unfortunately, we forgot that languages are also for communication --
> for being read, not just for being written -- and what we quickly wound up
> with was a Tower of Babel -- as least as far as people who were trying to
> learn from our code were concerned. For Smalltalk-76 we decided that the
> language should be always be readable, and that the extensibility that was
> really needed was in expressing meanings.
At 12:04 PM 8/30/98, Marcus Denker wrote:
>From the Camel Book ("Programming Perl", by Larry Wall, Tom Christiansen &
>Randal L. Schwartz) p.2.
>
>"Languages were first invented by humans, for the benefit of humans. In
>the annals of computer science, this fact has occasionally forgotten.
>Since Perl was designed (loosely speaking) by an occasional linguist, it
>was designed to work smoothly in the same ways that natural language works
>smoothly. Naturally, there are many aspects to this, since natural language
>works well at many levels simultaneously. We could enumerate many of these
>linguistic principles here, but the most important principle of laguage
>design is simply that easy things should be easy, and hard things should be
>possible. That may seem obvious, but many computer languages fail at one or
>the other."
>--
>p. xi
At 12:16 PM 8/31/98, Mike Klein wrote:
[munch many good points]
Once a method name is used in an important protocol it is gone. It is
shame that so many names have been misused, and so many methods are
misnamed. That is why I am so obsessed with creating good names before
they get locked in stone for posterity.
It reminds me very much of the misuse of the electro-magnetic spectrum. It
is a finite space that cannot be taken for granted. I know that from time
to time there is discussion of sub-namespaces. However if I am correct,
this discussion is surrounding the class name space, not the method name
space.
In some sense, even more than in spoken languages, we need to use messaging
words with precision.
>
>Object >> fullyEvaluated
>
>fullyEvaluated
> | result lastResult |
> result := self.
> [(lastResult := result) respondsTo: #value] whileTrue: [
> result := lastResult value.
> result = lastResult ifTrue: [^result]].
> ^result
>
>This is sort of like Mathematica's evaluation loop (without the Hold[])
> [0->[3]] fullyEvaluated => 3
>
>-- Mike Klein
Considering this, like Mayor Quimby, I want to flip-flop. I now like
#evaluated better than #asEvaluated. It seems that every instance of an
'as' method suggests some kind of copy is created. I don't necessarily
intend a copy, just an evaluated version of the object.
Ahhhh Mathematica! Yet another way cool product from good ol' UI.
--Maurice
---------------------------------------------------------------------------
Maurice Rabb 773.281.6003 Stono Technologies, LLC Chicago, USA
More information about the Squeak-dev
mailing list
|