10 ms·
>I think it is possible that Python's popularity with people doing numerical stuff might end up making it worse for the rest of us. I've been using Python sinc
by sigmoid10 2y ago
>I think it is possible that Python's popularity with people doing numerical stuff might end up making it worse for the rest of us.
I've been using Python since long before it became the go-to choice for numerics inside and outside academia, so let me tell you: It was even worse back then. The transition from 2.7 to 3.0 was both regarding the fundamental idea and the implementation the worst thing I have ever seen happen in any major language. This could (maybe should) have been a language killer. They should have just branched it out as something completely new. Van Rossum is totally right in saying that he never wants a Python 4 for that reason, so it seems at least he learned a little bit since then.
- mort96 2y agoIt is only in the past few years that the 2 -> 3 transition stopped hurting for me personally. A lot of Google's Python build system code (which I used to build e.g WebRTC and Chromium) got transitioned to work with Python 3 relatively quickly, HOWEVER it still assumed to be able to execute a Python interpreter by invoking the `python` command. It would work regardless of whether this python interpreter was 2 or 3, but it had python scripts running `python path/to/script.py` using `subprocess`. As systems started shipping Python 3, the convention among most of them became to leave `python` as a Python 2 interpreter and then introduce `python3` as a Python 3 interpreter. As they then stopped shipping Python 2, they generally just removed /usr/bin/python, so the only Python on the system was /usr/bin/python3. In my own scripts to build Google stuff, I always had to make a folder with a single script called `python` which would contain just `exec python3 "$@"`, and then prepend that directory to the `PATH` when invoking Google's tools. Google eventually did update their stuff to work on systems where the only Python is `python3`, but man this transition was rough. As I understand it, Google had good reason to do it their way at the time too; there was simply no consistency in how systems handled the 2 -> 3 switch. I suspect that this is due to a severe lack of guidance from the Python foundation.
- artemisart 2y agoI don't really understand such critics which I often see for the python 2 to 3 transition, the OS didn't want to change `python` to be v3 by default which is understandable for backward compatibility, and the fix is simple and immediate with e.g. the python-is-python3 apt package, or an alias python=python3 in the shell, or a symlink in PATH, etc.
- mort96 2y agoWe went from a situation where essentially every UNIX-like system had the same-ish Python available as `python` to a situation where every system has different names for different versions of Python. That's a pretty big change. Imagine if GNU released a new, highly backwards incompatible version of bash called Bash 6, and then some platforms kept /bin/bash as Bash 5 and introduced /bin/bash6, some systems replaced /bin/bash with Bash 6 and introduced /bin/bash5, and some systems removed /bin/bash entirely and /bin/bash6 was the only Bash on the system. Python had the opportunity to be, and was, to some extent, just a standard part of a UNIX-like system, like bash. But now it's just another language where you need to care a lot about interpreter versions and how different distros package it differently and keeping code up to date to work with the latest Python and keeping Python up to date to work with the latest code. This doesn't mean that Python is bad, but it would have been much more useful to me, and quite a few others, if it had stated a ubiquitous tool which is more like Bash and Perl.
- graemep 2y agoMe too. I have used Python mostly for web stuff (lots of Django) although I have done bits of everything (ML, desktop GUI for existing code, embedded, one off little scripts, ...). A big attraction of Python is that it can do everything. Very useful if you need more than one of the above in a single project. On the other hand I do feel that Python has been bad for my personal development because I can always find a Python library for any and everything it has reduced my motivation to learn other languages properly (i.e. actually using them for real work - I have learned a few in theory). I have been stuck with the same main (to the point of dominance!) language for far too long. Yes, 2 to 3 was pretty painful, although it was not too bad for me because I was mostly able to delay moving until i was sure all the libraries I used had made the transition.
- RhysU 2y ago> Van Rossum is totally right in saying that he never wants a Python 4 for that reason, so it seems at least he learned a little bit since then. Just because the BFDL doesn't increment the major version doesn't change the fact that myriad breaking changes arrive in Python 3 PEPs. This is purely an optics hack. Python 3.0 is very different from Python 3.13. Had the frog not been boiled slowly, it might as well have been Python 4. The people who could stop this churn will not. It's a full-employment ticket for them, chasing dot-release upgrades and educating us about changes that we couldn't live without but somehow did for decades. It takes a big person to say when something is good enough despite its warts. Contrast the Python churn with Linux and git: never break user space.
- snowpid 2y agoPython 3.0 is older than Windows 7 and Gnome 3.0. And if GUIs can change in 16 years programming languages can do as well.
- RhysU 2y agoGnome 40 is a thing. Windows 11 is a thing. I didn't say things can't change. I said don't play games with major version numbers to window dress optics.
- orev 2y ago> worst thing I have ever seen happen in any major language Survivorship bias. Python just barely survived the transition, and you only still use it now because it did make it. Take a look at Perl 6 to see a major language that failed.
- mort96 2y agoPerl strikes me as the only major language which failed a transition though. I mean where the actual developers of a language developed a new version, released as an official new version of the language, and then the entire community stayed behind on the old version to the degree that the new version was renamed and made into its own separate project. Can you think of any other example?
- p_l 2y agoAt least Perl had admitted it. Dealing with Python after mostly taking a pause around time 3.0 was introduced, I was shocked at the mess. And unlike with Perl 6, which took quite a clean break even before it decided to rebrand, you ended up with situation where both were around semi-equally, and there were "fun" bugs introduced in Python 3 that caused explosive bugs that we couldn't figure out in beginning because things would always work on developer machines...