Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed6.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.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'concurrent': 0.04; '(except': 0.05; 'subject:Python': 0.05; 'behavior.': 0.07; 'concurrently': 0.07; 'bash': 0.09; 'output': 0.10; 'protocol': 0.15; '1970s.': 0.16; 'grained': 0.16; 'input,': 0.16; 'it).': 0.16; 'pipes': 0.16; 'redundant,': 0.16; '\xa0what': 0.16; 'language': 0.16; 'rewrite': 0.18; "haven't": 0.20; 'memory': 0.21; 'thus': 0.21; 'maybe': 0.21; 'input': 0.22; 'header:In- Reply-To:1': 0.22; '(or': 0.22; 'received:209.85.213.46': 0.23; 'received:mail-yw0-f46.google.com': 0.23; '\xa0if': 0.23; 'fine': 0.24; 'fix': 0.25; 'code': 0.26; 'effect': 0.28; 'script': 0.28; 'message-id:@mail.gmail.com': 0.29; 'transition': 0.29; 'problem': 0.29; '(and': 0.30; 'solved': 0.30; 'suggested': 0.32; 'does': 0.32; 'modules': 0.32; 'changing': 0.32; 'there': 0.33; 'it.': 0.33; 'instead': 0.33; 'coding': 0.34; 'to:addr:python-list': 0.35; 'example,': 0.37; 'acceptable': 0.37; 'affects': 0.37; 'suddenly': 0.37; 'to:name:python-list': 0.37; 'run': 0.37; 'but': 0.37; 'received:google.com': 0.37; 'another': 0.37; 'received:209.85': 0.38; 'allows': 0.38; 'some': 0.38; 'problems': 0.38; 'sometimes': 0.38; '(with': 0.39; 'received:209': 0.39; 'point': 0.40; '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; 'calls,': 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=x5/HBuDzIq+p1nnGs1NVybp7a8oziEvY6KPv67PsIrI=; b=UW5lSUm57nhFy2hAtB0Pq56K+DZidMrTmvVOvFtQ9u5RSn+BOMHXC47OSJ+fdmFknG 5DYrDojncyFAwg11OjEzZhX8yGtvKj2TSlmcAqSLexO+XHHOXPcavWbpDqhlTFgrk8Ee LCtPfTZS4S+22CMbwaIJXi+2ZJtkkrRDb8lzXw2/2lCkwjv8mcQm5kduy/TI39WzhcvO eg7UUZvqIYQ1DrW3PxCnwN48qMUYLzD0VsweeTsUEAjcvrIYOdmIGDQ3ilz7+jfdXHgv VT9N73lp9ZDloNNED0s3hPFMoZMsMhy/9Q97mLsu3CtszCJlEWIbYW3I9/T3UJTv7Yyg CnNA== 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: Thu, 22 Mar 2012 15:33:28 -0400 Subject: Re: Python is readable From: Nathan Rice To: python-list 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: 32 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1332444812 news.xs4all.nl 6987 [2001:888:2000:d::a6]:46901 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:22043 >> 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. Pipes do not provide any fine grained control over the concurrent behavior. If you want to change the order of calls, suddenly you have to write a bash script (with its own set of issues), etc. Unix solved these problems in much the same way that the evolution of appendages solved the problem of changing location from one point to another before the automobile. The process matters.