Re: Message passing syntax for objects | OOPv2

2015-06-01 Thread TheDoctor
On Thursday, May 9, 2013 at 12:39:37 AM UTC-5, Steven D'Aprano wrote:
 On Wed, 08 May 2013 19:35:58 -0700, Mark Janssen wrote:
 
  Long story short: the lambda
  calculus folks have to split from the Turing machine folks.
   These models of computation should not use the same language.  Their
  computation models are too radically different.  
 
 Their computation models are exactly equivalent.

No.  Church's thesis was a thesis.  So, yes in theory they can be made to be 
equivalent.  In practice, it's not.  Practicality beats purity, remember?

 This is like saying that Cartesian coordinates and polar coordinates are 
 so radically different that they cannot possibly both describe the same 
 space.

Good analogy, they in theory have the same descriptive potential.  In practice, 
you never do it.
 
Mark
Ho Hum...getting back to some old threads.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-15 Thread Ian Kelly
On Sun, May 12, 2013 at 10:48 PM, Mark Janssen
dreamingforw...@gmail.com wrote:
 You're very right.  But that is what has made it sort of a test-bed
 for internet collaboration.   The project I'm working on is aimed to
 solve that problem and take the Wiki philosophy to its next or even
 ultimate level.  By adding a natural per-revision voting and
 user-ranking it can clear up all the noise and scale to the whole
 internet itself.  But no one around here seem to think its
 possible.

I may have missed it in the noise, but I don't recall that you ever
proposed such a project around here.  That said, your brief
description does sound rather like Cloud Cuckoo Land to me.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-14 Thread Mark Janssen
 Sounds a lot like reddit threads.

It's similar, but it goes a lot further.  Where every other site
without centralized editors, the thread mess on a simple flat page
doesn't scale after about a 100 interactions.  To sort out the mess,
it takes another dimension.  The project I'm working on uses a 3
dimensional visualization model that can scale and order millions of
nodes.

-- 
MarkJ
Tacoma, Washington
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-14 Thread Fábio Santos
Impressive, I'd say.

On Tue, May 14, 2013 at 8:11 PM, Mark Janssen dreamingforw...@gmail.com wrote:
 Sounds a lot like reddit threads.

 It's similar, but it goes a lot further.  Where every other site
 without centralized editors, the thread mess on a simple flat page
 doesn't scale after about a 100 interactions.  To sort out the mess,
 it takes another dimension.  The project I'm working on uses a 3
 dimensional visualization model that can scale and order millions of
 nodes.

 --
 MarkJ
 Tacoma, Washington


--
Fábio Santos
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-13 Thread Mark Janssen
On Sun, May 12, 2013 at 10:18 AM, Ned Batchelder n...@nedbatchelder.com wrote:
 I've never understood why people use that site: the pages end up being
 unintelligible cocktail-party noise-scapes with no hope of understanding who
 is saying what, or in response to whom.

You're very right.  But that is what has made it sort of a test-bed
for internet collaboration.   The project I'm working on is aimed to
solve that problem and take the Wiki philosophy to its next or even
ultimate level.  By adding a natural per-revision voting and
user-ranking it can clear up all the noise and scale to the whole
internet itself.  But no one around here seem to think its
possible.
-- 
MarkJ
Tacoma, Washington
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-13 Thread Fábio Santos
On 12 May 2013 18:23, Ned Batchelder n...@nedbatchelder.com wrote:

 I've never understood why people use that site: the pages end up being
unintelligible cocktail-party noise-scapes with no hope of understanding
who is saying what, or in response to whom.

 --Ned.

There's not so much noise there, but indeed the communication gets
confusing after a few paragraphs.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-13 Thread Fábio Santos
Sounds a lot like reddit threads.
On 13 May 2013 08:17, Mark Janssen dreamingforw...@gmail.com wrote:

 On Sun, May 12, 2013 at 10:18 AM, Ned Batchelder n...@nedbatchelder.com
 wrote:
  I've never understood why people use that site: the pages end up being
  unintelligible cocktail-party noise-scapes with no hope of understanding
 who
  is saying what, or in response to whom.

 You're very right.  But that is what has made it sort of a test-bed
 for internet collaboration.   The project I'm working on is aimed to
 solve that problem and take the Wiki philosophy to its next or even
 ultimate level.  By adding a natural per-revision voting and
 user-ranking it can clear up all the noise and scale to the whole
 internet itself.  But no one around here seem to think its
 possible.
 --
 MarkJ
 Tacoma, Washington
 --
 http://mail.python.org/mailman/listinfo/python-list

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-12 Thread Ned Batchelder

On 5/8/2013 10:39 PM, Mark Janssen wrote:

...The field needs re-invented and re-centered.[...]

For anyone who want to be involved.  See the wikiwikiweb -- a tool
that every programmer should know and use --  and these pages:
ComputerScienceVersionTwo and ObjectOrientedRefactored.


I've never understood why people use that site: the pages end up being 
unintelligible cocktail-party noise-scapes with no hope of understanding 
who is saying what, or in response to whom.


--Ned.


Cheers!


--
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-12 Thread Terry Jan Reedy

On 5/12/2013 1:18 PM, Ned Batchelder wrote:

On 5/8/2013 10:39 PM, Mark Janssen wrote:

...The field needs re-invented and re-centered.[...]

For anyone who want to be involved.  See the wikiwikiweb -- a tool
that every programmer should know and use --  and these pages:
ComputerScienceVersionTwo and ObjectOrientedRefactored.


I've never understood why people use that site: the pages end up being
unintelligible cocktail-party noise-scapes with no hope of understanding
who is saying what, or in response to whom.


I certainly found it confusing that something responder and OP comments 
were in normal text and italic respectively, and sometimes the opposite, 
and maybe sometimes both in normal types.



--
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-11 Thread D'Arcy J.M. Cain
On Thu, 9 May 2013 11:33:45 -0600
Ian Kelly ian.g.ke...@gmail.com wrote:
 about Turing machines and lambda calculus that you've injected into
 the conversation though just reminds me of the Einstein was wrong
 cranks.

But Einstein *was* wrong.  http://www.xkcd.com/1206/

-- 
D'Arcy J.M. Cain da...@druid.net |  Democracy is three wolves
http://www.druid.net/darcy/|  and a sheep voting on
+1 416 788 2246 (DoD#0082)(eNTP)   |  what's for dinner.
IM: da...@vex.net, VOIP: sip:da...@vex.net
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-11 Thread Mark Janssen
 ...The field needs re-invented and re-centered.[...]

For anyone who want to be involved.  See the wikiwikiweb -- a tool
that every programmer should know and use --  and these pages:
ComputerScienceVersionTwo and ObjectOrientedRefactored.

Cheers!
-- 
MarkJ
Tacoma, Washington
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-11 Thread Chris Angelico
On Fri, May 10, 2013 at 3:33 AM, Ian Kelly ian.g.ke...@gmail.com wrote:
 All this irrelevant nonsense
 about Turing machines and lambda calculus that you've injected into
 the conversation though just reminds me of the Einstein was wrong
 cranks.

http://xkcd.com/1206/

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-11 Thread alex23
On 10 May, 13:07, Chris Angelico ros...@gmail.com wrote:
 Now, whether or not it's worth _debating_ the expressiveness of a
 language... well, that's another point entirely. But for your major
 project, I think you'll do better working in Python than in machine
 code.

I wasn't disagreeing with the concept of linguistic expressiveness, my
ire was over the I'm RIGHT and EVERYONE else is WRONG so STOP WHAT
YOU'RE DOING so I can REBUILD COMPUTER SCIENCE aspect of these posts.
Thought without experience or experiment is about as useful to my work
requirements as bowel gas.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-11 Thread Chris Angelico
On Sun, May 12, 2013 at 5:32 AM, Dennis Lee Bieber
wlfr...@ix.netcom.com wrote:
 On Fri, 10 May 2013 14:33:52 +1000, Chris Angelico ros...@gmail.com
 declaimed the following in gmane.comp.python.general:


 I don't answer to them. I also believe in a path of endless
 exponential growth. Challenge: Create more information than can be
 stored in one teaspoon of matter. Go ahead. Try!

 The coordinates of each particle storing the information in that
 teaspoon of matter.

Which is probably more data than any of us will keyboard in a
lifetime. Hence my point.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-11 Thread Gregory Ewing

Dennis Lee Bieber wrote:

I also believe in a path of endless
exponential growth. Challenge: Create more information than can be
stored in one teaspoon of matter. Go ahead. Try!


If that's your argument, then you don't really believe
in *endless* exponential growth. You only believe in
exponential growth for long enough that I won't be
around to suffer the consequences when it runs out.

--
Greg
--
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-11 Thread Gregory Ewing

Chris Angelico wrote:

On Sun, May 12, 2013 at 5:32 AM, Dennis Lee Bieber
wlfr...@ix.netcom.com wrote:



   The coordinates of each particle storing the information in that
teaspoon of matter.


Which is probably more data than any of us will keyboard in a
lifetime. Hence my point.


My 1TB hard disk *already* contains more information than
I could keyboard in my lifetime.

The fact that it all got there is due to two things: (1)
I didn't have to enter it all myself, and (2) most of it
was auto-generated from other information, using compilers
and other such tools.

Our disk capacities are increasing exponentially, but
so is the rate at which we have the ability to create
information. I wouldn't be surprised if, at some point
before the human race becomes extinct, we build
computers whose operating system requires more than
a teaspoonful of atoms to store. Especially if
Microsoft still exists by then. :-)

