Fear and loathing of the "perlification" of Smalltalk

Alan Kay alan.kay at vpri.org
Fri Sep 7 17:44:04 UTC 2007


An important thing to consider with implicit self is that since

       (self self) = self

it is very easy (and occasionally important) to be able to mix an 
explicit self prefix in code where it helps, with places where it is 
much clearer to omit it.

Cheers,

Alan

---------

At 01:58 AM 9/7/2007, Blake wrote:
>Jason,
>
>         Of course, the problem with e-mail lists is that sometimes (often?
>always?) one's sarcasm is completely and utterly missed. Which, of course,
>encourages one NOT to employ it. But as hypocrisy is the tribute vice pays
>to virtue, and let's just say a very large tribute was paid here.
>
>>>What's the point of having a context if you don't use it?
>>
>>Context means having to keep extra things in your head and it makes
>>the code more complex.  Didn't the Perl experiment teach you anything?
>>;)
>
>         This I was serious about. Why should an object's code need 
> to reference
>its own context? If it's too hard for YOU to keep track of your object's
>context, how do you expect CLIENTS to do so?
>
>>>         self position: (self position + newPos - self center)
>>>asIntegerPoint.
>>>versus:
>>>         position: (position + newPos - center) asIntegerPoint
>>>
>>>Yes. I see how that's not only clunky and confusing BUT tasteless. Worse
>>>than combining plaid with stripes.
>>
>>Clunky and confusing?  It's uniform and obvious for me.  An object
>>always receives a message in every case.  No stupid special cases to
>>remember.  But if you don't like Smalltalk there are thousands of
>>other languages out there to try, no need to torture yourself with
>>this one you find so ugly.
>
>         Tim is the one who used the word "tasteless" to describe a 
> situation
>where one doesn't constantly need to explicitly reference the current
>context. I found that amusing and ran with it. I think it's clear that the
>Smalltalk version, with its constant "self"s is very obviously clunkier
>than the one with the implicit self. (However, I concede that there are
>other issues, i.e., that it's not as simple as just making the self
>implicit.)
>
>>>Here's another horrid example from the Wiki entry on the abomination
>>>known as "Self":
>>>         valid: base bottom between: ligature bottom + height And: base
>>>top / scale factor.
>>>and here we see the oh-so-elegant improvements ST-80 makes:
>>>         valid := self base bottom between: self ligature bottom + self
>>>height and: self base top / self scale factor.
>>>
>>>Mmmmmm. =Tasteful=!
>>
>>You also don't like Self, one of the most important languages for
>>research of our time?
>
>         Well, no, I was advocating for a more Self-like approach precisely
>=because= it is well-respected and more-or-less exactly what I'm talking
>about. (See, if context is so horrible, Self is an abomination.)
>
>         I'm sorry; I thought I was sufficiently broad so as not to have my
>intentions be missed, but there really is no such thing.
>
>         ===Blake===




More information about the Squeak-dev mailing list