←back to thread

Perl's decline was cultural

(www.beatworm.co.uk)
393 points todsacerdoti | 1 comments | | HN request time: 0s | source
Show context
deafpolygon ◴[] No.46175307[source]
Perl6/Raku killed Perl.

Python 3 almost killed Python.

It's normal. Once a community loses faith, it's hard to stop them from leaving.

replies(6): >>46175362 #>>46175400 #>>46175465 #>>46175553 #>>46175645 #>>46185055 #
MangoToupe ◴[] No.46175362[source]
> Python 3 almost killed Python.

People were being crybabies; the critics were extremely vocal and few. Python 3 improved the language in every way and the tooling to upgrade remains unmatched.

replies(2): >>46175397 #>>46175805 #
symbogra ◴[] No.46175397[source]
Python 3 was a disaster and enterprises were still undertaking pointless 2->3 upgrade projects 10 years later
replies(4): >>46175504 #>>46175516 #>>46176206 #>>46177968 #
jordanb ◴[] No.46175504[source]
It was annoying but if it hadn't happened Python would still be struggling with basic things like Unicode.

Organizations struggled with it but they struggle with basically every breaking change. I was on the tooling team that helped an organization handle the transition of about 5 million lines of data science code from python 2.7 to 3.2. We also had to handle other breaking changes like airflow upgrades, spark 2->3, intel->amd->graviton.

At that scale all those changes are a big deal. Heck even the pickle protocol change in Python 3.8 was a big deal for us. I wouldn't characterize the python 2->3 transition as a significantly bigger deal than some of the others. In many ways it was easier because so much hay was made about it there was a lot of knowledge and tooling.

replies(2): >>46175685 #>>46175700 #
JoshTriplett ◴[] No.46175700[source]
With the benefit of hindsight, though, Python 3 could have been done as a non-breaking upgrade.

Imagine if the same interpreter supported both Python 3 and Python 2. Python 3 code could import a Python 2 module, or vice versa. Codebases could migrate somewhat more incrementally. Python 2 code's idea of a "string" would be bytes, and python 3's idea of a "string" would be unicode, but both can speak the other's language, they just have different names for things, so you can migrate.

replies(3): >>46176212 #>>46176595 #>>46195461 #
1. zahlman ◴[] No.46195461[source]
Why would I ever risk inflicting a stack trace like

  Traceback (most recent call last):
    File "x.py", line 2, in <module>
      foo.encode()
  UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
on a user of Python 3.x where it isn't possible? (Note the UnicodeDecodeError coming from an attempt to encode.)