Nothing to do with "mistakes" and "quirks" but simply a question of language design. After developing it for a number of years they came to the point where they thought, that some things should have been done differently form the beginning. But breaking compatibility is always a hard decision, especially for a programming language. So now we have two, Python 2 and Python 3.kusti8 wrote:The point is that python 2 and 3 is more like C and C++, although with less drastic changes. Python3 was an effort to try and fix all the mistakes that were in Python2 and make it less quirky and more functional. Could they have made it backwards compatible? Sure. But that is a ton more work and also makes that their buggy Python2 version will forever be around. It was a big overhaul. I don't really see what the problem is though. I program in Python3, not Python2 and if there is some library that isn't in 3 I just move on. It also helps that Arch linux has python symlinked to Python3 not Python2 like most systems.
I think the oldest Python code I have (not my own), has been written for 1.3 and still runs without changes with Python 2.7.9. There are millions of Python programs out there, which have been working for many years and so there is no reason to change anything.