Since I took it upon myself to implement PEP 622, I just have a few thoughts to add to the other excellent responses here. Hopefully these will help clarify that the intent is not to "railroad" anything. Rob Cliffe wrote:
PEP 622 only seems to have been presented to the Python community only after a well-developed (if not finalised) implementation was built.
Well, thanks for the "well-developed" bit, but I promise that the implementation is far from final. Since we first published the PEP, I've made dozens of commits touching pretty much every new line of code several times. Just last week we gutted the __match__ method in response to well-reasoned calls to defer it.
So there will inevitably be resistance from the developers to accept changes suggested on python-dev.
As the one who has been doing almost all of the development, I assure you this isn't true. 80% of the PEP's authors have been almost entirely detached from development of the reference implementation, so I would be very surprised if they gave my existing work more weight than the opinions of the community... I wrote the thing, and I certainly don't! I volunteered to implement it because I thought the PEP and implementation would be an interesting project while trapped at home this spring. I *like* doing this stuff, so I'm not really worried about getting to do more of it. ;)
And since the PEP has Guido's authority behind it, I think it is likely that it will eventually be accepted pretty much as it was originally written.
It has already changed quite substantially from how it was originally written. Here's everything that's changed since we posted the first draft (we've been pretty much dominating PEP repo traffic over the past week): https://github.com/python/peps/commits/master/pep-0622.rst Again, you'll notice that the entire __match__ protocol was deferred based on feedback we received, and we've made an effort to describe the reasoning behind many decisions that seemed obvious to us but weren't to others. The opening sections are also getting a rewrite (again, based on Python-Dev feedback).
Guido's 2nd email ("PEP 622: Structural Pattern Matching -- followup") already to me (YMMV) reads rather like "OK, you've had your fun, now try not to joggle our elbows too much while we get on with the work".
That's an extremely odd way to interpret his thread, which exists solely to collect of all of the "unheard" critiques in one central location.
I do think it's a pity that the Python community did not have the chance to supply feedback earlier down the road (when IMO it would have been taken more seriously).
It did. The very first thing we did was perform detailed surveys of 8 different Python-Ideas threads (spanning 9 years), 13 other languages, and a handful of the most popular Python packages for pattern matching. This is not at all the first time this has been brought up by the community; I personally worked my way through hundreds of emails and dozens of documents before writing a single line of code (or PEP).
While Guido and the other developers have obviously already put a huge amount of work into this PEP (and by now probably have a significant emotional investment in it), I do hope that they will take the time to consider seriously and on their merits most/all suggested changes, rather than being tempted to rush through the acceptance and implementation of the PEP.
Don't worry; I have a much stronger emotional connection to Python's continued success and community than to a quarantine project that Guido nerd-sniped me with a few months ago. ;) Brandt