--
Greg
--
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-11 Thread Chris Angelico
On Sun, May 12, 2013 at 10:50 AM, Gregory Ewing
greg.ew...@canterbury.ac.nz wrote:
 Dennis Lee Bieber wrote:

 I also believe in a path of endless
 exponential growth. Challenge: Create more information than can be
 stored in one teaspoon of matter. Go ahead. Try!


 If that's your argument, then you don't really believe
 in *endless* exponential growth. You only believe in
 exponential growth for long enough that I won't be
 around to suffer the consequences when it runs out.

Technically, according to the laws of thermodynamics, there cannot be
any actually endless growth, yes. (Anything beyond that is the realm
of religion, not science.) But in that case, the term endless is
like infinity - a concept only. Like the Infinite Monkey Protocol
Suite description in RFC 2795, there will be many numbers that come up
that are plenty huge but fall pitifully short of infinity (Graham's
Number, for instance, is pretty small in those terms).

So long as storage capacities keep on increasing, we can keep
increasing the world's information at the same rate. So long as the
number of computers connected to the internet increases, we can keep
increasing the internet's information at the same rate. Put both
together - and neither shows any sign of ceasing any time soon - we
can continue with the corresponding growth. How long before that runs
out? A *long* time. We're not talking here of the Year 2000, a
couple of decades after the software was written. We're not talking
about the 2038 issues, roughly half a century after the software was
written. We are talking timeframes that make the Y10K problem look
like a serious lack of foresight.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-11 Thread Chris Angelico
On Sun, May 12, 2013 at 11:02 AM, Gregory Ewing
greg.ew...@canterbury.ac.nz wrote:
 Chris Angelico wrote:

 On Sun, May 12, 2013 at 5:32 AM, Dennis Lee Bieber
 wlfr...@ix.netcom.com wrote:


The coordinates of each particle storing the information in that
 teaspoon of matter.


 Which is probably more data than any of us will keyboard in a
 lifetime. Hence my point.


 My 1TB hard disk *already* contains more information than
 I could keyboard in my lifetime.

 The fact that it all got there is due to two things: (1)
 I didn't have to enter it all myself, and (2) most of it
 was auto-generated from other information, using compilers
 and other such tools.

I would like to differentiate between information and data, here.
Point 1 is correct, but point 2 is not; auto-generated data is not
more information, and basic data compression can improve that. (Simple
form of compression there: `rm *.o` - you've lost nothing.)

 Our disk capacities are increasing exponentially, but
 so is the rate at which we have the ability to create
 information. I wouldn't be surprised if, at some point
 before the human race becomes extinct, we build
 computers whose operating system requires more than
 a teaspoonful of atoms to store. Especially if
 Microsoft still exists by then. :-)

That's possible. But that would be data bloat, not true information.
It's certainly possible to conceive more data than can be stored.
Microsoft, as you cite, are experts at this :)

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-10 Thread Chris Angelico
On Fri, May 10, 2013 at 2:55 PM, Roy Smith r...@panix.com wrote:
 In article mailman.1523.1368160434.3114.python-l...@python.org,
  Chris Angelico ros...@gmail.com wrote:

 The first hard disk I ever worked with stored 20MB in the space of a
 5.25 slot (plus its associated ISA controller card).

 Heh.  The first hard disk I ever worked with stored 2.4 MB in 6U of rack
 space (plus 4 Unibus cards worth of controller).  That's not actually
 the first hard disk I ever used.  Just the first one I ever got to touch
 with my own hands.

 Did I mention that the air filters had to be changed a few times a year?

 Uphill both ways, in the snow, while beating off the dinosaurs with
 sticks.

Yeah, I'm pretty young. First computer I ever broke (the same one that
had the aforementioned 20MB drive) addressed a whole megabyte of
memory, 640KB of which was OK (we're left wondering whether anyone
would notice if ROM developed a fault), and I got to play around with
64KB of it in DEBUG.EXE. And yeah, I wrote code straight in DEBUG and
saved it and crashed the system. (Tip: If you want to write a device
driver, make sure you start with your dad happy with you.) Was good
fun. I heartily recommend the exercise, but... uhh... do consider
setting up a virtual machine first :)

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-10 Thread William Ray Wing
On May 10, 2013, at 12:55 AM, Roy Smith r...@panix.com wrote:

 In article mailman.1523.1368160434.3114.python-l...@python.org,
 Chris Angelico ros...@gmail.com wrote:
 
 The first hard disk I ever worked with stored 20MB in the space of a
 5.25 slot (plus its associated ISA controller card).
 
 Heh.  The first hard disk I ever worked with stored 2.4 MB in 6U of rack 
 space (plus 4 Unibus cards worth of controller).  That's not actually 
 the first hard disk I ever used.  Just the first one I ever got to touch 
 with my own hands.
 

Sounds suspiciously like an RK05.  We used a lot of those on DEC PDP-8e's.  I 
can remember how startled I was when I first saw a DEC engineer pull the top 
off one and then, with it open, spin it up.  The platter inside was warped (a 
ceiling light reflected off the platter wiggled and then blurred) but the head 
mechanism actually just followed it up and down!!!

Bill

 Did I mention that the air filters had to be changed a few times a year?
 
 Uphill both ways, in the snow, while beating off the dinosaurs with 
 sticks.
 -- 
 http://mail.python.org/mailman/listinfo/python-list

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-10 Thread Roy Smith

On May 10, 2013, at 7:49 AM, William Ray Wing wrote:

 On May 10, 2013, at 12:55 AM, Roy Smith r...@panix.com wrote:
 
 In article mailman.1523.1368160434.3114.python-l...@python.org,
 Chris Angelico ros...@gmail.com wrote:
 
 The first hard disk I ever worked with stored 20MB in the space of a
 5.25 slot (plus its associated ISA controller card).
 
 Heh.  The first hard disk I ever worked with stored 2.4 MB in 6U of rack 
 space (plus 4 Unibus cards worth of controller).  That's not actually 
 the first hard disk I ever used.  Just the first one I ever got to touch 
 with my own hands.
 
 
 Sounds suspiciously like an RK05.

Yup.


--
Roy Smith
r...@panix.com



-- 
http://mail.python.org/mailman/listinfo/python-list


Alternate computational models can be harmonious (was Message passing syntax for objects | OOPv2)

2013-05-09 Thread rusi
On May 9, 10:39 am, Steven D'Aprano steve
+comp.lang.pyt...@pearwood.info wrote:
 On Wed, 08 May 2013 19:35:58 -0700, Mark Janssen wrote:
  Long story short: the lambda
  calculus folks have to split from the Turing machine folks.
   These models of computation should not use the same language.  Their
  computation models are too radically different.

 Their computation models are exactly equivalent.

 This is like saying that Cartesian coordinates and polar coordinates are
 so radically different that they cannot possibly both describe the same
 space.

Spot on Steven -- thanks.

And further we do know that from a pragmatic POV the two can be quite
different.
For example cartesian are easier for add/subtract, whereas polar are
easier for multiply/divide.
And so on occasion the best way of doing an operation is to -- if
necessary -- convert to the more appropriate format.

I feel that the case of alternate computation models is analogous --
for some purposes one model works well and sometimes another.

Python embeds the functional model almost as natively as it does the
imperative/OO model.  This is an aspect of python that is powerful but
can also make it hard for some people. In short, python's multi-
paradigm possibilities could do with some good publicity.

My own attempts at bringing functional thinking to classical
imperative languages and Python in particular, will be up at:
https://moocfellowship.org/submissions/the-dance-of-functional-programming-languaging-with-haskell-and-python

It is also an attempt at bringing the lightness and freedom of Python
to the Haskell community and answer divisive judgements of
computational models/paradigms such as the OP's.

More details at 
http://blog.languager.org/2013/05/dance-of-functional-programming.html
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread Ian Kelly
On Wed, May 8, 2013 at 8:35 PM, Mark Janssen dreamingforw...@gmail.com wrote:
 Okay, to anyone who might be listening, I found the core of the problem.

