Yeah, I’d say barring packages, there’s a couple of other things that go into it:
Core language updates, which are more rare but do happen, like the walrus operator or match case statements, or like you said with typehints (though typehints are somewhat of a combo of multiple things), f strings…
Standard library features, like asyncio, and million other random little things
Language tooling. Python didn’t always have pip and also recently added pyproject as a standard
And a possible 4: runtime changes. I suspect this will become more and more apparent and important to the average user, with all the performance updates that have been coming to CPython interpreter
Yea … all good points … still I’m thinking that the “threading the needle” is in many ways attributable to the core language and design philosophy standing the test of time (so far).
Yeah, I’d say barring packages, there’s a couple of other things that go into it:
And a possible 4: runtime changes. I suspect this will become more and more apparent and important to the average user, with all the performance updates that have been coming to CPython interpreter
Yea … all good points … still I’m thinking that the “threading the needle” is in many ways attributable to the core language and design philosophy standing the test of time (so far).
For sure; good decisions early about core design and about how to evolve are the foundations on which all else is built.