| No, I agree with you quite strongly[0]. There is indeed very explicitly no plan for a Python 4, although several people seem to have a vision for it. (I have a design of my own that I think of as a spiritual successor, but I am definitely making more-than-incremental and very much incompatible changes. Python is just the main inspiration for it.) I haven't switched, though. I just keep avoiding the new constructs. I've found that newer code in popular projects often barely uses the new features; and where they are used, the workarounds are really not that painful. Except when it comes to the back-and-forth about how to handle forward references etc. in type annotations. That part is a mess. Speaking of which, there was never any expectation of typing becoming mandatory. And it's good that the world has dynamically typed languages, and I still mostly write my Python code that way, and prefer to read it that way. Type annotations have a lot of second-order effects that aren't all desirable (I have it on my mental list to blog about that). But even beyond that, the annotations feature was ostensibly not specifically about typing in the first place. https://peps.python.org/pep-3107/ is very explicit about that (even type information is about a lot more than mere type-checking, and uses related to documentation were explicitly conceived of). Even if the Python runtime required type annotations everywhere, and refused to bytecode-compile wrongly-annotated code, it's unlikely that this would actually have led to significant optimizations (at least not without a radically different system like mypyc). Meanwhile, the standard library is full of things that would absolutely never pass muster to be added today, if they weren't already there. And resistance to new suggestions from outsiders (which are mostly for standard library enhancements, but I'm also talking about syntax and builtin methods here) is really strong; but some internal ideas meanwhile seem to get fast-tracked in a way that leaves a horrible taste in my mouth. Overall I wish the base language were more meta-programmable so that people could just try out their new syntax ideas privately with much less effort. (And my own language design definitely takes that into consideration, too.) The one new thing I really like in Python is 3.14's template strings; it's a shame we didn't get that first. I don't even have obvious use cases for the functionality off the bat, but it seems far more elegant than the things that led up to this point. [0] Although I set the cutoff point at 3.6 or 3.7. While I don't normally have a use for asyncio and the related keywords and am not a fan of the resulting function colouring, I have to say that f-strings, the compact dictionary representation and improvements to pathlib are all huge wins. On the other hand, "old guard" member Mark Lutz notably dislikes anything past 3.4 (https://learning-python.com/python-changes-2014-plus.html). |