Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #41439 > unrolled thread

Re: [Python-ideas] Message passing syntax for objects

Started byMark Janssen <dreamingforward@gmail.com>
First post2013-03-18 10:04 -0700
Last post2013-03-18 11:24 -0700
Articles 4 — 3 participants

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [Python-ideas] Message passing syntax for objects Mark Janssen <dreamingforward@gmail.com> - 2013-03-18 10:04 -0700
    Re: [Python-ideas] Message passing syntax for objects 88888 Dihedral <dihedral88888@googlemail.com> - 2013-03-18 11:24 -0700
      Re: [Python-ideas] Message passing syntax for objects Lele Gaifax <lele@metapensiero.it> - 2013-03-18 20:16 +0100
    Re: [Python-ideas] Message passing syntax for objects 88888 Dihedral <dihedral88888@googlemail.com> - 2013-03-18 11:24 -0700

#41439 — Re: [Python-ideas] Message passing syntax for objects

FromMark Janssen <dreamingforward@gmail.com>
Date2013-03-18 10:04 -0700
SubjectRe: [Python-ideas] Message passing syntax for objects
Message-ID<mailman.3459.1363626278.2939.python-list@python.org>
On Sun, Mar 17, 2013 at 11:46 PM, Steven D'Aprano <steve@pearwood.info> wrote:
> I am very interested in this as a concept, although I must admit I'm not
> entirely sure what you mean by it. I've read your comment on the link above,
> and subsequent emails in this thread, and I'm afraid I don't understand what
> you mean here. I feel you are assuming that your readers are already experts
> on message-passing languages (Smalltalk?). I know what *I* mean by message
> passing, but that's not necessarily what you mean by it.

I'm sorry, I haven't been very clear.  I'm not even an expert on
message-passing languages, but I see that it's a profound concept that
hasn't been adequately integrated into the OOP model.  In any case, I
will try to do better.  And I apologize to everyone on the list for
the prior mail spam.  A part of me is a bit giddy with the idea.

By message passing, I mean all the ways we communicate to objects in
the OOP environment.  Usually we "communicate" to them through
method-invokation.  But this is the wrong way, I argue, to look at the
problem.

With function or method syntax, you're telling the computer to
"execute something", but that is not the right concepts for OOP.  You
want the objects to interact with each other and in a high-level
language, the syntax should assist with that.

> By building it into the language, it would *enforce* a modular object
> style, rather than the current, very specialized and very programmer
> specific way there is now.  In fact, most people never really think in
> that paradigm, yet if the language supported/proposed such a syntax,
> programmers would start to re-arrange the whole object hierarchy in a
> new, more modular and universal way.
> [end quote]
>
> I don't understand this. In what way would message passing enforce a modular
> object style? In what way does Python not already have a modular object
> style?

Hopefully my paragraph clarifies that a bit.  But the key conceptual
shift is that by enforcing a syntax that moves away from invoking
methods and move to message passing between objects, you're
automatically enforcing a more modular approach.

Mark

[toc] | [next] | [standalone]


#41445

From88888 Dihedral <dihedral88888@googlemail.com>
Date2013-03-18 11:24 -0700
Message-ID<892700c8-4b6a-489b-96a5-8f96310bf028@googlegroups.com>
In reply to#41439
zipher於 2013年3月19日星期二UTC+8上午1時04分36秒寫道:
> On Sun, Mar 17, 2013 at 11:46 PM, Steven D'Aprano <steve@pearwood.info> wrote:
> 
> > I am very interested in this as a concept, although I must admit I'm not
> 
> > entirely sure what you mean by it. I've read your comment on the link above,
> 
> > and subsequent emails in this thread, and I'm afraid I don't understand what
> 
> > you mean here. I feel you are assuming that your readers are already experts
> 
> > on message-passing languages (Smalltalk?). I know what *I* mean by message
> 
> > passing, but that's not necessarily what you mean by it.
> 
> 
> 
> I'm sorry, I haven't been very clear.  I'm not even an expert on
> 
> message-passing languages, but I see that it's a profound concept that
> 
> hasn't been adequately integrated into the OOP model.  In any case, I
> 
> will try to do better.  And I apologize to everyone on the list for
> 
> the prior mail spam.  A part of me is a bit giddy with the idea.
> 
> 
> 
> By message passing, I mean all the ways we communicate to objects in
> 
> the OOP environment.  Usually we "communicate" to them through
> 
> method-invokation.  But this is the wrong way, I argue, to look at the
> 
> problem.
> 
> 
> 
> With function or method syntax, you're telling the computer to
> 
> "execute something", but that is not the right concepts for OOP.  You
> 
> want the objects to interact with each other and in a high-level
> 
> language, the syntax should assist with that.
> 
> 
> 
> > By building it into the language, it would *enforce* a modular object
> 
> > style, rather than the current, very specialized and very programmer
> 
> > specific way there is now.  In fact, most people never really think in
> 
> > that paradigm, yet if the language supported/proposed such a syntax,
> 
> > programmers would start to re-arrange the whole object hierarchy in a
> 
> > new, more modular and universal way.
> 
> > [end quote]
> 
> >
> 
> > I don't understand this. In what way would message passing enforce a modular
> 
> > object style? In what way does Python not already have a modular object
> 
> > style?
> 
> 
> 
> Hopefully my paragraph clarifies that a bit.  But the key conceptual
> 
> shift is that by enforcing a syntax that moves away from invoking
> 
> methods and move to message passing between objects, you're
> 
> automatically enforcing a more modular approach.
> 
> 
> 
> Mark