What problem are you referring to?  You've been posting on this
topic for going on two months now, and I still have no idea of what
the point of it all is.  I recall something about not being happy with
the OOP paradigm because apparently none of the dozens of existing
languages handle message passing in the particular way that you think
it should work; but if that's all it is, then why don't you just build
a new language that does it the way that you think is right?  If it's
good, spread it around and it will gain traction.  If not, then it
will die the quiet death it deserves.  All this irrelevant nonsense
about Turing machines and lambda calculus that you've injected into
the conversation though just reminds me of the Einstein was wrong
cranks.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread Mark Janssen
  These models of computation should not use the same language.  Their
 computation models are too radically different.

 Their computation models are exactly equivalent.

No they are not.  While one can find levels of indirection to
translate between one and the other, that doesn't mean they're
equivalent.  It's like saying that because I can make an equivalence
between the complex plane and the real, that they should be treated as
equivalent.  But they shouldn't -- else you run into a domain error.

-- 
MarkJ
Tacoma, Washington
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread Mark Janssen
On Thu, May 9, 2013 at 10:33 AM, Ian Kelly ian.g.ke...@gmail.com wrote:
 On Wed, May 8, 2013 at 8:35 PM, Mark Janssen dreamingforw...@gmail.com 
 wrote:
 Okay, to anyone who might be listening, I found the core of the problem.

 What problem are you referring to?  You've been posting on this
 topic for going on two months now, and I still have no idea of what
 the point of it all is.

You see Ian, while you and the other millions of coding practitioners
have (mal)adapted to a suboptimal coding environment where hey
there's a language for everyone  and terms are thrown around,
misused, this is not how it needs or should be.  Instead of the
thriving Open Source culture on the web we could have, the community
stays fractured.   Languages can reach for an optimal design (within a
constant margin of leeway).   Language expressivity can be measured.

--Tron
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread Ian Kelly
On Thu, May 9, 2013 at 3:51 PM, Mark Janssen dreamingforw...@gmail.com wrote:
 On Thu, May 9, 2013 at 10:33 AM, Ian Kelly ian.g.ke...@gmail.com wrote:
 On Wed, May 8, 2013 at 8:35 PM, Mark Janssen dreamingforw...@gmail.com 
 wrote:
 Okay, to anyone who might be listening, I found the core of the problem.

 What problem are you referring to?  You've been posting on this
 topic for going on two months now, and I still have no idea of what
 the point of it all is.

 You see Ian, while you and the other millions of coding practitioners
 have (mal)adapted to a suboptimal coding environment where hey
 there's a language for everyone  and terms are thrown around,
 misused, this is not how it needs or should be.  Instead of the
 thriving Open Source culture on the web we could have,

Non sequitur.  Open source software has nothing to do with coding
environment or choice of language or OOP paradigm.  Or Turing machines
or lambda calculus, for that matter.

 the community stays fractured.

The open source community seems pretty healthy to me.  What is the
basis of your claim that it is fractured?

 Languages can reach for an optimal design (within a constant margin of 
 leeway).

There is no optimal design.  The *reason* that there's a language
for everyone is because different people think about software in
different ways and find different approaches better suited to them.
Furthermore, some programming styles are naturally more conducive to
accomplishing certain tasks, and worse at others.  Take video game
programming for an example.  If I'm working on the graphics engine for
a game, I would probably want to use a low-level imperative language
for efficiency reasons.  If I'm working on the AI, I will more likely
prefer a functional or declarative language for clarity, flexibility
and static analysis.  In either case, OOP is probably a bad choice.

 Language expressivity can be measured.

And the measurements can be endlessly debated.  Expressivity is not
the sole measure of a programming language, though.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread Chris Angelico
On Fri, May 10, 2013 at 8:30 AM, Ian Kelly ian.g.ke...@gmail.com wrote:
 On Thu, May 9, 2013 at 3:51 PM, Mark Janssen dreamingforw...@gmail.com 
 wrote:
 the community stays fractured.

 The open source community seems pretty healthy to me.  What is the
 basis of your claim that it is fractured?

The carpentry community is fractured. There are people who use
screwdrivers, and there are people who use hammers! Screws and nails
are such completely different things that we shouldn't try to use the
same language to discuss them.

 Language expressivity can be measured.

 And the measurements can be endlessly debated.  Expressivity is not
 the sole measure of a programming language, though.

Every programming language can encode every program. It's fairly
straightforward to prove that a Python interpreter can be written in
Ruby, or a C interpreter in Lua; so there is no program that can be
expressed in one language and not in another (there will be apparent
exceptions, eg web-browser JavaScript cannot call on arbitrary C-level
functionality, but if the entirety of program code were written in C,
then it could all be interpreted by one C interpreter).

Larry Wall of Perl put it this way, in a State of the Onion address:

http://www.perl.com/pub/2007/12/06/soto-11.html
... Human languages are Turing complete, as it were.

Human languages therefore differ not so much in what you can say but
in what you must say. In English, you are forced to differentiate
singular from plural. In Japanese, you don't have to distinguish
singular from plural, but you do have to pick a specific level of
politeness, taking into account not only your degree of respect for
the person you're talking to, but also your degree of respect for the
person or thing you're talking about.

So languages differ in what you're forced to say. Obviously, if your
language forces you to say something, you can't be concise in that
particular dimension using your language. Which brings us back to
scripting.

How many ways are there for different scripting languages to be concise?


In C, for example, you are forced to write explicit notation
representing {blocks; of; code;} and explicit characters separating;
statements;. In Python, on the other hand, you have to write out your
indentation. In Java, you state what exceptions you might throw. REXX
mandates that you annotate procedures with their list of exposed names
(effectively, non-local and global variables). So the expressivity of
a language can't be defined in terms of how many programs can be
written in it, but in how concisely they can be written - and that's
something that depends on specific design choices and how they align
with the code you're trying to write.

Compare these two snippets:

#!/bin/sh
pg_dumpall | gzip | ssh user@host 'gzip -d|psql'

#!/usr/bin/env python
words=input(Enter words, blank delimited: )
lengths=[len(x) for x in words.split( )]
print(Average word length: %d%int(sum(lengths)/len(lengths)))

Could you write each in the other's language? Sure! But it won't be as
concise. (The Python version of the shell script could cheat and just
call on the shell to do the work, but even that would add the
expressive overhead of os.system.) This is why there are so many
languages: because each is good at something different.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread alex23
On 10 May, 03:33, Ian Kelly ian.g.ke...@gmail.com wrote:
 You've been posting on this
 topic for going on two months now, and I still have no idea of what
 the point of it all is.

As Charlie Brooker put it: almost every monologue consists of nothing
but the words PLEASE AUTHENTICATE MY EXISTENCE, repeated over and over
again, in disguise.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread alex23
On 10 May, 07:51, Mark Janssen dreamingforw...@gmail.com wrote:
 You see Ian, while you and the other millions of coding practitioners
 have (mal)adapted to a suboptimal coding environment where hey
 there's a language for everyone  and terms are thrown around,
 misused, this is not how it needs or should be.

Please cite your industry experience so we know this is a pragmatic
exercise for you and not a display of public onanism.

 Instead of the
 thriving Open Source culture on the web we could have, the community
 stays fractured.

What fractures communities is telling millions of [maladapted]
practitioners that they're wrong, and that your unsubstantiated
intuition somehow trumps their billions of hours of combined
experience.

 Languages can reach for an optimal design (within a
 constant margin of leeway).   Language expressivity can be measured.

I'm sure that's great. I, however, have a major project going live in
a few weeks and would rather just get something done.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread Chris Angelico
On Fri, May 10, 2013 at 9:58 AM, alex23 wuwe...@gmail.com wrote:
 On 10 May, 07:51, Mark Janssen dreamingforw...@gmail.com wrote:
 Languages can reach for an optimal design (within a
 constant margin of leeway).   Language expressivity can be measured.

 I'm sure that's great. I, however, have a major project going live in
 a few weeks and would rather just get something done.

