back

by nadermx·3y ago·view on hn ↗
I doubt it. Python is the only language to do a breaking change, and survive
3 comments
That's a consequence, not a cause.

Python survived the 2->3 transition because Python was already in a dominant position and heaps of programs had to work, for better or for worse.

For a language with a lesser adoption, such a transition would have been a death warrant.

The 2-3 transition was a non-issue to a lot of people, and a major stumbling block for folk who staunchly avoided any kind of change to their codebase. But I don't think Python was already in a dominant position -- many people switched stacks.

However, for me there are two key points around it: 1) it's over and done with 2) it wasn't that big of a deal if you planned for it. 90% of the things I was working on just worked with minor changes. The rest was mostly a matter of a few critical dependencies that had to be refactored around.

> The 2-3 transition was a non-issue to a lot of people,

It was a non-issue for relatively small scripts. But if you were dependent on non-converted libraries, or e.g. if you handled a lot of non-English strings, it could get iffy very fast – and blow up in your face months later, in a rarely used code path.

> don't think Python was already in a dominant position

IME, it was very much in a, if not dominant, at least powerful positions everywhere.

It was roaring in webdev, most of academia had switched from Perl to Python, ML/DS were starting to seriously take off outside of research, and it was winning the war against Ruby for the goto language for quick 'n dirty between-bash-and-C programs & scripts.

Every language community apparently craves “pain” in some aspect of their chosen golden hammer while simultaneously pointing fingers at other languages and their pain points. There is an element of masochism to programming that is often overlooked. (Sometimes this manifests as sadistic tendencies inflicting pain on the user.) Python is so painless at the source level that naturally the required pain had to be injected elsewhere. Of course no one can touch the JavaScript community as far as programming masochism is concerned.
It's lucky that it did.

The worst thing that ever happened to Python was being adopted as a scripting language in Linux distributions, which meant you couldn't ever update the "python" binary. "python3" was the worst idea since Solomon proposed cutting a baby in half because it leads inevitably to "python3.5", "pip3.6", "python3.7-pypy", etc. It's one more reason you can't write scripts that "just work".

Fortunately Python is doing the right things to restore sanity (pip refusing to install anything outside of a venv) but it's been a long time.

> Python is the only language to do a breaking change, and survive

Hardly. ANSI C was a huge breaking change from early K&R C.