[Python-ideas] META: Is a PEP a good place to record Python's core design decisions and coding principles?

Guido van Rossum guido at python.org
Sun Mar 24 13:19:51 EDT 2019


I think this belongs in a personal blog, not on python-ideas and definitely
not in a PEP.

On Sun, Mar 24, 2019 at 10:18 AM Jonathan Fine <jfine2358 at gmail.com> wrote:

> SUMMARY
> I think we're about to have a discussion of what's appropriate to have on
> this list, so I've started a new thread.
>
> I formulate the question as: Is this list an appropriate place for the
> discovery, discussion and application of Python's core design decisions and
> coding principles? Or in other words, is a PEP an appropriate place to
> record the outcome of such activities?
>
> If you want to discuss further, this thread I suggest is the place to do
> it. But I'd rather you suspended such contributions, until I have elsewhere
> by example shown what I mean by the discover etc of Python's core
> principles.
>
> BACKGROUND
>
> In "Why not ['a','b','c'].join(',') ?" Chris Angelico wrote:
>
>> this is a topic for python-list, not python-ideas, unless someone
>>
> is proposing a change.
>
>
> In response, I made and stated a bold statement. Namely that the Python
> syntax for string join is a consequence of Python's core design decisions
> and coding principles, together with the semantics of join. When I made
> this statement, I was confident it was true.
>
> ABOUT PYTHON PRINCIPLES
>
> After further reflection, I realised that it applies more widely. I've
> also discovered, applying the principle, a gap in the Python string module.
> Right now and here is not a good time to talk about it, but YES, someone
> will be proposing a change.
>
> I've said recently on this list, at least once, that I'm a pure
> mathematician. And that I'm trained to find a small, simple and elegant
> system of rules which determine the behaviour of a large number of examples.
>
> AN EXAMPLE - Roman and Arabic numbers
>
> The Hindu-Arabic numeral system 1, 2, 3, 4, 5, ..., 9, 10, 11, ...  were
> developed in 1st to 4th centuries by Indian mathematicians. Addition and
> multiplication of numbers, using this numeral system is much simpler than
> using the earlier Roman numeral  system I, II, III, IV, V, ...,  IX, X, XI,
> ... .
>
> This is part of the story of how the discovery and introduction of new
> concepts made addition and multiplication much easier. By the way, from
> about 500 to 630 a symbol that we now would call zero was introduced, and
> understood. And today zero is mathematics for children, if not exactly
> child's play.
>
> While writing this, I consulted
> https://en.wikipedia.org/wiki/Hindu%E2%80%93Arabic_numeral_system#History
>
> FACTS, AXIOMS and THEOREM
>
> Chris Angelico wrote:
>
>> It's way WAY simpler than all this. "Iterable" isn't a type, it's a
>> protocol; in fact, "iterable" just means "has an __iter__ method".
>
>
> I think that for Chris this is a FACT about Python. This is the way Python
> is.
>
> My mathematical approach is to find simple AXIOMS for which have this FACT
> is a logical consequence, or in other words a THEOREM. (Also we want the
> axioms not to have wrong statements as a logical consequence.)
>
> Here's an example to show how FACTS, AXIOMS and THEOREMS fit together. For
> most of us, at grade school statements such are 2 + 2 = 4 and 7 * 8 = 56
> are FACTS when summoned from memory. And 1 + 2 + 3 + 4 + 5 = 15 is a
> THEOREM that arises from knowing how to add numbers (which for most
> students is a collection of FACTS).
>
> Now consider
>    X = 1 + 2 + 3 + 4 + 5 + .... + 99 + 100
> That X == 5050 is a THEOREM based on the FACT of addition, together with a
> laborious calculation. Once, a grade school teacher gave the calculation of
> X as work for his student to do.
>
> To the teacher's surprise, one of the students very soon came up to his
> desk with the correct answer 5050. This grade school student had discovered
> for himself the THEOREM, based on the fundamental properties of counting
> number, that
>     1 + 2 + 3 + ... + (N-1) + N == N (N + 1) / 2
>
> This student went on to be the greatest pure and mathematician and
> theoretical physicist of his day.
> https://en.wikipedia.org/wiki/Carl_Friedrich_Gauss#Early_years
>
> ASIDE
>
> Mathematics is a special skill. All of us have our own special skills and
> experiences, and most of us are not mathematicians. Our community code of
> conduct encourages collaboration, so that all of our experiences and skill
> sets can contribute "to the whole of our efforts".
>
> With good will, we can overcome friction and misunderstanding between the
> X and non-X communities, for the benefit of all. For all every special
> skill X. Or in other words, many hands make light work, and many eyes find
> many more bugs.
>
> SUMMARY
>
> I have argued that Python's core design decisions and coding principles
> can, at least in part, be reduced to a system of AXIOMS that can be useful
> applied. I have argued mainly based on analogy with the Hindu-Arabic
> numeral system, and the life and work of Gauss.
>
>
>
>
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20190324/64fdffd5/attachment.html>


More information about the Python-ideas mailing list