3 ms·
It's not normal to have to write new code to retain compatibility. ES6 was a huge change, but was sufficiently compatible with ES5 that you didn't need to doubl
by millstone 6y ago
It's not normal to have to write new code to retain compatibility. ES6 was a huge change, but was sufficiently compatible with ES5 that you didn't need to double your test matrix. C++11 is another example of a major evolution that retained backwards compatibility.
There have been other painful upgrades (Swift, Rust) but these have been in younger languages with less established codebases; both have since shifted to a mature-language model. Python3 is unique in attempting to aggressively evolve a very mature language with deep established codebases, and has paid a heavy price.
- 1337shadow 6y agoI'm not convinced that spreading the BC breaks over more Python major versions would have been more helpful or worse ... Hard to say of course, will we ever know for sure ? It seems to me that the problem would have been multiplied.