[Python-3000] We should write a PEP on what goes into the stdlib
talin at acm.org
Fri Jun 16 07:17:49 CEST 2006
Michael Chermside wrote:
> I agree. If we have a PEP with rules for acceptance, then every time we
> don't follow those rules exactly we will be accused of favoritism. If
> we have informal rules like today and decide things on a case-by-case
> basis, then everything is fine.
Let me make a suggestion that might help resolve the disagreement.
One of my favorite podcasts is "Life of a Law Student",
(http://www.lifeofalawstudent.com/) in which a first year law student
named Neil Wehneman makes a daily podcast of what he learned in law
school that day. One of the ideas that he talks about (Intro to the Law
#2) is the difference between a "Rule" and a "Standard":
A 'rule' is a definitive test, intended to provide certainty. An example
is the speed limit - you are either exceeding the speed limit, or you
A 'standard', on the other hand (at least, in its legal definition) is a
set of factors to be weighed by a judge when making a decision. Its
purpose is to provide flexibility, allowing human judgement to stay in
the loop, but at the same time giving a framework for making those
judgements in a consistent way.
An example of a standard is fair use under copyright law. When a judge
decides whether something is fair use, they use a standard consisting of
a number of factors, including the amount of the work copied, the
commercial or non-commercial use of the work, and so on.
Note that none of these factors are a simple "yes/no" decision -
instead, a judgement must be made as to how much a particular case fits
the standard. A use of a work can be completely commercial, completely
noncommercial, or something inbetween. To the extent that it is
noncommercial, that weighs in favor of it being declared fair use; To
the extent that it is commercial, that weighs against.
So what I would suggest, then, is the creation of a standard (in this
legal sense) for what factors should be considered in deciding whether
to include something in the stdlib.
Moreover, the standard should be clearly labeled as such - to prevent
people from interpreting the document as a set of hard rules that they
can use to beat other people over the head with.
So for example, it might say something like: "To the extent that the
module has enjoyed widespread adoption and use within the Python
community, this weighs in favor of inclusion." and so on.
More information about the Python-3000