Path: csiph.com!usenet.pasdenom.info!gegeweb.org!usenet-fr.net!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed2.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.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'essentially': 0.04; 'sufficient': 0.05; 'widely': 0.05; 'subject:Python': 0.06; 'postgresql': 0.07; 'pypi': 0.07; 'apis': 0.09; 'inclusion': 0.09; 'latter': 0.09; 'obsolete': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'api': 0.11; 'python': 0.11; 'random': 0.14; 'continual': 0.16; 'finney': 0.16; 'maintainers': 0.16; 'queer': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'subject:dependencies': 0.16; 'subject:import': 0.16; 'unchanged,': 0.16; 'library': 0.18; 'module': 0.19; 'not,': 0.20; 'header:User-Agent:1': 0.23; 'gets': 0.27; 'header:X-Complaints-To:1': 0.27; 'chris': 0.29; 'feature': 0.29; '(like': 0.30; 'continually': 0.31; 'writes:': 0.31; 'another': 0.32; 'candidate': 0.34; 'subject:the': 0.34; 'but': 0.35; 'version': 0.36; 'library.': 0.36; 'venture': 0.36; 'too': 0.37; 'two': 0.37; 'basis.': 0.38; 'ben': 0.38; 'stable': 0.38; 'whatever': 0.38; 'to:addr:python-list': 0.38; 'explain': 0.39; 'does': 0.39; 'itself': 0.39; 'to:addr:python.org': 0.39; 'enough': 0.39; 'either': 0.39; 'received:org': 0.40; 'subject:"': 0.60; 'full': 0.61; 'numbers': 0.61; 'offering': 0.63; 'today': 0.64; 'life': 0.66; 'close': 0.67; 'promise': 0.68; 'sound': 0.68; 'useful.': 0.68; "today's": 0.70; 'quality': 0.72; 'ending': 0.78; '*and*': 0.84; 'mature': 0.84; 'received:125': 0.84; 'subject:history': 0.84; 'reasons,': 0.91; '\xe2\x80\x9cthe': 0.91 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Ben Finney Subject: Re: PyWart: "Python's import statement and the history of external dependencies" Date: Sun, 23 Nov 2014 18:43:40 +1100 References: <066c46c8-a04d-4489-b15a-b603c1b1818b@googlegroups.com> <8661e407-4472-4208-97c2-f666f6502c67@googlegroups.com> <547080a0$0$12981$c3e8da3$5496439d@news.astraweb.com> <54717eeb$0$12992$c3e8da3$5496439d@news.astraweb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Gmane-NNTP-Posting-Host: jigong.madmonks.org X-Public-Key-ID: 0xAC128405 X-Public-Key-Fingerprint: 517C F14B B2F3 98B0 CB35 4855 B8B2 4C06 AC12 8405 X-Public-Key-URL: http://www.benfinney.id.au/contact/bfinney-pubkey.asc X-Post-From: Ben Finney User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) Cancel-Lock: sha1:cxp5YdB/juFCkJHJio60h/VFjj0= 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: 39 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1416728632 news.xs4all.nl 2894 [2001:888:2000:d::a6]:57948 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:81342 Chris Angelico writes: > Just out of curiosity, why does the stdlib need modules for > manipulating .wav and other sound files, but we have to go to PyPI to > get a PostgreSQL client? It's a queer world... I would venture the follow two reasons, either of which is sufficient to explain the difference: * Modules enter the standard library only if they are judged both to be good quality *and* have a credible promise to continue to maintain them in the standard library on an ongoing basis. If one module has reliable maintainers offering to do the work and another does not, the latter will not be a candidate for inclusion in the Python standard library. * Modules enter the standard library only if their feature set is stable enough that they can remain essentially unchanged, feature-wise, for many years and still be widely useful. For a data stream format (like WAV and other mature formats), a module working well today is likely to work just as well for the same purpose in several years's time, long enough for today's Python to go through its full life cycle of support. PostgreSQL is a full-blown system that is itself under continual development, and its APIs continually change to match. Whatever Python API for PostgreSQL gets put into the standard library today is likely to be obsolete long before today's version of Python gets close to ending support. That makes it a poor candidate for inclusion in the standard library. -- \ “The generation of random numbers is too important to be left | `\ to chance.” —Robert R. Coveyou | _o__) | Ben Finney