The Python development community made it unnecessarily difficult to migrate from Python 2 to Python 3 by creating incompatibilities without an ecosystem-aware migration strategy. So we have two languages, separated by a common heritage.

Chris Siebenmann is pretty clear about why this is bad:

At this point I’m not sure if a genuine Python 2 to Python 3 transition will ever happen. The really pessimistic future is that Python 2 shambles on as an increasingly creaky zombie for the next decade, Python 3 effectively fails and becomes irrelevant, and as a result Python itself is abandoned for other languages.

Speaking as a Python developer, this makes me sad. Some optional compatibility features on both sides of the version gap could have smoothed things over. Syntax changes to make things prettier would have been OK before the language was widely adopted but at this point were a mistake (incompatible octal syntax, I’m looking at you).

h/t +Pete Zaitcev 

Chris’s Wiki :: blog/python/Python3NewCodeII


John Pitney January 01, 2014 18:48

Lua has gone through the same kinds of issues going from 5.0 to 5.1 to 5.2.  Some of my favorite libraries haven’t been made 5.2-compatible yet.  

Michael K Johnson January 01, 2014 19:33

I haven’t been a lua developer, so I haven’t been aware of syntax incompatibilities between lua point releases. Can you describe egregious syntax incompatibilities? Or is it more like the typical python point releases with more evolutionary change at each point release?

Curtis Olson January 01, 2014 20:18

Bummer, I was just starting to learn python well enough to have some fun with it.  http://madesigner.flightgear.org/

John Pitney January 01, 2014 20:34

There’s an official rundown at http://www.lua.org/manual/5.2/manual.html#8 .  The core team does a great job of releasing work-in-progress releases and gathering feedback from the developer community, but they still make the tough decision to break backwards compatibility when they decide it’s for the best.  

LuaSec, an OpenSSL binding, didn’t build for me recently, because it still calls luaL_register, which isn’t available in 5.2.  

Michael K Johnson January 01, 2014 21:42

+Curtis Olson I’m not giving up on Python, just annoyed. I think it makes a lot of sense for things like your project. That isn’t affected by most of the ecosystem issues that I am complaining about.

Curtis Olson January 01, 2014 21:48

+Michael K Johnson I have struggled a bit with finding / installing various dependencies on various platforms.  I’ve also played with pyinstaller in an attempt to create a distribution that non-programmers can install and run without needing to install python and track down / install all the various dependency modules (some of which need to be compiled with a c compiler.)  If the ecosystem for Python3 is vacuous, then I might be happy to stay with python 2.x for now.


Imported from Google+ — content and formatting may not be reliable