Please check object pascal and objective c and erlang for 
the message-action director model of what you want.

C is too low level to be suitable for everything.

[toc] | [prev] | [next] | [standalone]


#41455

FromLele Gaifax <lele@metapensiero.it>
Date2013-03-18 20:16 +0100
Message-ID<mailman.3473.1363634207.2939.python-list@python.org>
In reply to#41445
88888 Dihedral <dihedral88888@googlemail.com> writes:

> zipher於 2013年3月19日星期二UTC+8上午1時04分36秒寫道:
>> the key conceptual shift is that by enforcing a syntax that moves
>> away from invoking methods and move to message passing between
>> objects, you're automatically enforcing a more modular approach.
>
> Please check object pascal and objective c and erlang for 
> the message-action director model of what you want.

I fail to see how syntax differences would change the modularity of your
product. 

The fact that (say) ObjC use the name "message" while Python calls the
same a "method" isn't actually changing the concrete fact that both are
executing some sort of function that accepts an "instance" object as one
of the arguments (in Python, the first parameter, usually called self,
in ObjC, and implicit "self").

In other words, the following ObjC

  [someObj getItemAt: i]

is perfectly equivalent to the following Python

  someObj.getItemAt(i)

and to the following Smalltalk

  someObj getItemAt: i

How is the former syntax, where "getItemAt:" is called a "message", more
modular from the second, where "getItemAt()" is called a method?

ciao, lele.
-- 
nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri
real: Emanuele Gaifas | comincerò ad aver paura di chi mi copia.
lele@metapensiero.it  |                 -- Fortunato Depero, 1929.

[toc] | [prev] | [next] | [standalone]


#41461

From88888 Dihedral <dihedral88888@googlemail.com>
Date2013-03-18 11:24 -0700
Message-ID<mailman.3477.1363641986.2939.python-list@python.org>
In reply to#41439
zipher於 2013年3月19日星期二UTC+8上午1時04分36秒寫道:
> On Sun, Mar 17, 2013 at 11:46 PM, Steven D'Aprano <steve@pearwood.info> wrote:
> 
> > I am very interested in this as a concept, although I must admit I'm not
> 
> > entirely sure what you mean by it. I've read your comment on the link above,
> 
> > and subsequent emails in this thread, and I'm afraid I don't understand what
> 
> > you mean here. I feel you are assuming that your readers are already experts
> 
> > on message-passing languages (Smalltalk?). I know what *I* mean by message
> 
> > passing, but that's not necessarily what you mean by it.
> 
> 
> 
> I'm sorry, I haven't been very clear.  I'm not even an expert on
> 
> message-passing languages, but I see that it's a profound concept that
> 
> hasn't been adequately integrated into the OOP model.  In any case, I
> 
> will try to do better.  And I apologize to everyone on the list for
> 
> the prior mail spam.  A part of me is a bit giddy with the idea.
> 
> 
> 
> By message passing, I mean all the ways we communicate to objects in
> 
> the OOP environment.  Usually we "communicate" to them through
> 
> method-invokation.  But this is the wrong way, I argue, to look at the
> 
> problem.
> 
> 
> 
> With function or method syntax, you're telling the computer to
> 
> "execute something", but that is not the right concepts for OOP.  You
> 
> want the objects to interact with each other and in a high-level
> 
> language, the syntax should assist with that.
> 
> 
> 
> > By building it into the language, it would *enforce* a modular object
> 
> > style, rather than the current, very specialized and very programmer
> 
> > specific way there is now.  In fact, most people never really think in
> 
> > that paradigm, yet if the language supported/proposed such a syntax,
> 
> > programmers would start to re-arrange the whole object hierarchy in a
> 
> > new, more modular and universal way.
> 
> > [end quote]
> 
> >
> 
> > I don't understand this. In what way would message passing enforce a modular
> 
> > object style? In what way does Python not already have a modular object
> 
> > style?
> 
> 
> 
> Hopefully my paragraph clarifies that a bit.  But the key conceptual
> 
> shift is that by enforcing a syntax that moves away from invoking
> 
> methods and move to message passing between objects, you're
> 
> automatically enforcing a more modular approach.
> 
> 
> 
> Mark

Please check object pascal and objective c and erlang for 
the message-action director model of what you want.

C is too low level to be suitable for everything.

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web