On 05/12/2021 18:37, David Mertz, Ph.D. wrote:
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"
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 am sure Chris A can answer for himself, but IMO the above is, frankly, insulting. It almost feels like you have run out of arguments and are resorting to a personal attack.
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.
Nobody has attempted (or at least completed) a PEP, never mind an implementation, of a "generalized deferred object/type", in the last N years or decades. And no reason to suppose that anyone will in the next N years or decades. (I am sure it is very difficult.) And I think it is fair to say that opinion is mixed on the benefits of such a proposal. I think it is also fair to say that such a proposal need not be incompatible with PEP 671. Meanwhile we have a completed PEP and implementation (though obviously changes might still be made) that "*would*" "*improve Python*".
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.
That is a fair point which, I admit, I struggle somewhat to refute. Let me say: It would carry more weight if we had a time-line, even a vague one, for implementing a "generalized deferred object/type". Nobody seems to be able and prepared to do the work. Without that, Python could wait indefinitely for this (PEP 671's) improvement. In my very personal, subjective opinion, PEP 622 feels more like a luxury. Anything that can be done with it could be done with pre-existing syntax. Whereas late-bound defaults feels more like a ... hm, "necessity" is obviously the wrong word, I think I mean "basic feature". (And AFAIU can not really be implemented with existing syntax - well, Turing-complete and all that, but I hope you know what I mean.) As witness, 12 of the 16 languages that Steven d'Aprano surveyed provide it. YMMV.
Best wishes Rob Cliffe
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.
Python-ideas mailing list --firstname.lastname@example.org To unsubscribe send an email email@example.com https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived athttps://firstname.lastname@example.org/message/JPCEPJ... Code of Conduct:http://python.org/psf/codeofconduct/