[Python-Dev] 2.7 Release? 2.7 == last of the 2.x line?
"Martin v. Löwis"
martin at v.loewis.de
Wed Nov 4 20:02:05 CET 2009
> For one thing, we have a very long row to hoe here. The migration to
> 3.0 is a long, tedious process with little tangible benefit. I hope
> that sometime in the next decade Twisted can accelerate the process of
> dropping old 2.x versions, but I seriously doubt we could do a
> feature-complete 3.1/2.6 version. I get the general impression that a
> 3.2/2.7 port would be more feasible; hopefully a 3.3/2.8 would be even
Please understand that you will not need to drop 2.x versions in order
to support 3.x. Just add 3.x support now and make sure it won't break
> Also, the benefits of migrating to python 3.x are still negligible, as
> far as I can tell.
For Twisted, most definitely - you will need to support 2.x and 3.x
simultaneously, so you can't really benefit from 3.x-only changes
for a long time to come - perhaps until a 3to2 tool has a good quality,
and probably not even then (since it will restrict you what you can
do in 3.x code).
> On the other hand, you've got NumPy, PyGTK, Unladen Swallow,
> PyPy, Jython, IronPython, and so on and so forth. Since I started using
> it, the strength of Python has been in its ecosystem, and the 3.x
> ecosystem is not yet viable.
Right - the advantages wouldn't be for Twisted itself, but for users
of Twisted, which would see a larger ecosystem if Twisted was available.
> The main reason I want a long 2.x series is that I believe it would more
> easily allow us infrastructure folks to drop support for *older*
> versions. With this big 2.x->3.x chasm, I can't really see an end in
> sight for Twisted using Python 2.x as its _source_ language, translating
> with 2to3.
Well, 3to2 would then be an option for you: use Python 3 as the source
> Some projects which depend on Twisted and want new versions
> (and security fixes, etc) are going to want Python 2.x for a really long
> time. Maybe they're just really conservative, maybe they don't have a
> lot of maintenance energy, or maybe they have other dependencies which
> haven't got a port; it doesn't really matter, empirically speaking
> people want older versions of Python.
But wouldn't these applications also break as Twisted drops support
for old 2.x versions, and the applications fail to work on the newer
2.x version (say, 2.34)?
> Keep in mind also that the 2.x translation process is extremely slow and
> results in a clunky development process. There's no '2to3
> --interactive' commandline that lets me type python 2 at a >>> prompt
> and get python 3 results out so that I can try experiments on the 3.x
> interpreter; I have to actually put my experiments into my unit tests
> and wait 10 minutes to see if it works. It's like writing C++.
That's not my experience. I see a change in source (say, on Django)
available for 3.x within 5 seconds.
More information about the Python-Dev