Hmm, not really a fair argument there. A well-designed language lets
you just get something done far more efficiently than a
poorly-designed one. Being confident that similar objects behave
correspondingly when invoked the same way lets you write your code
without fiddling with minutiae, for instance. (Hmm, I'll just switch
that from being a tuple to being a list, so I can modify this one
element. - code that indexes or iterates won't be affected.)

Now, whether or not it's worth _debating_ the expressiveness of a
language... well, that's another point entirely. But for your major
project, I think you'll do better working in Python than in machine
code.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread Mark Janssen
On Thu, May 9, 2013 at 4:58 PM, alex23 wuwe...@gmail.com wrote:
 On 10 May, 07:51, Mark Janssen dreamingforw...@gmail.com wrote:
 You see Ian, while you and the other millions of coding practitioners
 have (mal)adapted to a suboptimal coding environment where hey
 there's a language for everyone  and terms are thrown around,
 misused, this is not how it needs or should be.

 Please cite your industry experience so we know this is a pragmatic
 exercise for you and not a display of public onanism.

Industry experience

Do you know all the world's [industrial] leaders are endorsing an
impossible path of endless, exponential growth on a finite planet?

Is that who you answer to?

--m
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread Chris Angelico
On Fri, May 10, 2013 at 1:08 PM, Mark Janssen dreamingforw...@gmail.com wrote:
 On Thu, May 9, 2013 at 4:58 PM, alex23 wuwe...@gmail.com wrote:
 On 10 May, 07:51, Mark Janssen dreamingforw...@gmail.com wrote:
 You see Ian, while you and the other millions of coding practitioners
 have (mal)adapted to a suboptimal coding environment where hey
 there's a language for everyone  and terms are thrown around,
 misused, this is not how it needs or should be.

 Please cite your industry experience so we know this is a pragmatic
 exercise for you and not a display of public onanism.

 Industry experience

 Do you know all the world's [industrial] leaders are endorsing an
 impossible path of endless, exponential growth on a finite planet?

 Is that who you answer to?

I don't answer to them. I also believe in a path of endless
exponential growth. Challenge: Create more information than can be
stored in one teaspoon of matter. Go ahead. Try!

The first hard disk I ever worked with stored 20MB in the space of a
5.25 slot (plus its associated ISA controller card). Later on we got
3.5 form factor drives, and I remember installing this *gigantic*
FOUR GIGABYTE drive into our disk server. Wow! We'll NEVER use all
that space! (Well, okay. Even then we knew that space consumption kept
going up. But we did figure on that 4GB lasting us a good while, which
it did.) Today, I can pop into Budget PC or MSY (or you folks in the
US could check out newegg) and pick up a terabyte of storage in the
same amount of physical space, or you can go 2.5 form factor and take
up roughly a fifth of the physical space and still get half a terabyte
fairly cheaply. So our exponential growth is being supported by
exponential increases in data per cubic meter. Between that and the
vast size of this planet, I don't think we really need to worry too
much about finite limits to IT growth.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-09 Thread Roy Smith
In article mailman.1523.1368160434.3114.python-l...@python.org,
 Chris Angelico ros...@gmail.com wrote:

 The first hard disk I ever worked with stored 20MB in the space of a
 5.25 slot (plus its associated ISA controller card).

Heh.  The first hard disk I ever worked with stored 2.4 MB in 6U of rack 
space (plus 4 Unibus cards worth of controller).  That's not actually 
the first hard disk I ever used.  Just the first one I ever got to touch 
with my own hands.

Did I mention that the air filters had to be changed a few times a year?
  
Uphill both ways, in the snow, while beating off the dinosaurs with 
sticks.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-08 Thread Mark Janssen
On Fri, Apr 12, 2013 at 11:28 PM, Mark Janssen
dreamingforw...@gmail.com wrote:
 Mark, this proposal is out of place on a Python list, because it proposes an
 object methodology radically different from any that is implemented in
 Python now, or is even remotely likely to be implemented in Python in the
 future.

 Wow, you guys are a bunch of ninnies.  I'm going to find some
 theoretical folks

Okay, to anyone who might be listening, I found the core of the problem.

This issue is/was much deeper than OOP (which would be roughly a 20
year refactoring) -- that was my mistake.  The issue goes right to the
core to models of computation and the historical factions within
theoretical CS itself (a 50+ year refactoring).

The field needs re-invented and re-centered.  Mark my words.  There
has been a half-century of confusion between two entirely separate
domains and they've been using the same lexicon.  Long story short:
the lambda calculus folks have to split from the Turing machine folks.
 These models of computation should not use the same language.  Their
computation models are too radically different.  Lisp will remain a
pinnacle of the lambda calculus, but should be remanded to philosophy.
 The logic of the binary/boolean arithmetic is simply not compatible,
but forms the basis of any sensible computer science here in the West.

Here pronouncith the whatever

-- 
MarkJ
Tacoma, Washington
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-08 Thread rusi
On May 9, 7:35 am, Mark Janssen dreamingforw...@gmail.com wrote:
 On Fri, Apr 12, 2013 at 11:28 PM, Mark Janssen

 dreamingforw...@gmail.com wrote:
  Mark, this proposal is out of place on a Python list, because it proposes 
  an
  object methodology radically different from any that is implemented in
  Python now, or is even remotely likely to be implemented in Python in the
  future.

  Wow, you guys are a bunch of ninnies.  I'm going to find some
  theoretical folks

 Okay, to anyone who might be listening, I found the core of the problem.

 This issue is/was much deeper than OOP (which would be roughly a 20
 year refactoring) -- that was my mistake.  The issue goes right to the
 core to models of computation and the historical factions within
 theoretical CS itself (a 50+ year refactoring).

 The field needs re-invented and re-centered.  Mark my words.  There
 has been a half-century of confusion between two entirely separate
 domains and they've been using the same lexicon.  Long story short:
 the lambda calculus folks have to split from the Turing machine folks.
  These models of computation should not use the same language.  Their
 computation models are too radically different.  Lisp will remain a
 pinnacle of the lambda calculus, but should be remanded to philosophy.
  The logic of the binary/boolean arithmetic is simply not compatible,
 but forms the basis of any sensible computer science here in the West.

 Here pronouncith the whatever

 --
 MarkJ
 Tacoma, Washington

Lisp will remain the pinnacle of lambda calculus ???  : Surreal
feeling of falling into a 25-year time-warp

Read this http://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf

Just for historical context:
When this was written in the 80s:
- The FP languages of the time -- KRC, SASL, Miranda, Orwell -- were
elegant and academic
- Lisp was quasi-industrial-strength but as Wadler argues above, was
not doing good service to functional programming
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-08 Thread Mark Janssen
 Lisp will remain the pinnacle of lambda calculus ???  : Surreal
 feeling of falling into a 25-year time-warp

 Read this http://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf

 Just for historical context:
 When this was written in the 80s:
 - The FP languages of the time -- KRC, SASL, Miranda, Orwell -- were
 elegant and academic
 - Lisp was quasi-industrial-strength but as Wadler argues above, was
 not doing good service to functional programming

Fascinating.
-- 
MarkJ
Tacoma, Washington
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-05-08 Thread Steven D'Aprano
On Wed, 08 May 2013 19:35:58 -0700, Mark Janssen wrote:

 Long story short: the lambda
 calculus folks have to split from the Turing machine folks.
  These models of computation should not use the same language.  Their
 computation models are too radically different.  

Their computation models are exactly equivalent.

This is like saying that Cartesian coordinates and polar coordinates are 
so radically different that they cannot possibly both describe the same 
space.


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-04-13 Thread Mark Janssen
 Mark, this proposal is out of place on a Python list, because it proposes an
 object methodology radically different from any that is implemented in
 Python now, or is even remotely likely to be implemented in Python in the
 future.

Wow, you guys are a bunch of ninnies.  I'm going to find some
theoretical folks

MarkJ
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-04-13 Thread Chris Angelico
On Sat, Apr 13, 2013 at 4:28 PM, Mark Janssen dreamingforw...@gmail.com wrote:
 Mark, this proposal is out of place on a Python list, because it proposes an
 object methodology radically different from any that is implemented in
 Python now, or is even remotely likely to be implemented in Python in the
 future.

 Wow, you guys are a bunch of ninnies.  I'm going to find some
 theoretical folks

Allow me to offer a serious suggestion: Just as C++ was originally
implemented as a preprocessor that produced C code (Cfront), implement
your language as a preprocessor that outputs Python (Pyfront?). Then
you can explore your ideas relatively cheaply (since you don't have to
implement a whole language) and portably (especially if you write your
front-end in Python itself)... and, most importantly, you'll have
*code* to show people, instead of half-baked theories.

Get some real solid code, then start demonstrating how your new system
is more expressive, or clearer, or what-have-you. It's much more
effective when you can discuss something that actually exists.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-04-13 Thread Michael Torrie
On 04/13/2013 12:28 AM, Mark Janssen wrote:
 Mark, this proposal is out of place on a Python list, because it proposes an
 object methodology radically different from any that is implemented in
 Python now, or is even remotely likely to be implemented in Python in the
 future.
 
 Wow, you guys are a bunch of ninnies.  I'm going to find some
 theoretical folks

Insulting list members is not a great way to gain traction.  Ned is
correct, though.  Your discussion is best held in another place where
theoretical folks do hang out.  Perhaps you should get together with
Ranting Rick.  Like you he lacks a formal background in language
development, but also like you has strong opinions on how things should
be done differently.  Maybe you can roll your ideas into his Rython
language.  On this list I think the vast majority of us simply want to
discuss how to effectively use Python to solve our problems.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-04-12 Thread Chris Angelico
On Fri, Apr 12, 2013 at 11:57 AM, Mark Janssen
dreamingforw...@gmail.com wrote:
 Further, I will admit that I am not deeply
 experienced in application or Internet programming

Would you listen to someone who is, by his own admission, not
experienced as a surgeon, and tries to tell you that your liver and
heart would be better placed the other way around?

You may well have some insight that nobody else has yet seen, but you
do yourself no service by trying to argue without first-hand
experience, and lots of it. I'm not going to go to a LISP mailing list
and try to tell them that functional programming is better done with
some different syntax, because I am not an experienced LISPer.
(Dabbled in Scheme, that's about as close as I get. And only dabbled.
And only because GNU LilyPond uses it.) Things are the way they are
because someone's spent decades working with them. Sure, not
everything's perfect... but it takes someone with actual coding
experience and expertise to point out improvements.

Read the python-list and python-tutor archives and listen to people
like Peter Otten and Steven D'Aprano, both of whom have been using the
language for, uhh... 3.5 millenia, probably. (Me? I'm a n00b. Haven't
seriously used Python for even a decade yet, though I think I met it
in the late 90s or early 00s. Got my coding experience on other
languages.) Listen to them when they explain to people why Python is
how it is, and you'll gain a much greater comprehension of what
actually works.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-04-12 Thread Mark Lawrence

On 12/04/2013 02:57, Mark Janssen wrote:

[dross snipped]

A summary here http://pinterest.com/pin/464293042804330899/

--
If you're using GoogleCrap™ please read this 
http://wiki.python.org/moin/GoogleGroupsPython.


Mark Lawrence

--
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-04-12 Thread Ned Batchelder


On 4/11/2013 9:57 PM, Mark Janssen wrote:

Okay peeps, I'm re-opening this thread, because despite being hijacked
by naysayers, the merit of the underlying idea I think still has not
been communicated or perceived adequately.
Mark, this proposal is out of place on a Python list, because it 
proposes an object methodology radically different from any that is 
implemented in Python now, or is even remotely likely to be implemented 
in Python in the future.


Everyone else, there's no need to skewer Mark for off-topic things like 
tweets on topics other than Python.  We can be civil, surely.


--Ned.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-04-11 Thread Mark Janssen
Okay peeps, I'm re-opening this thread, because despite being hijacked
by naysayers, the merit of the underlying idea I think still has not
been communicated or perceived adequately.  As a personal request from
the BDFL, which I begrudge him for, I've removed the thread from
python-ideas.  If you want to tail him and ignore it fine, but I will
be addressing the naysayers one-by-one and (since no one was willing
to do a modicum of interference for me) presumably by myself.  For
reference of how this topic began, see http://qr.ae/TM1Vb and
http://qr.ae/TMh7A which were questions from the programming community
not astroturfed nor sockpuppeted by/for me.   For the underlying itch
being scratched which motivates this whole thread, see
http://qr.ae/TM1Vb.  But basically, I'm proposing a programming
language *synthesis* and unification of the object-oriented and
imperative language paradigms (two of the four paradigms recognized on
wikipedia: http://en.wikipedia.org/wiki/Programming_paradigm) to
create what I'm calling a unified data ecosystem.

I'm going to admit from the beginning that I am not deeply researched
with the many varied explorations of the programming language
*ontology*, BUT I have followed the main trunk, if not gone out on
every branch.  I *will* say that I am degreed in Computer Engineering
(PLU '92) and have a fairly solid theoretical background in the art
and the science of CS.  Further, I will admit that I am not deeply
experienced in application or Internet programming -- I have stayed on
the outside watching those developments so that I can fulfill a vision
I have of what the Internet can be (a world-changing technology to
make a balanced socio-political platform and thereby a healthy
planet).   So my use of the term message-passing is not so much
laden with its use in programming language theory as much as the more
pedestrian notion of passing notes -- a conceptual model familiar to
everybody.

My interest in pursuing the topic isn't to radically change Python,
to grind an axe or personal whim, nor to alter the spirit of Python in
any way (a spirit which drew me to it back in 2001), but to consider a
fairly large re-factoring or our current *programming ecosystem*
while preserving and enhancing what I consider Python's main
superpower:  simplifying the complex.  The real issue, then, is not
changing *Python*, but something deeper:  refactoring the OOP paradigm
itself.  ...Why?

First, let it be noted clearly that OOP has not delivered on one its
two main selling points:  re-usable, sharable code.   (The other main
selling point being the ability to abstract away the details of the
underlying machine -- which it still does well.)   The proof of this
is that we have *libraries* of code bundled with languages so that
everyone uses the same vetted code base.  Anything outside this,.
though, feels, to most, like wearing other people's underwear.  You'll
note, even within the python library itself, that modules are hardly
unified in coding *style*, showing the programming personality of the
various developer histories that each library is representing.  We
accept this, because our benevolent dictator accepts it, and it's not
easy to unify it further (despite an attempt with Pythonv3), because
the issue, I'm arguing, is really about an inadequacy in the OOP model
itself.

What I'm proposing *should* create a data/object ecosystem much like
Unix created a command ecosystem.  An environment in which people
could combine simple, modular commands into powerful, complex
para-applications.  In the case I'm proposing, the *Python*
environment becomes a sort of lingua franca for the data ecosystem,
not because of a war of whose language is better but because of the
simple issue of practicality.  In this data ecosystem, a network of
objects becomes available and re-usable across the network (not a new
idea).

So, where are we now?  Well we have this huge resource called the
Internet, which has loads of data that no one has really exploited to
its potential.  Its value is scattered across the globe:  warehoused
in various databases, spreadsheets, blog silos, personal computers and
whatnot.  The OOP paradigm has not solved the problem, which it, in
theory, could or SHOULD have.  Instead, we have balkanization across
many language platforms and data formats.  XML, RDF, none of these
really solves the problem, because the relationship to data is still
too personal to everyone's private taxonomies.  Of all the pages out
there maybe 5% is incorporated into these attempts at data
standardization.  As for Python, its community has sort of splintered.
   Various language attempts to solve certain problems complexified
the language and created a kind of growth knot on Python's tree.
They weren't bad solutions, they were just the best solutions outside
a refactoring of the OOP methodology.

So what is OOP refactored?  Building upon Alan Kay's tentative(?)
description of the OOP essence (see

Re: Message passing syntax for objects | OOPv2

2013-04-11 Thread Ethan Furman

On 04/11/2013 06:57 PM, Mark Janssen wrote:
[blah blah not python blah blah]

Mark, this list if for Python, about Python, helping with Python.

If you want to discuss whatever this idea is, you should do it somewhere else, 
as it is *not* Python.

--
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects | OOPv2

2013-04-11 Thread alex23
On Apr 12, 11:57 am, Mark Janssen dreamingforw...@gmail.com wrote:
 hijacked by naysayers

Says the man who wrote:

 - I blame the feminists for being too loyal to atheism and G-d for
being too loyal to the Jews.  Torture happened.
 - The world is insane because people loved snakes more than G-d, and
believed in homosexuals more than Adam.

It's frightening to see that your grip on theology and, hell, *basic
humanity* is as tenuous as your understanding of computer science.

Calling out blatant pap as pap is not being a naysayer. Shouldn't
you be off single-handedly saving the creative economy? What
happened to your simple rules to create a self-organized system and
re-organize the Internet?

 Here endeth the lesson.

I'd love to believe this is true but I bet it isn't; I'm pretty sure
you've got plenty more delusional grandeur to inflict on us.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects

2013-03-20 Thread alex23
On Mar 20, 2:24 pm, Mark Janssen dreamingforw...@gmail.com wrote:
 Yes, that's the point I'm making, and it's significant because other
 programmers can't see other's mental models.

How does having API-less magic objects make this any better? I pass a
string message to your RSS object: does it create XML from it? does it
parse it as RSS XML and return a mapping? Or do I have to read its
code and/or documentation - like I currently do with the classes other
developers create - and gain an understanding from that?

How about backing up some of your claims of this brave new programming
future with actual examples and evidence? Or would you prefer we
listen to your gut feeling and ignore concrete research, as you
recently recommended to Jane McGonigal? If that's the case, I believe
there's a Python4K project which would benefit greatly from your
radical ideas.
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-19 Thread Terry Reedy

On 3/18/2013 11:31 PM, Andrew Barnert wrote:


The idea that message passing is fundamentally different from method
calling also turned out to be one of those strange ideas, since it
only took a couple years to prove that they are theoretically
completely isomorphic—and,


Since the isomorphism is so obvious, I somehow missed that Kay actually 
thought that they were different. I suppose one could have different 
(but isomorphic) mental image models.


For me, the problem with message passing, as usually though of, or 
method calls in their usual syntax, is the breaking of symmetries such 
as the commutivity of number addition. I think of 'a + b' as a message 
to the interpreter, as supervisor of Python objects, to add a and b 
together and give me the result. It turns out that a Python interpreter 
does that by calling *either* a.__add__(b) or b.__add__(a) or possibly both.


The advantage of passing messages through a supervisor is that it can 
'supervise' the process. The behavior with binary operators is one 
example. The behavior of len(c) is another. If c.__len__ does not exist, 
(the programmers fault for calling len(c)), it raises one message. If 
c.__len__ does not return a non-negative int, it raises another.


 for that matter, they're both isomorphic to closures.

Translating into Python, does this refer to the fact that bound methods 
are closures?



In effect, your objects are just single-parameter functions, and
your messages are the call operator.


The proposal seems to be that every object should have a 
single-parameter call method that in turn calls a preferred, default 
single-parameter named method.


For lists: def __call__(self, ob): self.append(ob)
For ints: def __call__(self, other): return self.__add__(other)

That seems useless as a general pattern.

--
Terry Jan Reedy


--
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-19 Thread Mark Janssen
On Tue, Mar 19, 2013 at 1:09 PM, Terry Reedy tjre...@udel.edu wrote:
 On 3/18/2013 11:31 PM, Andrew Barnert wrote:

 The idea that message passing is fundamentally different from method
 calling also turned out to be one of those strange ideas, since it
 only took a couple years to prove that they are theoretically
 completely isomorphic—and,

 Since the isomorphism is so obvious, I somehow missed that Kay actually
 thought that they were different. I suppose one could have different (but
 isomorphic) mental image models.

Yes, that's the point I'm making, and it's significant because other
programmers can't see other's mental models.

mark
-- 
http://mail.python.org/mailman/listinfo/python-list


OOPv2: [Was: Message passing syntax for objects]

2013-03-19 Thread Mark Janssen
Hopefully this won't be considered mail spam, but another quora answer that
gets to the idea I'm after:  http://qr.ae/TMh7A

Reposted here for those who don't have accounts:

Q. Is it time for us to dump the OOP paradigm? If yes, what can replace it?

When I was using C++ and Java, more of my time was spent fitting the
problem to languages' OO paradigm than actually solving the problem.
When I used Python, I found I was focusing on the problem more compared to
other languages, but still that fitting aspect remained.

I am looking for a language design perspective answer, where we can compare
logic programming, functional, etc approaches and really see if the OOP
still fits/necessary and do we need to evolve towards a better paradigm.



A.  Yes.  OOP was the evolution of applying abstraction to a programming
language, to the machine, having to remember that we used to deal very
concretely with switches and bits.  Looking back, it can be seen to having
gone too far.

We don't need objects.  Programmers don't model physical things within the
computer, except in the limited domain of (generally game) simulation.   It
misinformed the paradigm in the wrong direction as many people found when
programmers started making vast hierarchies of objects to try to categorize
reality (Suburu inherits from Car inherits from Vehicle inherits
from.).  So we went the wrong direction.

What's to replace it?

There was an interesting discussion on comp.lang.python started in 2004 by
Mark Hahn about prototypes.  (See: Google Groups and Google Groups).   I
think somehow it captures the idea pretty well.

Prototypes are a refactoring of all the explorations that OOP made, taking
us back to our roots.  From the high-level abstraction of objects in the
computer, back to the simple, understandable (C) structs and then encoding
a way to shape or template data into a form that can take on abstract
qualities which can then be used in a very general way.  The key
difference?  You're not way up in abstraction-land attempting to impose
your personal taxonomy into the machine; instead, you're working from the
common-ground of the machine and co-ordinating a object/data space into
existence where other programmers can actually use them.   In other words,
you're advancing the state-of-the-art of data structuring instead of
applying some conceptual, hyper-personal abstraction into your code and
onto the machine.

The result?  Programmers can start making very simple, loosely-coupled,
universal types and build upwards with other programmers into more and more
complex, re-usable mashups.

This will create modularity, agility, and facilitate the evolution of a
universal programming space as well as create the Open Source Culture
that the Internet needs to re-start itself.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: OOPv2: [Was: Message passing syntax for objects]

2013-03-19 Thread Chris Rebert
On Tue, Mar 19, 2013 at 9:46 PM, Mark Janssen dreamingforw...@gmail.com wrote:
 Hopefully this won't be considered mail spam, but another quora answer that
 gets to the idea I'm after:  http://qr.ae/TMh7A

 Reposted here for those who don't have accounts:

 Q. Is it time for us to dump the OOP paradigm? If yes, what can replace it?

 When I was using C++ and Java, more of my time was spent fitting the problem
 to languages' OO paradigm than actually solving the problem.
 When I used Python, I found I was focusing on the problem more compared to
 other languages, but still that fitting aspect remained.

 I am looking for a language design perspective answer, where we can compare
 logic programming, functional, etc approaches and really see if the OOP
 still fits/necessary and do we need to evolve towards a better paradigm.



 A.  Yes.  OOP was the evolution of applying abstraction to a programming
 language, to the machine, having to remember that we used to deal very
 concretely with switches and bits.  Looking back, it can be seen to having
 gone too far.

 We don't need objects.  Programmers don't model physical things within the
 computer, except in the limited domain of (generally game) simulation.   It
 misinformed the paradigm in the wrong direction as many people found when
 programmers started making vast hierarchies of objects to try to categorize
 reality (Suburu inherits from Car inherits from Vehicle inherits from.).
 So we went the wrong direction.

 What's to replace it?

 There was an interesting discussion on comp.lang.python started in 2004 by
 Mark Hahn about prototypes.  (See: Google Groups and Google Groups).   I
 think somehow it captures the idea pretty well.

(Actual links to the referenced discussion(s) would be appreciated.)

 Prototypes are a refactoring of all the explorations that OOP made, taking
 us back to our roots.  From the high-level abstraction of objects in the
 computer, back to the simple, understandable (C) structs and then encoding a
 way to shape or template data into a form that can take on abstract
 qualities which can then be used in a very general way.  The key difference?
 You're not way up in abstraction-land attempting to impose your personal
 taxonomy into the machine; instead, you're working from the common-ground of
 the machine and co-ordinating a object/data space into existence where other
 programmers can actually use them.   In other words, you're advancing the
 state-of-the-art of data structuring instead of applying some conceptual,
 hyper-personal abstraction into your code and onto the machine.

 The result?  Programmers can start making very simple, loosely-coupled,
 universal types and build upwards with other programmers into more and more
 complex, re-usable mashups.

 This will create modularity, agility, and facilitate the evolution of a
 universal programming space as well as create the Open Source Culture that
 the Internet needs to re-start itself.

What a crock. Prototype-based languages are a somewhat interesting
alternative model, but IMO they are nowhere near as game-changing as
the post suggests. The elimination of classes simplifies the
MOP/metamodel a bit, but AFAICT doesn't improve much otherwise.
If prototypes were so revolutionary, they would presumably be faring
better in the marketplace of ideas (its promoters have been at it
since about as long as Python's have, apparently with less luck). If
you need evidence, look at JavaScript. It is, for better or worse,
among the most popular languages of our time and it is
prototype-based, but virtually no one chooses to make use of its
prototypical nature; almost all projects seem to end up consciously
re-implementing an approximation of traditional classes on top of the
prototype system (using one of several techniques, there seeming to be
no widespread agreement about which one is superior). Even prior to
JavaScript, in orthodox prototype-based languages, there is/was even a
concept of traits objects, which basically play much the same role
as classes in traditional OOP.

Also, I cannot for the life of me figure out how you made the abrupt
leap from message-passing to prototype-based OOP.
I echo Mark Lawrence's comment from your previous thread. +1 best
trolling so far this millennium. Have fun with your architecture
astronautics.

Regards,
Chris
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects

2013-03-18 Thread Tim Harig
On 2013-03-18, Mark Janssen dreamingforw...@gmail.com wrote:
 Alan Kay's idea of message-passing in Smalltalk are interesting, and
 like the questioner says, never took off.  My answer was that Alan
 Kay's abstraction of Everything is an object fails because you can't
 have message-passing, an I/O task, working in the same space as your
 objects -- they are two very different functionalities and they have
 to be preserved **for the programmer**.

Without concurrency, message passing and interacting through functions
are semantically similar.  You have operating for sending and receiving
messages.  Python does this through methods which potentially have inputs
and outputs.  Function syntax does have two slight advantages over pure
message passing.

1. A command is sent with the message as opposed to requiring requests to
be parsed from the message separately from the data.

2. Functions constrain what actions are available and what inputs they can
legal accept.  This is doubly true

With concurrency, CSP has shown us that message passing is valuable for
syncronization.  Most CSP languages retain the idea of passing messages.
This need not be the case.  The same semantics could be acheived through
function call syntax, although it would likely be less intuitive.

If you want to pursue your ideas further, and you have not already,
I suggest that you investigate Erlang and its CSP based concurrent
oriented programming.  Alan Kay, himself, commented that he felt it
matched his ideas of message based OOP.  When you return, there is a
Candygram package providing similar constructs (last I knew, it did not
yet impliment light weight processes) for Python.

You might also look at using Go which has CSP based channel and coroutine
semantics.  It has many things in common with Python.
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread Shane Green
So, by introducing this collaboration mechanism with a syntax that defines it 
as sending and receiving things that are *not* arbitrary objects, the language 
would naturally reinforce a more thoroughly decoupled architecture?  

Sent from my iPad

On Mar 17, 2013, at 8:53 PM, Mark Janssen dreamingforw...@gmail.com wrote:

 Hello,
 
 I just posted an answers on quora.com about OOP (http://qr.ae/TM1Vb)
 and wanted to engage the python community on the subject.
 
 Alan Kay's idea of message-passing in Smalltalk are interesting, and
 like the questioner says, never took off.  My answer was that Alan
 Kay's abstraction of Everything is an object fails because you can't
 have message-passing, an I/O task, working in the same space as your
 objects -- they are two very different functionalities and they have
 to be preserved **for the programmer**.
 
 This functional separation made me think that Python could benefit
 from a syntactical, language-given separation between Classes and the
 messages between them, to encourage loosely-coupled, modular OOP.
 Something that OOP has always promised but never delivered.
 
 I think we should co-opt C++'s poorly used  and  I/O operators
 (for files) and re-purpose them for objects/classes.  One could then
 have within interpreter space, the ability to pass in a message to an
 object.
 
 42  MyObject  #sends 42 as a message into MyObject
 
 The Object definition would then have special methods __in__ to
 receive data and a special way of outputing data that can be caught
 __str__(?).
 
 I'm hoping the community can comment on the matter
 
 Thanks,
 
 Mark
 Tacoma, Washington
 ___
 Python-ideas mailing list
 python-id...@python.org
 http://mail.python.org/mailman/listinfo/python-ideas
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread Mark Janssen
On Sun, Mar 17, 2013 at 11:46 PM, Steven D'Aprano st...@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
-- 
http://mail.python.org/mailman/listinfo/python-list


[Python-ideas] Message passing syntax for objects

2013-03-18 Thread Mark Janssen
 Ian Cordasco wrote:

 On Sun, Mar 17, 2013 at 11:53 PM, Mark Janssen
 dreamingforw...@gmail.com wrote:

 Hello,

 I just posted an answers on quora.com about OOP (http://qr.ae/TM1Vb)
 and wanted to engage the python community on the subject.


 My answer to that question would be that it *did*
 catch on, it's just that we changed the terminology.
 Instead of message passing, we talk about calling
 methods.

Yes, but this is where it breaks the OOP abstraction by 90 degrees.
By using function calls, you're telling the machine to do something.
But when you want to pass something to an object there should be a
natural way to do this for every object.  By using methods you pollute
the concept space with all sorts of semi-random (i.e. personal) names,
like append, add, enqueue, etc.

This proposal would not only make a consistent syntax across all
objects, but train the programmer to *think* modularly in the sense of
having a community of re-usable object.  I.e. What should I do if
another object passes me something?.  No one thinks this now, because
the programmer expects new developers to learn *their* interface!

Mark
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread Benjamin Kaplan
On Mon, Mar 18, 2013 at 10:18 AM, Mark Janssen
dreamingforw...@gmail.com wrote:
 Ian Cordasco wrote:

 On Sun, Mar 17, 2013 at 11:53 PM, Mark Janssen
 dreamingforw...@gmail.com wrote:

 Hello,

 I just posted an answers on quora.com about OOP (http://qr.ae/TM1Vb)
 and wanted to engage the python community on the subject.


 My answer to that question would be that it *did*
 catch on, it's just that we changed the terminology.
 Instead of message passing, we talk about calling
 methods.

 Yes, but this is where it breaks the OOP abstraction by 90 degrees.
 By using function calls, you're telling the machine to do something.
 But when you want to pass something to an object there should be a
 natural way to do this for every object.  By using methods you pollute
 the concept space with all sorts of semi-random (i.e. personal) names,
 like append, add, enqueue, etc.

 This proposal would not only make a consistent syntax across all
 objects, but train the programmer to *think* modularly in the sense of
 having a community of re-usable object.  I.e. What should I do if
 another object passes me something?.  No one thinks this now, because
 the programmer expects new developers to learn *their* interface!

 Mark
 --

You're dreaming of a utopia where computers just read our minds and
know what we're thinking. So what if I can pass 42 into an object.
What do I intend to happen with that 42? Do I want to add the element
to a list? Access the 42nd element? Delete the 42nd element? Let the
object pick a behavior at random? Clearly there must be some sort of
behavior defined for passing a message into an object. And now we're
back to learning the interface that the programmer designed. Only now,
instead of having different types of behavior grouped together into
classes, we have to use a different object for each operation. So
what's the benefit of that over having the object implement the
__call__ method?

Also, why would we re-use the bit shift operators for message passing?
Just because C++ decided to overload the existing operators to mean
reading into and writing out of a stream doesn't mean it's a good
idea.
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread 88888 Dihedral
zipher於 2013年3月19日星期二UTC+8上午1時04分36秒寫道:
 On Sun, Mar 17, 2013 at 11:46 PM, Steven D'Aprano st...@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.
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread Mark Janssen
 You're dreaming of a utopia where computers just read our minds and
 know what we're thinking. So what if I can pass 42 into an object.
 What do I intend to happen with that 42? Do I want to add the element
 to a list? Access the 42nd element? Delete the 42nd element? Let the
 object pick a behavior at random?

Huh?, No the programmer has to think of how data interacts with
his/her objects.  It's just that *now* the language is wise enough to
teach them to think about it.

 So
 what's the benefit of that over having the object implement the
 __call__ method?

You bring up an interesting subject.  I think you could get rid of the
__call__ special method on objects.  I think this is the wrong view
into the object universe or *data ecosystem*.

 Also, why would we re-use the bit shift operators for message passing?
 Just because C++ decided to overload the existing operators to mean
 reading into and writing out of a stream doesn't mean it's a good
 idea.

You're right, perhaps there's a better set of symbols that suggest
moving data.

Mark
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread Lele Gaifax
8 Dihedral dihedral88...@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.
l...@metapensiero.it  | -- Fortunato Depero, 1929.

-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread Mark Janssen
On Mon, Mar 18, 2013 at 12:06 PM, Georg Brandl g.bra...@gmx.net wrote:
 Am 18.03.2013 05:26, schrieb Mark Janssen:
 Continuing on this thread, there would be a new bunch of behaviors to
 be defined.  Since everything is an object, there can now be a
 standard way to define the *next* common abstraction of every object
 interacts with other objects.

 The problem is that for most objects there isn't *the* interaction.  Sure,
 you could split up complicated objects into small pieces with a smaller
 functionality, but at some point you have to stop.

Yes.  But that is the point, if you look at the quora post -- to
invert the object model and create mashups of simple modular data
types and working *upwards*.

  Let's see how this
 concept fares with simple types such as integers or collections...

 42  MyNumberType #would add the integer to your integer type

 That's just random.  Why not multiply?  Why not exponentiate?

Well, as I noted in another post, that while these can be broken down
into their simpler component (addition and negative numbers), numbers
should probably be treated separately.

 42  MyCollectionType  #would add the object into your collection:
  *poof*: no more random syntaxiis for putting things in collections.\

 So you've replaced one method of a collections API by your magical operator,
 for all collections.

Yes -- for all collections.  That's a pretty big gain right?

 What about the other methods that are just as important,
 such as deleting items, indexing, and querying?  The syntaxitis would stay
 just the same, except if you introduce more operators, which means new syntax
 again.

 Also, how would this work for dictionaries or deques?

Well, now you get into the Work:  a unified data model.   Deques,
trees, lists, etc were all preliminary evolutionary explorations on
this giant computer science journey of knowledge (and data types)
which will have to be, can be, pruned and dropped.

 MyObject  # queries the object to output its state.

 What is its state?  A readable representation?  A serialized representation?
 A memory dump?

That's still for us to decide.  We're mastering the OOP paradigm here:
  What is the ideal object and what is in common across all objects?
  We are Zen, we want to master the notion of object.  What is the
simplest object model possible without sacrificing critical
functionality...

 http://www.cnn.com;  MyInternetObject  #outputs the HTML text from 
 CNN's home page.

 Each object has to figure out how it will receive things from outside
 of it.  Things it can't handle (a string sent to an int) just have to
 be dropped to some other space, much like stderr does within the O.S.

 There are probably many other very interesting examples, but the key
 idea I'm working on (as noted in other messages), is a sort-of
 universal language for the internet, a WebOS to be applied to a
 universal data model.

 It seems that you are reinventing pipes (such as UNIX shell pipes).

That is a very interesting comparison.  That is something like what
I'm trying to do.  In tandem with the Internet, I do see a kind of
synthesis of Web + O.S. integration -- ultimately, creating a data
ecosystem.

mark
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread Benjamin Kaplan
On Mon, Mar 18, 2013 at 1:24 PM, Mark Janssen dreamingforw...@gmail.com wrote:
 On Mon, Mar 18, 2013 at 12:06 PM, Georg Brandl g.bra...@gmx.net wrote:
 Am 18.03.2013 05:26, schrieb Mark Janssen:
 Continuing on this thread, there would be a new bunch of behaviors to
 be defined.  Since everything is an object, there can now be a
 standard way to define the *next* common abstraction of every object
 interacts with other objects.

 The problem is that for most objects there isn't *the* interaction.  Sure,
 you could split up complicated objects into small pieces with a smaller
 functionality, but at some point you have to stop.

 Yes.  But that is the point, if you look at the quora post -- to
 invert the object model and create mashups of simple modular data
 types and working *upwards*.

  Let's see how this
 concept fares with simple types such as integers or collections...

 42  MyNumberType #would add the integer to your integer type

 That's just random.  Why not multiply?  Why not exponentiate?

 Well, as I noted in another post, that while these can be broken down
 into their simpler component (addition and negative numbers), numbers
 should probably be treated separately.

 42  MyCollectionType  #would add the object into your collection:
  *poof*: no more random syntaxiis for putting things in collections.\

 So you've replaced one method of a collections API by your magical operator,
 for all collections.

 Yes -- for all collections.  That's a pretty big gain right?


Nope. No gain at all. Instead of learning the add() method, you learn
the  operator. You have not simplified anything.
 It seems that you are reinventing pipes (such as UNIX shell pipes).

 That is a very interesting comparison.  That is something like what
 I'm trying to do.  In tandem with the Internet, I do see a kind of
 synthesis of Web + O.S. integration -- ultimately, creating a data
 ecosystem.

 mark

Yes, having the whole program run by chaining functions together is a
neat idea. And it works great in functional languages- if you want
that as a feature, use OCaml or Haskell. It works less well in
imperative languages where you are manipulating data, not just passing
it around.

 --
 http://mail.python.org/mailman/listinfo/python-list
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread Mark Janssen
On Mon, Mar 18, 2013 at 2:51 PM, Andrew Barnert abarn...@yahoo.com wrote:
 Have you even looked at a message-passing language?

 A Smalltalk message is a selector and a sequence of arguments. That's what 
 you send around. Newer dynamic-typed message-passing OO and actor languages 
 are basically the same as Smalltalk.

Yes, but you have to understand that Alan Kays came with strange ideas
of some future computer-human symbiosis.  So his language design and
other similar attempts (like php) is rather skewed from that premise

And also, despite name-dropping, I'm not trying to create anything
like that idea of message-passing.  I'm talking about something very
simple, a basic and universal way for objects to communicate.

 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.

 And you have to tell the object _how_ to interact with each other.

This is a different paradigm that what I'm talking about.  In the OOP
of my world, Objects already embody the intelligence of how they are
going to interact with the outside world, because I put them there.

 Even with reasonably intelligent animals, you don't just tell two animals to 
 interact, except in the rare case where you don't care whether they become 
 friends or dinner.

You're model of computer programming is very alien to me.  So I don't
think it will be productive to try to convince you of what I'm
suggesting, but feel free to continue...

Mark
-- 
http://mail.python.org/mailman/listinfo/python-list


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

2013-03-18 Thread Andrew Barnert
From: Mark Janssen dreamingforw...@gmail.com

Sent: Monday, March 18, 2013 4:41 PM


 On Mon, Mar 18, 2013 at 2:51 PM, Andrew Barnert abarn...@yahoo.com 
 wrote:
  Have you even looked at a message-passing language?
 
  A Smalltalk message is a selector and a sequence of arguments. 
 That's what you send around. Newer dynamic-typed message-passing OO and 
 actor languages are basically the same as Smalltalk.
 
 Yes, but you have to understand that Alan Kays came with strange ideas
 of some future computer-human symbiosis.  So his language design and
 other similar attempts (like php) is rather skewed from that premise

The idea that message passing is fundamentally different from method calling 
also turned out to be one of those strange ideas, since it only took a couple 
years to prove that they are theoretically completely isomorphic—and, for that 
matter, they're both isomorphic to closures.

 And also, despite name-dropping, I'm not trying to create anything
 like that idea of message-passing.  I'm talking about something very
 simple, a basic and universal way for objects to communicate.

Message passing is a simple, basic, and universal way for objects to 
communicate. Everything from dot-syntax method calls to JSON RPC protocols can 
be modeled as passing messages. But what you're talking about isn't message 
passing. The idea that messages have names, and reference objects as arguments, 
is fundamental, and by leaving that out, you're talking about something 
different. 

In effect, your objects are just single-parameter functions, and your 
messages are the call operator.

  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.
 

  And you have to tell the object _how_ to interact with each other.
 
 This is a different paradigm that what I'm talking about.  In the OOP
 of my world, Objects already embody the intelligence of how they are
 going to interact with the outside world, because I put them there.

The paradigm you're talking about is useless. You have lists that know how to 
append, but don't know how to get/search/iterate. Almost every useful object 
needs the intelligence to interact with the world in two or more ways.

  Even with reasonably intelligent animals, you don't just tell two 
 animals to interact, except in the rare case where you don't care whether 
 they become friends or dinner.
 
 You're model of computer programming is very alien to me.  So I don't
 think it will be productive to try to convince you of what I'm
 suggesting, but feel free to continue...


My model of (object-oriented) computer programming is that programming objects 
model objects which have a variety of behaviors, each of which is triggered by 
sending a different message. This is pretty much the central definition that 
everyone who programs or theorizes about programming uses. If you read any 
textbook, wiki page, journal article, or tutorial, they're all talking about 
that, or something directly isomorphic to it. If that's alien to you, then 
object-oriented programming is alien to you.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects

2013-03-17 Thread Mark Janssen
Continuing on this thread, there would be a new bunch of behaviors to
be defined.  Since everything is an object, there can now be a
standard way to define the *next* common abstraction of every object
interacts with other objects.  And going with my suggestion of
defining  and  operators, I'm going to explore the concept
further

 42  MyNumberType #would add the integer to your integer type
 42  MyCollectionType  #would add the object into your collection:  
 *poof*: no more random syntaxiis for putting things in collections.\
 MyObject  # queries the object to output its state.
 http://www.cnn.com;  MyInternetObject  #outputs the HTML text from CNN's 
 home page.

Each object has to figure out how it will receive things from outside
of it.  Things it can't handle (a string sent to an int) just have to
be dropped to some other space, much like stderr does within the O.S.

There are probably many other very interesting examples, but the key
idea I'm working on (as noted in other messages), is a sort-of
universal language for the internet, a WebOS to be applied to a
universal data model.

Mark
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Message passing syntax for objects

2013-03-17 Thread Mark Janssen
On Sun, Mar 17, 2013 at 9:26 PM, Mark Janssen dreamingforw...@gmail.com wrote:
 Continuing on this thread, there would be a new bunch of behaviors to
 be defined.  Since everything is an object, there can now be a
 standard way to define the *next* common abstraction of every object
 interacts with other objects.  And going with my suggestion of
 defining  and  operators, I'm going to explore the concept
 further
 Each object has to figure out how it will receive things from outside
 of it.  Things it can't handle (a string sent to an int) just have to
 be dropped to some other space, much like stderr does within the O.S.

I guess here's the idea I'm getting at.  As a programming language
paradigm, OOP has to evolve -- it still has too much dependency on
number-crunching and the mathematical operators still dominate.

But a better abstraction to wrap the OOP paradigm around is
*message-passing* rather than *arithmetic*.  And having in/out
operators on objects is just *way cool*.

mark
-- 
http://mail.python.org/mailman/listinfo/python-list