Path: csiph.com!usenet.pasdenom.info!news.albasani.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!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.069 X-Spam-Evidence: '*H*': 0.86; '*S*': 0.00; 'mathematics': 0.05; 'arguments': 0.09; 'derived': 0.09; 'violates': 0.09; 'cc:addr :python-list': 0.11; '*should*': 0.16; 'implies': 0.16; 'ought': 0.16; 'programmers,': 0.16; 'subclass': 0.16; 'subclasses': 0.16; 'subclassing': 0.16; 'subject:object': 0.16; 'substitution': 0.16; 'trying': 0.19; 'machine': 0.22; 'saying': 0.22; 'cc:addr:python.org': 0.22; 'documented': 0.24; 'laws': 0.24; 'cc:2**0': 0.24; 'cc:no real name:2**0': 0.24; 'right.': 0.26; 'defined': 0.27; 'header:In-Reply-To:1': 0.27; 'idea': 0.28; 'leave': 0.29; 'message-id:@mail.gmail.com': 0.30; 'work.': 0.31; 'that.': 0.31; 'types.': 0.31; 'class': 0.32; 'programmers': 0.33; 'subject:the': 0.34; 'basic': 0.35; 'classes': 0.35; 'something': 0.35; 'done.': 0.35; 'no,': 0.35; 'objects': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'instances': 0.36; 'done': 0.36; 'should': 0.36; 'wrong': 0.37; 'list': 0.37; 'list.': 0.37; 'starting': 0.37; 'being': 0.38; 'ends': 0.38; 'generic': 0.38; 'does': 0.39; 'called': 0.40; 'how': 0.40; 'chain': 0.60; 'most': 0.60; 'new': 0.61; 'information,': 0.61; "you're": 0.61; 'first': 0.61; 'back': 0.62; 'making': 0.63; 'field': 0.63; 'more': 0.64; 'to:addr:gmail.com': 0.65; 'fulfill': 0.68; 'internet': 0.71; 'everything,': 0.84; 'object:': 0.84; 'principles.': 0.84; 'children.': 0.93; 'contracts': 0.93; 'washington': 0.93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=49scJkgFI9uOImQUJnhEXkubRl9d3KS+JddZVNdlZ6E=; b=BgiA3WrEgTyhJyCfxo2McGEG15JAClAiWBbDOZyqdOWaVMSIjAP0Y8ouyzt+y/vbHI 2X+llkgNt7IbbVdmJNH58iM1jJS17am4EkAHLEVwGMr50pCOjclsJCDE7Co7k//z8js3 FKn0r4U++uokw4nimtq5z14Nt9JFoX8fgDBjtVKS+jZqX4BsRAqb4LydJ9SFeWLq4UNB Vbj+dQi5nhmR472At7NJ/4yFDPF9SqdOGCH5yKVoD39XwifCCYdrFqSRDv0NKnmhXJ61 4kI/qPDCkcK8WT2bFNfxB3zfqX4X6Szb5dQM0KJF5KaHmydsk2VMpkrU89E8/Csflt9Y pxaA== MIME-Version: 1.0 X-Received: by 10.180.38.37 with SMTP id d5mr10605410wik.37.1372201256764; Tue, 25 Jun 2013 16:00:56 -0700 (PDT) In-Reply-To: References: <15ba0011-bbf1-42f7-b3ea-1c1d4b70e56b@googlegroups.com> <51c66962$0$29999$c3e8da3$5496439d@news.astraweb.com> <20130623133546.GA2308@capricorn> <51c723b4$0$29999$c3e8da3$5496439d@news.astraweb.com> <51C74D6E.6030200@rece.vub.ac.be> Date: Tue, 25 Jun 2013 16:00:56 -0700 Subject: Re: What is the semantics meaning of 'object'? From: Mark Janssen To: Chris Angelico Content-Type: text/plain; charset=ISO-8859-1 Cc: python-list@python.org 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: 44 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1372202622 news.xs4all.nl 15879 [2001:888:2000:d::a6]:51431 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:49211 >> Here's how it *should* be made: the most superest, most badassed >> object should take care of its children. New instances should >> automatically call up the super chain (and not leave it up to the >> subclasses), so that the parent classes can take care of the chil'en. >> When something goes wrong the parent class has to look in and see >> what's wrong. > > So what you're saying is that the first class defined does everything, > and subclasses _restrict_ what can be done? I disagree strongly: That's right. Just as the *machine* restricts what can be done. It's an upturning of the purity model and going back to practicality. > 1) That breaks the Liskov Substitution Principle. A subclass of list > ought to fulfill the contracts of a basic list. We don't need LSP. I write about this on the WIkiWikiWeb where there were many arguments documented and many hairs frazzled. LSP was derived from AlanKay's abstract idea of "Everything is an object". But no -- there is a *physics* for information, and it ends at the machine types. > 2) It implies that someone can invent an all-encompassing superclass > before any subclassing is done. No, we start with basic types and work upwards. The "all-encompassing" superclass it an all-encompassing data object: in mathematics, it's called a SET -- and mathematics has already done the work to prove that it's the most generic and all-encompassing, a field of SET THEORY. > This kinda violates the laws of > information. Programmers, being creative entities, will be adding to > the pool of knowledge. Trying to shoehorn everything into one object > won't work. No, we don't need programmers adding to the "pool of knowledge" -- the internet does that. We need programmers making data objects that can present data in new and more interesting ways -- starting from basic principles. -- MarkJ Tacoma, Washington