On Sun, Dec 5, 2021, 12:33 PM Chris Angelico
And quite frankly, the tone of this list is sounding like "shut up, go away, don't do anything, because there are other proposals that nobody can be bothered writing up, but if they existed, they'd be way better than what you're doing". Not exactly encouraging, since nobody is willing to do the work of writing up proposals, but is plenty willing to criticize.
I'll write up my proposal:
"Keep the status quo"
All done.
I admit I may be a overly vociferous in my opposition to this particular change. But I also think your tone has been rather consistently pugnacious, and a bit combative, in dismissing objections or disagreements.
I know you genuinely wish to improve Python, and believe this PEP would do so. But I think you've become attached to your idea in a way that becomes non-constructive and unlikely to garner support.
For example, your careful exclusion of alternative ideas from the PEP feels less than forthcoming. It almost feels like you are trying to hide the alternatives from the SC. Obviously, many of them read this list, and all of them will think of basically the same ideas others have suggested on their own anyway.
I first discussed the idea of a "generalized deferred object/type" on this list at least two years ago, probably more than three (I haven't looked through archives lately to be sure the dates). The idea got some vague interest, but I was too lazy, or too busy, or whatever, to write an actual PEP or implementation.
It's fine to criticize my inaction in advancing the more general idea. But the result of my failing isn't "therefore PEP 671 should be adopted" as you keep claiming. It's just that I haven't done the work to flesh out the encompassing idea that would cover late-binding as a minor aspect.
As an analogy, PEP 275 was written in 2001 and rejected/neglected. PEP 3103 was rejected in 2006. The very simple case switch on literals was thought not to be broad enough to change Python syntax, despite being a construct in numerous other programming languages.
Then in 2020, PEP 622 was written, widely discussed and refined, and adopted. PEP 622 does EVERYTHING that PEP 275 would have, 19 years earlier, and even with pretty much the same syntax. But it also does MUCH more as well, and hence was thought to be worth a syntax change.
PEP 671 is very much the same. It does something worthwhile. But it does vastly less than needed to warrant new syntax and semantics. I hope it takes less than 19 years, but a generalized deferred construct is worth waiting for.