6 ms·
Python 3 came from a good place, and it definitely fixes many problems that sorely needed fixing, but it was doomed to failure from the start (and many develope
by GuiA 13y ago
Python 3 came from a good place, and it definitely fixes many problems that sorely needed fixing, but it was doomed to failure from the start (and many developers said that in 2008 already).
For all intents and purposes, Python 3 is pretty much a new, separate programming language. Sure, it's very close to Python 2.x, but you don't have out of the box retro-compatibility so that pretty much kills it right there.
Python 2.x is so huge in terms of its use around the world and available libraries and resources for it that you just can't say "hey, the new version of Python will in practice break everything" and expect it to fly.
I love Python and the community around it (and have several packages on pypi myself), but Python 3 is a joke.
If we didn't want to kid ourselves, we'd kill Python 3 and back port the interesting features, like Alex suggests. At this point though, too much effort and egos are involved to make this realistic.
- benburton 13y ago> but you don't have out of the box retro-compatibility so that pretty much kills it right there. I don't know if that's necessarily a foregone conclusion. Scala releases aren't always/usually backwards-compatible, and you'd be hard-pressed to find people still using much older versions.
- GuiA 13y agoI'm not too familiar with Scala; but isn't its life at a different stage than Python's?
- TylerE 13y agoScala releases are usually not BINARY backwards compatible. Very different from SOURCE backwards compatible.
- ars_technician 13y agoThat's probably related to the user base of scale being orders of magnitude smaller. The network externalities of a large language user base give it incredible inertia that makes it very difficult to change.
- zbuc 13y agoGo has broken backwards compatibility in the core libraries a few times over its short life.
- mtrn 13y ago> If we didn't want to kid ourselves, we'd kill Python 3 ... Using Python both personally and professionally, I do not think it is necessary. I already came across a few 3.X features, that I miss in 2.X and I write most 2.X code "in preparation" for the jump. But that's it, it is a jump, still. The most interesting part of the post is the feedback matter, which seems to be accidental, but isn't since an open source language is shaped by the people - something you can forget, when you are not a contributor (which most of the people might not be).
- secstate 13y agoBut you've just missed Alex's whole point. You're fine. 98% of PyPI downloads are not. That's a startling statistic, and argues that something IS necessary, rather than the status quo of shaming the top 1000 Python packages sans 3K support and telling people "it's really not that bad." It is that bad, in terms of adoption of the first 5 years of 3K's release. And unless we want to spend the next decade trying to get to 50% mindshare with 3K, the community needs to suck it up and change tacks. The definition of insanity is trying the same solution twice and expecting different results.
- steveklabnik 13y agoThis sounds remarkably like Perl 5/6.
- mtrn 13y agoI am not at all up-to-date on the Perl side, but Python 3 is real, whereas > Perl 6 is currently being developed by a team of dedicated and enthusiastic volunteers. (http://perl6.org/ http://perl6.org/)
- facorreia 13y agoWell, apparently Perl 6 is a "spunky little sister" whose spokesperson is some kind of comic butterfly character.
- ak217 13y agoPerl 6 is vaporware. Python 3 is here, it's widely supported, it's faster than Python 2.7, and while Guido didn't do us any favors with his migration strategy, I don't see what the big deal is. Python 3.3 makes writing code that is compatible with both almost trivial. People aren't using Python 3 enough because it's not the default in Debian/Ubuntu. That's about to change with Ubuntu 14.04. I expect that to tip the scales.
- steveklabnik 13y agoI have Ruby and Perl tattoos and now work at a Python (2.7) shop, so I have all of the horses in this race, but is there a significant difference between a language that's vaporware[1] and one that nobody uses? The previous things I've seen also indicated that Python 3 _isn't_ widely supported, though I guess Django finally got support recently, and that it _wasn't_ faster than 2.7. Is this just old information on my part, or is it different for certain kinds of workloads? > it's not the default in Debian/Ubuntu. Yeah, that should have a large impact, for sure. 1: I have seen lots of "check out this Perl 6 code" blog posts, but I don't know to what degree it's ACTUALLY vaporware.
- 13y ago