Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!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.005 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; '(except': 0.05; 'subject:Python': 0.05; 'concurrently': 0.07; 'output': 0.10; 'am,': 0.12; 'protocol': 0.15; '1970s.': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'input,': 0.16; 'it).': 0.16; 'pipes': 0.16; 'redundant,': 0.16; '\xa0what': 0.16; 'language': 0.16; 'wrote:': 0.18; 'rewrite': 0.18; "haven't": 0.20; 'memory': 0.21; 'thus': 0.21; 'received:209.85.210.174': 0.21; 'received:mail-iy0-f174.google.com': 0.21; 'maybe': 0.21; 'input': 0.22; 'header:In-Reply-To:1': 0.22; '(or': 0.22; '\xa0if': 0.23; 'fix': 0.25; 'code': 0.26; 'effect': 0.28; 'message-id:@mail.gmail.com': 0.29; 'transition': 0.29; '(and': 0.30; 'solved': 0.30; 'suggested': 0.32; 'does': 0.32; 'modules': 0.32; 'there': 0.33; 'it.': 0.33; 'instead': 0.33; 'fri,': 0.34; 'coding': 0.34; 'to:addr:python-list': 0.35; 'example,': 0.37; 'acceptable': 0.37; 'affects': 0.37; 'run': 0.37; 'but': 0.37; 'received:google.com': 0.37; 'received:209.85': 0.38; 'allows': 0.38; 'some': 0.38; 'problems': 0.38; 'sometimes': 0.38; 'received:209': 0.39; 'change': 0.40; 'to:addr:python.org': 0.40; 'back': 0.60; "you'll": 0.61; 'your': 0.61; 'you.': 0.62; 'met': 0.62; 'chain': 0.66; 'forth': 0.77; 'guaranteed': 0.77; 'nathan': 0.84 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 :content-type:content-transfer-encoding; bh=VueEY96zjB81M9zLsLPCWNjciBDGOIxDt7dztHxyAhw=; b=YrqE7YVcEb2ArmGoVUCEy6yJmPxWH8m8RUDGAtTULIQPAvgUK1YYJ50atxFg4tnY0p UHhyQ3B0qMenZL+5ZXU9uGn8cXr3RLf5RcrPSC0KzbTrhN7/mXsLrjXaBAEwqLhGyod2 20RjmHgnRnH5Vo6VT2ws1VokS8f5tozO3vwzq8aXw3lTxJ0jCypKzj7ElpO9BGb7fg8j XOliuf8vFYoOaM+dICFmBCCI5FoKH4ZuIrJJ48PhJdWzu/IUMUGiYjpdq0aYOrqc6cg4 yX//FwJjDkPBegUQWKa1DHYiaONMP7Yc1qcJ9WmwQ0eGlGh6AVosK08OALpgJE6V23du nEMw== MIME-Version: 1.0 In-Reply-To: References: <4f612b19$0$1379$4fafbaef@reader2.news.tin.it> <4f691f3d$0$29981$c3e8da3$5496439d@news.astraweb.com> <87d386lmai.fsf@benfinney.id.au> <8a77bf8d-b12f-442b-a1a3-479b5d66d366@tx8g2000pbc.googlegroups.com> <6af70db0-dc4a-48ee-9ee2-1a934846d5f2@r2g2000pbs.googlegroups.com> <32b8c4ae-2509-43df-abf0-0fb308be398f@oq7g2000pbb.googlegroups.com> <4f6ae931$0$29883$c3e8da3$5496439d@news.astraweb.com> Date: Fri, 23 Mar 2012 06:21:12 +1100 Subject: Re: Python is readable From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 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: 28 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1332444075 news.xs4all.nl 6887 [2001:888:2000:d::a6]:39916 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:22041 On Fri, Mar 23, 2012 at 1:29 AM, Nathan Rice wrote: > For example, your ability to reason about the behavior of the system > you posited as a whole is limited. =A0Are there parts of the different > modules that can execute concurrently? =A0Is the output of module1 > guaranteed to be acceptable as the input for module2? =A0Is part of > module3 redundant (and thus avoidable) given some conditions in > module1? =A0If you make a change in module2 what effect does that have > on module3 and module4? =A0What if you need to go back and forth between > module2 and module3 until some criterion is met before you transition > to module4? =A0What if you sometimes want to run module2b instead of > module2? Pipes allow different modules to execute concurrently (except on DOS and maybe Windows, haven't checked). Nothing in ANY language "guarantees" acceptable input, but protocolling would do that for you. If part of module3 is redundant, you don't call it. If you make a change to one that affects others, then you fix the others, same as in any other coding system (or non-coding system - if you upgrade your hardware from an 8086 with 1MB of memory to a modern box with >4GB, you'll have to rewrite your code to take advantage of it). The (somewhat stupid) protocol I suggested allows you to go between 2 and 3 before going to 4. If you want module2b, you add it to the chain and call on it. Yep, Unix solved all your problems back in the 1970s. ChrisA