
On Sun, Feb 07, 2021 at 09:58:03AM +0300, Paul Sokolovsky wrote:
A feature doesn't need to be a `__future__` import for you to just not use it.
Right, and the talk is about the opposite - early adopters of PEP634-style pattern matching should mark the modules in which they *use* PEP-634-style pattern matching, so it will be easy in the future to spot such modules, if we get updated pattern matching style.
Because `grep "from __future__ import match"` is easier than `grep "match:"` ?
All features added via __future__ were new, and thus experimental.
They were new, they were not experimental.
For example, they contained long trail of bugs and issues, which were haunting their users for a long time, but at least the users knew what to expect, seeing the __future__ import.
Paul, that is bullshit. I use that in the technical sense: http://www2.csudh.edu/ccauthen/576f12/frankfurt__harry_-_on_bullshit.pdf Please just stop. There was no "long trial of bugs and issues" involving (e.g.) unicode literals, true division, nested scopes, print as a function etc; there may have been a few enhancements for the with statement, e.g. the long running desire to be able to parenthesise context managers. In the context of the Python community, "experimental" has a specific meaning: features which are intentionally documented as having an unstable API which may be subject to change. But I'm pretty sure you know that. It absolutely does not refer to the addition of a new stable feature, or the normal process of discovering impementation bugs, enhancement requests, or even the occasional unforeseen problem which may need resolving. But I'm pretty sure you know that too. I don't know what users you have in mind if you think that every new feature needs to go through a redundant and pointless future import. Users who get paid by the line, and adding that one extra line of code earns them an extra dollar? Users who love unnecessary boilerplate at the top of every file? Users who don't interact with beginners who don't understand why they can't use the new feature? Users who want to impose an extra burden on the entire community, starting with the core devs who have to implement the unnecessary future import, and going on all the way down to every single coder who says to themselves "Oh, I forgot the future import!" when their code fails. Future imports were designed carefully and thoughtfully as a mechanism to gradually introduce **backwards incompatible** syntactic changes. They are not there just to add friction to every single new syntactic feature. -- Steve