'isa' keyword

phil hunt zen19725 at zen.co.uk
Fri Sep 2 12:47:52 EDT 2005


On Thu, 01 Sep 2005 20:39:14 -0500, Steve Holden <steve at holdenweb.com> wrote:
>phil hunt wrote:
>> It could be argued of course, that an OOPL should allow methods to 
>> be sent with a grammar:
>> 
>>    receiver selector argument
>> 
>> (which is almost what Smalltalk does), but you're not arguing for 
>> that (and I'm not sure it would work with the rest of python's 
>> grammar).
>> 
>Even if it did it might mangle operator precedence in the same way 
>SmallTalk did, which I always felt was one of the least attractive 
>features" of the language.

That's certainly a point of view; another is that Smalltalk 
simplified things by making all operators the saem priority. For 
those that don't know smalltalk, in that language:

   a + b * c

means:

   (a + b) * c

>I don't think a change to a message-passing paradigm

I'm not talking about a change in *paradigm* merely a change in 
*syntax*; this:

   receiver selector argument

would mean the same as the current Python:

   receiver.selector(argument)

so it is purely a matter of aesthetics which is preferred. Havcing 
said that, I don't see a big benefit in changing Python's syntax in 
this way.

> would necessarily 
>benefit Python at this stage. Some people are still under the 
>misapprehension that message-passing is a fundamental of object-oriented 
>programming because of Smalltalk, but they are wrong.

I don't see how it can reasonably said that STK has 
"message-passing" but other OOPLs don't. Consider these code 
fragments:

Smalltalk:
   receiver selector: argument

C++ or Java:
   receiver.selector(argument);

Python:
   receiver.selector(argument)

PHP:
   $receiver->selector($argument)

(I'm not sure if the last one is right since I've not done much OO 
stuff in PHP)

These all mean essentially the same thing so how can one be "message 
passing" and the others not?


-- 
Email: zen19725 at zen dot co dot uk





More information about the Python-list mailing list