News for hackers. Stuff that matters.
Re:Rust 1.42 by airstrike on Thursday March 12, 2020 @01:05PM (#22558984)
Nice straw man... I do want to point out how Django (which is obviously a Python framework, not the language), has a very solid deprecation policy
Re:Rust 1.42 by pjmlp on Thursday March 12, 2020 @01:31PM (#22559365)
It is a lesson on how not to do breaking changes, when one wants the community to actually adopt new versions.
Re:Rust 1.42 by chc on Thursday March 12, 2020 @03:00PM (#22560452)
I'm not so sure. Ruby did a very similar set of breaking changes around the same time and it went fine. It seems to me like the main difference wasn't in the changes — it was that the Rails developers enthusiastically embraced the changes, which pushed everyone else to do the same, while Python had more of a diffuse situation where some library authors went for it and others didn't and it led to everybody getting cold feet.
Re:Rust 1.42 by pas on Thursday March 12, 2020 @03:13PM (#22560597)
Py3 was too big of a change. It took until about 3.3 to get some ability to really write cross-compatible code.

And some people were just okay with the unclear semantics of py2 with regards to bytes-unicode.

Re:Rust 1.42 by chc on Thursday March 12, 2020 @06:04PM (#22562357)
Like I said, I have trouble buying that as the reason, because a very similar Ruby release right around the same time did not cause the same problem. The major change in both cases was that strings now force you to consider encoding rather than just treating everything as a blob of probably-ascii-but-whatever-who-cares bytes. Writing code that was both Ruby 1.8 and 1.9-compatible wasn't easy, and there wasn't something like six to help you do it. The Ruby community generally responded by just supporting Ruby 1.9 going forward, and there was no major schism.
Re:Rust 1.42 by steveklabnik on Thursday March 12, 2020 @06:50PM (#22562813)
Ruby did have a decent transition path for strings too https://news.ycombinator.com/item?id=22038660
Re:Rust 1.42 by pas on Friday March 13, 2020 @09:36AM (#22567123)
I think Ruby was helped by its great tooling (gem, lockfile, bundler), plus it was just advertised/communicated/presented as the next logical step forward, not a major release, no talk about supporting the old release for years, etc. (I don't know about Ruby's LTS policy, but the point is that 1.9 was not special, so it did not instantly made 1.8 "sacred" too.)
Re:Rust 1.42 by airstrike on Thursday March 12, 2020 @04:06PM (#22561179)
> It took until about 3.3 to get some ability to really write cross-compatible code.

I disagree... you could always leverage six and/or do conditional imports based on sys.version

> And some people were just okay with the unclear semantics of py2 with regards to bytes-unicode.

Usually after searching for answers for quite a while on Stack Overflow...

Re:Rust 1.42 by ttwwmm on Thursday March 12, 2020 @06:44PM (#22562754)
> I disagree... you could always leverage six and/or do conditional imports based on sys.version

Sure it was possible, but what benefit would doing all that work get you? More memory use! It wasn't until Python 3.5 that Python 3 was clearly better for most use cases. Even today the regression import performance is problematic for CLI tools.

Re:Rust 1.42 by pas on Friday March 13, 2020 @09:01AM (#22566899)
six hit 1.0 in 2011, py3.0 was released in 2008.

The point is that the whole py2-3 change was not incremental enough. (We started an ecommerce project right around 3.4, and many, many libs were in shambles, no official py3 support, just random forks on GitHub. The whole Python ecosystem was in a rather sad state. No mypy, no pipenv/poetry/dephell.)

All the gashing of teeth spent on the useless flamewars about py2/py3 could have been spent on other things.

> Usually after searching for answers for quite a while on Stack Overflow...

I was explicitly thinking of Armin Ronacher a prolific library author. ( https://news.ycombinator.com/item?id=13145172 )

Re:Rust 1.42 by airstrike on Friday March 13, 2020 @10:56PM (#22572828)
You didn't need to switch over to Python 3.0 in 2008, though.

Yes, 3.4 was still not smooth but also not a disaster. I still don't use pipenv, mypy, poetry or dephell and life is fine...

Re:Rust 1.42 by pas on Saturday March 14, 2020 @11:04AM (#22575780)
That's the problem. Py3 was basically a hard fork with no real benefits for years, but by then it became a sort of ideological rift, and people started back-porting stuff instead of upgrading.