[Python-Dev] Continuing 2.x
glyph at twistedmatrix.com
Fri Oct 29 08:55:55 CEST 2010
On Oct 28, 2010, at 10:51 PM, Brett Cannon wrote:
> I think people need to stop viewing the difference between Python 2.7
> and Python 3.2 as this crazy shift and view it from python-dev's
> perspective; it should be viewed one follows from the other at this
> point. You can view it as Python 3.2 is the next version after Python
> 2.7 just like 2.7 followed to 2.6, which makes the policies we follow
> for releases make total sense and negates this discussion. It just so
> happens people don't plan to switch to the newest release immediately
> as the backward-incompatible changes are more involved than what
> people are used to from past releases.
Brett, with all due respect, this is not a reasonable position. You are making it sound like the popular view of 3.2 is a "crazy shift" is based on a personal dislike of python-dev or something. The fact is that the amount of effort required to port to 3.2 is extreme compared to previous upgrades, and most people still aren't willing to deal with it. It is a crazy shift.
Let's take PyPI numbers as a proxy. There are ~8000 packages with a "Programming Language::Python" classifier. There are ~250 with "Programming Langauge::Python::3". Roughly speaking, we can say that is 3% of Python code which has been ported so far. Python 3.0 was released at the end of 2008, so people have had roughly 2 years to port, which comes up with 1.5% per year.
Let's say that 20% of the code on PyPI is just junk; it's unfair to expect 100% of all code ever to get ported. But, still: with this back-of-the-envelope estimate of the rate of porting, it will take over 50 years before a decisive majority of Python code is on Python 3.
By contrast, there are 536 packages with ::2.6, and 177 with ::2.7. (Trying to compare apples to apples here, since I assume the '2' tag is much more lightly used than '3' to identify supported versions; I figure someone likely to tag one micro-version would also tag the other.)
2.7 was released on July 3rd, so let's be generous and say approximately 6 months. That's 30% of packages, ported in 6 months, or 60% per year. This means that Python 3 is two orders of magnitude crazier of a shift than 2.7.
I know that the methods involved at arriving at these numbers are not particularly good. But, I think that if their accuracy differs from that of the download stats, it's better: it takes a much more significant commitment to actually write some code and upload it than to accidentally download 3.x because it's the later version.
Right now, Kristján is burning off his (non-fungible) enthusiasm in this discussion rather than addressing more 2.x maintenance issues. If 3.x adoption takes off and makes a nice hockey stick graph, then few people will care about this in retrospect. In the intervening hypothetical half-century while we wait to see how it pans out, isn't it better to just have an official Python branch for the "maybe 2.8" release? Nobody from the current core team needs to work on it, necessarily; either other, new maintainers will show up or they won't. For that matter, Kristján is still talking about porting much of his work to 3.x anyway.
In the best case (3.x takes over the world in 6 months) a 2.x branch won't be needed and nobody will show up to do the work of a release; some small amount of this work (the stuff not ported to 3.x) will be lost. In the medium case (3.x adoption is good, but there are still millions of 2.x users in 5 years) it will accumulate some helpers that will make migrating to 3.x even smoother than with 2.7. In the worst case (straw man: 3.x adoption actually declines, and distros start maintaining their own branches of 2.7) I'm sure everyone will be glad that some of this maintenance effort took place and there's some central place to continue it.
I'm perfectly willing to admit that I'm still too pessimistic about this and I could be wrong. But given the relatively minimal amount of effort required to let 2.x bugs continue to get fixed under the aegis of Python.org rather than going through the painful negotiation process of figuring out where else to host it (and thereby potentially losing a bunch of maintenance that would not otherwise happen), it seems foolhardy to insist that those of us who think 2.x is going to necessitate another release must necessarily be wrong.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev