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


Groups > comp.lang.python > #41564

OOPv2: [Was: Message passing syntax for objects]

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 <dreamingforward@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.002
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'python,': 0.02; 'subject:: [': 0.03; 'languages,': 0.04; 'prototypes': 0.07; '2004': 0.09; 'abstraction': 0.09; 'bits.': 0.09; 'high-level': 0.09; 'impose': 0.09; 'logic': 0.09; 'objects.': 0.09; 'switches': 0.09; 'vast': 0.09; 'itself.': 0.11; 'language,': 0.11; 'language': 0.14; 'encoding': 0.15; 'java,': 0.15; 'dump': 0.16; "languages'": 0.16; 'made,': 0.16; 'paradigm.': 0.16; 'prototypes.': 0.16; 're- usable': 0.16; 'refactoring': 0.16; 'structs': 0.16; 'subject:Was': 0.16; 'to:name:python list': 0.16; 'shape': 0.17; 'discussion': 0.20; 'aspect': 0.22; 'focusing': 0.22; 'machine.': 0.22; 'universal': 0.22; '\xa0so': 0.22; 'programming': 0.23; 'idea': 0.24; 'machine': 0.24; 'c++': 0.27; 'replace': 0.27; 'message-id:@mail.gmail.com': 0.27; 'went': 0.28; 'attempting': 0.29; 'existence': 0.29; 'far.': 0.29; 'oop': 0.29; 'spam,': 0.29; 'yes.': 0.29; 'objects': 0.29; 'skip:& 10': 0.29; 'source': 0.29; "i'm": 0.29; 'code': 0.31; 'gets': 0.32; 'problem.': 0.32; 'towards': 0.32; 'hopefully': 0.33; 'instead,': 0.33; 'programming,': 0.33; 'problem': 0.33; 'to:addr:python-list': 0.33; '(c)': 0.33; 'another': 0.33; 'skip:& 20': 0.33; 'received:google.com': 0.34; 'wrong': 0.34; 'compared': 0.35; 'direction': 0.35; 'solving': 0.35; 'subject:]': 0.35; 'open': 0.35; "won't": 0.35; 'there': 0.35; 'really': 0.36; 'except': 0.36; 'but': 0.36; 'compare': 0.36; 'programmers': 0.36; 'too': 0.36; 'well.': 0.37; 'data': 0.37; 'subject:: ': 0.38; 'mark': 0.38; 'some': 0.38; 'things': 0.38; 'instead': 0.39; 'to:addr:python.org': 0.39; 'build': 0.39; 'space': 0.39; 'google': 0.39; 'where': 0.40; 'think': 0.40; 'your': 0.60; 'skip:u 10': 0.60; 'back': 0.62; 'personal': 0.62; 'more': 0.63; 'within': 0.64; 'gone': 0.64; 'making': 0.64; 'here': 0.65; 'our': 0.65; 'taking': 0.65; 'evolution': 0.65; 'vehicle': 0.65; 'applying': 0.69; 'car': 0.69; 'physical': 0.69; 'internet': 0.71; 'captures': 0.84; 'complex,': 0.84; 'fitting': 0.84; 'roots.': 0.84; 'simulation.': 0.84; 'taxonomy': 0.84; 'qualities': 0.91
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=+ic5MwaTBqhMEW205Szme8phoCWULKIoitZg7Xk3hvY=; b=GkqjNkdqXrzoc+8KKPfA9iFptAUnL340a0fraDGa2o+oFAsLbA0DF+LQC9o8/rkq3X epkOX7hE6C+XRAjYhuTZ6lYdpMrU1Fl+WoHzYXPULi38ig+6Tlw0L9M72zrRVbWulQny dw6UrTtOmiQKCXF+3EIRi17+dkTar895ysFCRFaaMIy193etsyj3C33UTZYVhKcgrRUw 01VmMmMxTyW6s0yGK8NjaXS3aZ936Ta9dBoEoqPnYCjj6JmEhAY7I7gtO6rtAxF/xZ7I L9MTjLbSjaPBXk1+NP/W3ydzUcJF2TPmCuvkCjWB6nFKarN36O4UoDaHv3is8mF2f0ka twow==
MIME-Version 1.0
X-Received by 10.194.119.33 with SMTP id kr1mr7776179wjb.36.1363754792350; Tue, 19 Mar 2013 21:46:32 -0700 (PDT)
Date Tue, 19 Mar 2013 21:46:32 -0700
Subject OOPv2: [Was: Message passing syntax for objects]
From Mark Janssen <dreamingforward@gmail.com>
To Python List <python-list@python.org>
Content-Type multipart/alternative; boundary=089e01227b94f579df04d853e79e
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.3544.1363754800.2939.python-list@python.org> (permalink)
Lines 111
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1363754800 news.xs4all.nl 6907 [2001:888:2000:d::a6]:52783
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:41564

Show key headers only | View raw


[Multipart message — attachments visible in raw view] - view raw

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.

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

OOPv2: [Was: Message passing syntax for objects] Mark Janssen <dreamingforward@gmail.com> - 2013-03-19 21:46 -0700

csiph-web