On Wed, 8 Dec 2021 at 18:09, Chris Angelico email@example.com wrote:
On Thu, Dec 9, 2021 at 4:55 AM Stephen J. Turnbull firstname.lastname@example.org wrote:
But the "good idea" of general deferreds is only marginally relevant to our -1s. It's those -1s that constitute the main issue for Chris, since they're a noisy signal that the SC might think as we do.
Please explain to me *exactly* what your arguments against the current proposal are. At the moment, I am extremely confused as to what people actually object to, and there's endless mischaracterization and accusation happening.
Can we actually figure out what people are really saying, and what the problems with this proposal are?
NOT that there might potentially be some other proposal, but what the problems with this one are. Argue THIS proposal, not hypothetical other proposals.
Note that I'm not vehemently -1 on this PEP, but I am against it. So I'm not necessarily one of the people whose response you need and are asking for here, but my views are part of the opposition to the PEP. So here's my problems with this proposal:
1. The problem that the PEP solves simply isn't common enough, or difficult enough to work around, to justify new syntax, plus a second way of defining default values. 2. There's no syntax that has gained consensus, and the objections seem to indicate that there are some relatively fundamental differences of opinion involved. 3. There's no precedent for languages having *both* types of binding behaviour. Sure, late binding is more common, but everyone seems to pick one form and stick with it. 4. It's a solution to one problem in the general "deferred expression" space. If it gets implemented, and deferred expressions are added later, we'll end up with two ways of achieving one result, with one way being strictly better than the other. (Note, for clarity, that's *not* saying that we should wait for something that might never happen, it's saying that IMO the use case here isn't important enough to warrant rushing a partial solution).
To be 100% explicit, none of the above are showstopper objections (some, like the choice of syntax, are pretty minor). I'm not arguing that they are. Rather, my problem with the PEP is that we have a number of individually small issues like this, which aren't balanced out by a sufficiently compelling benefit. The PEP isn't *bad*, it's simply not good *enough* (IMO). And it's not obvious how to fix the issue, as there's no clear way to increase the benefit side of the equation. That sucks, as it's a lot of work to write a PEP, and "meh, I'm not convinced" is the worst possible response. But that's how this feels to me.
The reason deferred objects keep coming up is because they *do* have a much more compelling benefit - they help in a much broader range of cases. It's fine to say they are a different proposal, and that "but we might get deferred expressions" is a flawed objection (which it is, if that's all the objection consists of). But rejecting that argument doesn't do anything to improve the weak benefits case for late-bound defaults, or to fix the various minor problems that weigh it down.
All IMO, of course...