It's been an ongoing ugly transition since Python 3.0
was officially released way back in 2008 because of the
lack of backward compatibility. The Python project has
been trying to get people off 2.x for over 7 years! When
I worked on a project in 2010 or so, I couldn't use 3.x
because of client issues with it (it was natural language
processing).
From the current Python 2 vs. Python 3 notes on
python.org (my highlighting):
Guido van Rossum (the original creator of the Python language)
decided to clean up Python 2.x properly, with less regard for
^^^^^^^^^^^^^^^^^^^^
backwards compatibility than is the case for new releases in
^^^^^^^^^^^^^^^^^^^^^^^
the 2.x range. The most drastic improvement is the better
Unicode support (with all text strings being Unicode by default) as
well as saner bytes/Unicode separation.
However, the broader Python ecosystem has amassed a significant amount
of quality software over the years. The downside of breaking backwards
compatibility in 3.x is that some of that software (especially in-house
software in companies) still doesn't work on 3.x yet.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Julia's now simultaneously working on versions 0.4
and 0.5, with no backward compatiblity and packages forking
based on version, with some people still stuck on 0.3 (though
I have no idea how many). At Julia Con, the main devs spent a lot of
time discussing backward-compatibility breaking changes. I'd
be way too timid to start developing in Julia now. Julia has
this for 0.3 to 0.4 transitions:
https://github.com/JuliaLang/Compat.jl
but I don't know if it works and is certainly got to be a major
hassle to implement. There's a summary on that page's README about
how much has changed from 0.3 to 0.4. But see this discussion on reddit:
https://www.reddit.com/r/Julia/comments/2zme0y/timeframe_on_productionready_release_of_julia/
where 0.4 is described as the "break everything" release. But then
Regardless of the final scope of 0.4, 0.5 is going to have quite a
few major changes in it that were holdovers that didn't make it into 0.4.
But lets just say their referring to 0.5 as "Arraypocalypse" had me worried.
(I'm neither Australian nor Alfred E. Neuman.):
https://github.com/JuliaLang/julia/issues/13157
- Bob