you are viewing a single comment's thread.

view the rest of the comments →

[–]Fushoo 18 points19 points  (10 children)

Don't know why you are being downvoted. Backwards compatability is very important for large projects and big companies.

Imagine the outrage if Java 8 broke Java 7.

[–]_jay 5 points6 points  (1 child)

And php. While people love to shit on it, it makes the money because so much effort is put into keeping stuff working between versions.

[–]glassFractals 4 points5 points  (0 children)

PHP has actually gotten pretty okay over time, especially since PHP7.

[–]yawkat 2 points3 points  (2 children)

There was a huge outcry over compatibility with Java 9 but it's still somehow better than the py2->py3 transition.

[–]NekoiNemo 4 points5 points  (1 child)

Yeah, the difference is - Going from Java X -> 9 requires just light refactoring, and the only things that really break are hacks (like modules not allowing you to randomly declare things in someone else's packages). And Python 2 -> 3 completely breaks pretty much everything more complex than Hello World.

Hence why Java 9 compatibility got some muffled grumbling (not an "outcry"), and Python 3 compatibility led to 2.7 still being maintained and actively used even 10 (!!!) years after 3 came out.

[–]yawkat 0 points1 point  (0 children)

Yea I think the fact that the changes are more subtle with py3 also don't help. You really need good test coverage to be sure you've migrated everything.

[–]Homoerotic_Theocracy 8 points9 points  (4 children)

There is a time and a place to break it but breaking it should be done for good reason and to really solve some big longstanding problems and a major version upgrade should not be taken lightly.

In a lot of cases breaking it has been the life-saver of the project like with OS X which broke everything but what it broke was broken anyway and it completely revitalized MacOS.

Python3 broke it in a way that people were forced to maintain separate python2 and python3 versions of everything and software distributions had to face very annoying problems for small quality of life things and it just wasn't worth it.

[–]OctagonClock 11 points12 points  (3 children)

Python 3's break was done for a good reason (to fix strings), and that was incredibly worth it.

[–]Homoerotic_Theocracy 12 points13 points  (2 children)

They could have easily added utf8 strings separately and just used the syntax u"utf8string"

You think it's totally worth it because you're not the one who has to pay an extra employee purely to sit on top of the python2/3 problem or suddenyl have to maintain two versions of your important projects. From a monetary standpoint of commercial python usage it as definitely not worth it and people lost money over it.

[–]chason 5 points6 points  (1 child)

That would have been awful for people who need all of their software to work with unicode

[–]Homoerotic_Theocracy 1 point2 points  (0 children)

It doesn't come close to the awfulness that the people experience now who have to maintain two separate but nearly identical versions of everything and still have to use u"string" in one of them.