With such definition python 2.5 and python 2.6 are different languages, because they have different syntax (python 2.5 does not support "with" statement).
Do you consider this definition to be nothing but absurd? I think it has a lot of merit.
What impact does one or other way of thinking (absurd vs has merit) about this (a potential break in backward compatibility between language versions due to any addition, removal or alteration of one or more language features) have on the language and its ecosystem and culture?
Imo:
* such potential breakage is relatively benign iff there's an easy-to-follow technique (eg using a linting tool or a program editor's search feature) that always ignores/accepts code compatible with the older language version and always catches/rejects code compatible with the newer language version.
* a further improvement on this is to have the inter-version checking done by a language's interpreters/compilers.
* best of all is when the language is at least partly compiled and compilation using the older interpreter/compiler does the rejecting at compile-time.
What impact does one or other way of thinking (absurd vs has merit) about this (a potential break in backward compatibility between language versions due to any addition, removal or alteration of one or more language features) have on the language and its ecosystem and culture?
Imo:
* such potential breakage is relatively benign iff there's an easy-to-follow technique (eg using a linting tool or a program editor's search feature) that always ignores/accepts code compatible with the older language version and always catches/rejects code compatible with the newer language version.
* a further improvement on this is to have the inter-version checking done by a language's interpreters/compilers.
* best of all is when the language is at least partly compiled and compilation using the older interpreter/compiler does the rejecting at compile-time.