Path: csiph.com!usenet.pasdenom.info!news.albasani.net!newsfeed.freenet.ag!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.004 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'syntax': 0.03; 'subject:Python': 0.05; 'objects,': 0.07; 'python': 0.09; 'abstraction': 0.09; 'sfxlen:2': 0.10; 'programmer': 0.11; 'add,': 0.16; 'expects': 0.16; 'janssen': 0.16; 're-usable': 0.16; 'sorts': 0.16; 'subject:ideas': 0.16; 'to:name:python list': 0.16; 'wrote:': 0.17; 'passes': 0.17; '>>>': 0.18; 'subject:] ': 0.19; 'object.': 0.22; 'posted': 0.22; 'to:2**1': 0.23; 'machine': 0.24; 'pass': 0.25; 'header:In-Reply-To:1': 0.25; 'developers': 0.26; 'question': 0.27; 'i.e.': 0.27; 'message-id:@mail.gmail.com': 0.27; 'methods.': 0.29; 'oop': 0.29; 'thinks': 0.29; 'to:name :python-ideas': 0.29; 'train': 0.30; 'function': 0.30; 'on,': 0.30; 'sense': 0.31; 'to:addr:python-list': 0.33; 'another': 0.33; 'changed': 0.34; 'received:google.com': 0.34; 'consistent': 0.35; 'community': 0.35; 'pm,': 0.35; 'something': 0.35; 'there': 0.35; 'but': 0.36; 'wanted': 0.36; '(i.e.': 0.36; 'should': 0.36; 'subject:[': 0.37; 'mark': 0.38; 'object': 0.38; 'talk': 0.38; 'instead': 0.39; 'to:addr:python.org': 0.39; 'space': 0.39; 'hello,': 0.39; 'where': 0.40; 'subject:-': 0.40; 'telling': 0.61; 'natural': 0.65; 'engage': 0.65; 'subject.': 0.65; 'to:addr :python-ideas': 0.69; '"what': 0.84; '2013': 0.84; 'calls,': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=Z+Ase9SU1MJKfoqCZyL8PN9s1UVJSr5g08mH1Urgr2A=; b=K2ySnH53K9n34fTIzP43qpsWsUQh8qx05JtBsAHop3weZ0RR1OA3V5/e66Kc/knjXd gDDfFBm96Mu9F+NMczJkFbe5UF7y+0k7nW8MyIFRSPZ1/quw9THRMHeoLFND++Dq2nfr 3jBd5CJIVIfalmZjGs1ggB3Xs+gEZ9auuTWJuEC+dUzmdNKvrCsnXAlG9EBq5YGx0mlr v5rUMuAImORhwFVJJssl09r0xk7PCHL7MF6yIzgkBsP94sk5RSWmvRQS3vClbO/d8Xuy /8hZmhPz23soGO9IK/csv+D8XEdkQ8dVWQPH5lpNUW7bW/m0fRnsGjupI2+CUrdLuJOm VbXw== MIME-Version: 1.0 X-Received: by 10.194.119.33 with SMTP id kr1mr26185380wjb.36.1363627133413; Mon, 18 Mar 2013 10:18:53 -0700 (PDT) In-Reply-To: References: <5146A76D.1020205@canterbury.ac.nz> Date: Mon, 18 Mar 2013 10:18:53 -0700 Subject: [Python-ideas] Message passing syntax for objects From: Mark Janssen To: Python List , Python-Ideas Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 30 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1363627134 news.xs4all.nl 6849 [2001:888:2000:d::a6]:41434 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:41441 > Ian Cordasco wrote: >> >> On Sun, Mar 17, 2013 at 11:53 PM, Mark Janssen >> 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