|
|
Log in / Subscribe / Register

Pattern matching accepted for Python

The Python steering council has, after some discussion, accepted the controversial proposal to add a pattern-matching primitive to the language. "We acknowledge that Pattern Matching is an extensive change to Python and that reaching consensus across the entire community is close to impossible. Different people have reservations or concerns around different aspects of the semantics and the syntax (as does the Steering Council). In spite of this, after much deliberation, reviewing all conversations around these PEPs, as well as competing proposals and existing poll results, and after several in-person discussions with the PEP authors, we are confident that Pattern Matching as specified in PEP 634, et al, will be a great addition to the Python language."


From:  Python Steering Council <steering-council-AT-python.org>
To:  Python-Dev <python-dev-AT-python.org>
Subject:  [Python-Dev] Acceptance of Pattern Matching PEPs 634, 635, 636, Rejection of PEPs 640 and 642
Date:  Mon, 08 Feb 2021 12:07:22 -0800
Message-ID:  <61D540B9-2FE5-4CC8-8038-5654B1D325C7@python.org>
Cc:  python-committers <python-committers-AT-python.org>, Python Steering Council <steering-council-AT-python.org>
Archive-link:  Article

After much deliberation, the Python Steering Council is happy to announce
that we have chosen to accept PEP 634, and its companion PEPs 635 and 636,
collectively known as the Pattern Matching PEPs. We acknowledge that
Pattern Matching is an extensive change to Python and that reaching
consensus across the entire community is close to impossible.  Different
people have reservations or concerns around different aspects of the
semantics and the syntax (as does the Steering Council). In spite of this,
after much deliberation, reviewing all conversations around these PEPs, as
well as competing proposals and existing poll results, and after several
in-person discussions with the PEP authors, we are confident that Pattern
Matching as specified in PEP 634, et al, will be a great addition to the
Python language.

We also recognize that such a large new feature needs to be accompanied by
comprehensive documentation and specification, both in the tutorial section
of the documentation and in the language reference. We consider that the
presence of such high-quality documentation must be present on the first
release of Python 3.10, and therefore its absence should be considered a
release blocker.  We do not consider the PEPs or any possible external
documentation to be sufficient.

At the same time, we’re rejecting PEPs 640 and 642. Both PEPs have received
little support from core developers. PEP 642’s proposed syntax does not
seem like the right way to solve the jagged edges in PEP 634’s syntax,
although the SC understands the desire to improve those aspects of the
Pattern Matching proposal.

Regarding that, we would also like to mention that changes building on top
of PEP 634 (even PEPs 640 and 642 if they now gain support) can still be
submitted via the PEP process for review using the regular channels
(discussions in python-dev or the https://discuss.python.org/ server),
followed by a formal submission to the Steering Council for consideration,
taking into account that backwards-incompatible changes can only be made
before the feature freeze point of Python 3.10.  See PEP 619
(https://www.python.org/dev/peps/pep-0619/)
for details on the release schedule for Python 3.10.

We know that Pattern Matching has been a challenging feature that has
sparked considerable discussions and design conversations, leading to
several revisions from feedback stemming from the community, core devs, and
the Steering Council. We are very happy to see that the Python developer
community remains passionate and respectful, and we are sure that the
result has benefited a lot because of it.

Congratulations to the PEP(s) authors: Guido, Brandt, Tobias, Daniel,
Talin, and everyone that participated in the discussion and implementation
of this important new feature!

-The Python Steering Council


_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-leave@python.org
https://mail.python.org/mailman3/lists/python-dev.python....
Message archived at
https://mail.python.org/archives/list/python-dev@python.o...
Code of Conduct: http://python.org/psf/codeofconduct/


The LWN site is currently under high scraper load, so comment display has been suppressed for anonymous users. If you are a human, you may read the comments by clicking the button below:

Note: you can avoid this step in the future by logging into your LWN account.


Copyright © 2021, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds