Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.albasani.net!news.stack.nl!newsfeed.xs4all.nl!newsfeed4a.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.004 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'languages,': 0.04; 'importing': 0.05; 'subject:Python': 0.06; 'attribute': 0.07; 'float': 0.07; 'json': 0.07; '*is*': 0.09; 'ruby,': 0.09; 'subject:using': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; '(case': 0.16; 'argument.': 0.16; 'before.': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'lisp': 0.16; 'logger': 0.16; "module's": 0.16; 'parameter.': 0.16; 'personally,': 0.16; 'precision,': 0.16; 'programmers.': 0.16; 'repl': 0.16; 'subclass': 0.16; 'wrote:': 0.18; 'import': 0.22; 'cc:addr:python.org': 0.22; "haven't": 0.24; 'cc:2**0': 0.24; 'header:In-Reply-To:1': 0.27; 'specifically': 0.29; 'feature': 0.29; 'am,': 0.29; 'compared': 0.30; 'dec': 0.30; 'strongly': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'code': 0.31; "d'aprano": 0.31; 'obscure': 0.31; 'perl': 0.31; 'steven': 0.31; 'figure': 0.32; 'community': 0.33; 'fri,': 0.33; 'implemented': 0.33; 'agree': 0.35; 'possible.': 0.35; 'good.': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'done,': 0.36; 'keyword': 0.36; 'reality': 0.36; 'should': 0.36; 'being': 0.38; 'loss': 0.38; 'sometimes': 0.38; 'rather': 0.38; 'anything': 0.39; 'expect': 0.39; 'does': 0.39; '12,': 0.39; 'bad': 0.39; 'legitimate': 0.39; 'changed': 0.39; 'even': 0.60; 'tell': 0.60; 'numbers': 0.61; 'took': 0.61; 'times': 0.62; 'places': 0.64; 'more': 0.64; 'debate': 0.68; 'nobody': 0.68; 'family': 0.73; 'conservative': 0.84; 'popularity': 0.84; 'resistance': 0.84; 'attitude': 0.91; 'thing,': 0.91; 'to:none': 0.92; 'hundred': 0.95 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:cc :content-type; bh=Tm9lrqEnXO2Ax0mX0BrHjBOWfYavykCbG6jyRbY9MMw=; b=O8l/CZb2560Qgb8ndJU3RHTurNaRw7R9Pv+lsLv1OWh6sw7880/aHsaztlSXAa8YjW Eat8t29Z8Srss+hDnQqpkasqkdCL9KNz1zIoXL/mgMsxyHN1lncr+SMtRUXO3W71odA/ XABhrFhtTykC5OqVIBIBES+EgK4fHrmkEO7sbsYbVyYjjKkz45cNnVSr4RzDvkK7HTah JdjgbXJWUWzIxAGp/pqOsd+El4JzHLxjjsnH5GIjiHnprBxtS1e0ozvp7bTkVAzcRY5Z uF9u3q6ebIL1i1TkLR4l8/kPeOrMk0UzQ2OmSrjVoAno5NOT4xNEfMxgMBqr+V3yRII3 Fg+g== MIME-Version: 1.0 X-Received: by 10.50.62.104 with SMTP id x8mr2132878igr.2.1418345044536; Thu, 11 Dec 2014 16:44:04 -0800 (PST) In-Reply-To: <548a28b4$0$13001$c3e8da3$5496439d@news.astraweb.com> References: <004e01d01173$e1641c10$a42c5430$@gmail.com> <5484e3d8$0$13013$c3e8da3$5496439d@news.astraweb.com> <54866372$0$12991$c3e8da3$5496439d@news.astraweb.com> <54878f8a$0$13010$c3e8da3$5496439d@news.astraweb.com> <54881159$0$2817$c3e8da3$76491128@news.astraweb.com> <54891733$0$2817$c3e8da3$76491128@news.astraweb.com> <548a28b4$0$13001$c3e8da3$5496439d@news.astraweb.com> Date: Fri, 12 Dec 2014 11:44:04 +1100 Subject: Re: Python Iterables struggling using map() built-in From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 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: 28 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1418345054 news.xs4all.nl 2898 [2001:888:2000:d::a6]:36744 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:82398 On Fri, Dec 12, 2014 at 10:28 AM, Steven D'Aprano wrote: > I think that there is a legitimate debate to be had as to whether this > conservativeness and resistance to change is a good thing or a bad thing, > but I don't think that there should be any debate about the reality of the > Python community being strongly conservative, compared to the "anything > goes" attitude of (say) Ruby, Perl and Lisp programmers. We don't like code > that does anything we haven't seen a hundred times before. I agree that Python is a lot more conservative than many languages, and personally, I think it's good. When it comes to monkeypatching, less is *definitely* better - less places where you have to figure out what import changed the meanings of your built-ins, and so on. (Case in point: A logger replacement tampered with the log.info()/log.error() family of functions, adding a keyword parameter. Took me a fair amount of digging to find out exactly where that happened, and it made REPL importing of the module's functions rather awkward.) The same is true of obscure namespaces, specifically because they're obscure; if I do a JSON decode of something, I'm not going to check to see if numbers came through as a subclass of float with a ".warnings" attribute to tell me about loss of numeric precision, even though that would be perfectly possible. Since almost nobody does this, nobody will expect it to be done, ergo nobody will go looking for it, and the feature may as well not even have been implemented if it's never seen. Popularity *is* sometimes a legitimate argument. ChrisA