If the first question you’re asking yourself looking at a code base is “what version is this/do I know this version” then that language is not facilitating you.
The successful languages are ones where “the community” prioritises backward compatibility. Java, C, Python have backward compatibility spanning decades. There’s a few discontinuities (lambdas in Java 8, Python 3, C++) but in most cases there’s a clear mapping back to the original. Python 3 is an exception to this but the migration window was something like 15 years…
Busy engineers, scientists and academics have little interest in keeping up to date with language features. A computer and a programming language are a tool for a job and the source code is just an intermediate artifact. These are your “community”, and the stakeholders in your success.
from __future__ import annotations
> just looking at source code gives you no indication if you can run it with your installed python version requires-python = ">=3.9" use v5.40;
....
That's explicit, tied to a specific version, and executable code which can be scoped to a single source file.(I'd argued for that feature for years with my `Modern::Perl` feature bundle; glad to see that can be deprecated now.)