'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