Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Chris Angelico Newsgroups: comp.lang.python Subject: Re: Strange range Date: Sun, 3 Apr 2016 17:08:21 +1000 Lines: 37 Message-ID: References: <87y48xjwqq.fsf@elektro.pacujo.net> <56fe76f2$0$22141$c3e8da3$5496439d@news.astraweb.com> <87lh4xjt37.fsf@elektro.pacujo.net> <1671ea2b-09ff-4745-a6e7-d2c57864cba3@googlegroups.com> <87zitbpwpr.fsf@elektro.pacujo.net> <87vb3zpu49.fsf@elektro.pacujo.net> <1459665792.195389.567158250.1843796D@webmail.messagingengine.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: news.uni-berlin.de S+c0KMucbN68OYGczmX2BgGSJ8GpRXoIndCTwnO0Nw2Q== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.025 X-Spam-Evidence: '*H*': 0.95; '*S*': 0.00; 'cc:addr:python-list': 0.09; 'python': 0.10; 'syntax': 0.13; 'django': 0.13; '2016': 0.16; 'codebase': 0.16; 'devs': 0.16; 'elsewhere.': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'keyword.': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'similarly,': 0.16; 'stdlib.': 0.16; 'usage,': 0.16; 'uses,': 0.16; 'wrote:': 0.16; 'app': 0.16; 'exists': 0.18; 'library,': 0.18; 'cc:2**0': 0.20; 'cc:addr:python.org': 0.20; 'proposed': 0.20; "aren't": 0.22; 'stephen': 0.22; 'code,': 0.23; 'references': 0.23; 'this:': 0.23; 'examples': 0.24; 'header:In- Reply-To:1': 0.24; 'all.': 0.24; "doesn't": 0.26; 'example': 0.26; 'developers': 0.26; 'expanding': 0.27; 'not.': 0.27; 'message- id:@mail.gmail.com': 0.27; '[2]': 0.27; 'change,': 0.27; 'this.': 0.28; 'measure': 0.29; 'pep': 0.29; 'url:peps': 0.29; 'code': 0.30; 'standards': 0.30; 'another': 0.32; '[1]': 0.32; 'older': 0.32; 'useful': 0.33; 'source': 0.33; 'url:python': 0.33; 'usually': 0.33; 'ones,': 0.33; 'proposals': 0.33; 'case,': 0.34; 'received:google.com': 0.35; 'attempt': 0.35; 'newer': 0.35; 'url:dev': 0.35; 'but': 0.36; 'should': 0.36; 'there': 0.36; 'url:org': 0.36; 'received:209.85': 0.36; 'pm,': 0.36; 'subject:: ': 0.37; 'two': 0.37; 'being': 0.37; 'say': 0.37; 'received:209.85.213': 0.37; 'received:209': 0.38; 'anything': 0.38; 'mean': 0.38; 'rather': 0.39; 'some': 0.40; 'easy': 0.60; 'body': 0.61; 'provide': 0.61; 'introduction': 0.63; 'more': 0.63; 'necessarily': 0.63; 'times': 0.63; 'benefit': 0.66; 'else.': 0.66; 'analysis': 0.72; 'bastion': 0.84; 'chrisa': 0.84; 'demonstrates': 0.84; 'favouring': 0.84; 'idiomatic': 0.84; 'proposals,': 0.84; 'to:none': 0.91; '359': 0.91; 'that),': 0.91 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; bh=0fA+ScBIe/snSooY1ByDourAdJ5XLncuh30N3V3Rt9Y=; b=V5oKHdz2LClzPbgit7eVZBFeCvA9g+ObydeM2x8lj9wWfzc6/5O3BQnbXzEQz8zc6A 0NyRA/cmPH82YTUEodnXRsEVKazPHM8ukW3XCu+jesUhO7LdGp0HSF7l3NAEDpiDvjT6 Luoueyg2JIK3h/rVRZK0J90IuUbYB7Xw0cwBa1MIUDvQlsyeBxhM/U4cgMBD/PCvH0l7 C6DL5gRSidJZv439lIzbtZDuGHLpycYg7T464BP0pQ4y+Tiqh7+jfzo+Gc5OlI/LnVAQ YBaFfKvb00h65dkO3be05Vy5HycyL3GMkFmrtvRtWrmGGH+8xRuAwpSRYmv6/mzEIt2w hA9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:cc; bh=0fA+ScBIe/snSooY1ByDourAdJ5XLncuh30N3V3Rt9Y=; b=Na8UJ0Le7WfDyRyE3csjMhFo85GDCCWWO43Qw4n67Cdg0zaLTjwIetbheKSdzVDNqW DAD1WK/U03j/+ItFnWaF1VUmT+pDXnvHzp57FYikJeqncUgTF/FPDBShTOTFh3L8KHKU tAUYfVXG6Lq0XSYLI0DNC/bgXHKamf4DHGX3TY47PtKjcTwX1m0RS5qaoJ23O/eiXm5t xfqv/erpggRsYLnxv6eVJ9hab0+rtVF4sEvLQlRc95aR+yQm8sWpepsp/4IsG4aK3ngu yQpvLj7TTSMxaeGQ3LnnTGM3Ljm1hb2/uHXHmoQLS88tA5ru2la7jcm8Ya2B+kr5YM+Z r0gg== X-Gm-Message-State: AD7BkJKdEXNoXh9nLU6tjFkRGkziRIrOH4ChpRlaPJX3Iie2n6BD1NO3JoR0CRKXgGPfiUgwPgwpxYgNWCGoAg== X-Received: by 10.107.169.32 with SMTP id s32mr2622835ioe.19.1459667301868; Sun, 03 Apr 2016 00:08:21 -0700 (PDT) In-Reply-To: <1459665792.195389.567158250.1843796D@webmail.messagingengine.com> X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com comp.lang.python:106353 On Sun, Apr 3, 2016 at 4:43 PM, Stephen Hansen wrote: > The stdlib exists as a bastion of stability above all else. Its > standards aren't a reason to make a change (or, not to make a change, > either). That doesn't mean its not useful to look at the standard > library, but you should not enshrine it as the example of good or > idiomatic code to measure decisions against. Most code exists outside > the stdlib. Expanding on this: There have been times when the stdlib has been cited in proposals, such as the introduction of a new keyword. Out of five plausible words, two have significant use in the stdlib, another has a couple of uses, and two more have no references at all. Specific example from PEP 359 [1]; the same line of analysis has also been used elsewhere. Also, a proposed new syntax can attempt to justify its benefit by taking examples from the stdlib, not because they will necessarily be changed, but simply because it's a good-sized codebase that all Python devs and tinkerers will have easy access to. PEP 463 [2] demonstrates this. Similarly, but in reverse: The stdlib can provide examples showing how a proposal will _break_ existing code, and how it should be fixed; PEP 479 [3] has a few examples, some from the stdlib, some hypothetical. In each case, the stdlib is being treated as simply "a body of Python code", and one which has a measure of neutrality (we're not favouring web app developers by looking at the Django source code, or numeric computational work by looking at Pandas, or anything like that), and if anything, it's indicative of older codebases rather than newer ones, which is usually good for proposals that need to be conservative. So in the case of range() usage, I would say that stdlib usage showing "x in range(...)" would be highly significant, but *absence* of such usage is not. ChrisA [1] https://www.python.org/dev/peps/pep-0359/#keyword [2] https://www.python.org/dev/peps/pep-0463/#example-usage [3] https://www.python.org/dev/peps/pep-0479/#examples-of-breakage