[Python-Dev] [RELEASED] Python 2.7 alpha 2
"Martin v. Löwis"
martin at v.loewis.de
Mon Jan 11 22:42:45 CET 2010
> So the question we should be asking is: what's missing from Python
> 2.7 to help with this transition?
Wrt. the distribute feature you've noticed: Python 3.0 already supports
that in distutils. So from day one of Python 3.x, you could have used
that approach for porting Python code. I had been promoting it ever
since, but it's taking up only slowly, partially because it has
competition in the approaches "burn the bridges" (i.e. convert to 3.x
once, and then have two code bases, or abandon 2.x), and "avoid 2to3"
(i.e. try to write code that works in both 2.x and 3.x unmodified).
> If we can't get it into 2.7, then
> why, and would pushing it back to 2.8 help at all?
I've done a fair bit of 3.x porting, and I'm firmly convinced that
2.x can do nothing:
a) telling people that they have to move to 2.6 first actually
hurts migration, instead of helping, because it implies to them
that they have to drop old versions (e.g. 2.3.) - just because
they had *always* dropped old versions before supporting new ones.
b) IMO, people also don't gain much by first migrating to 2.6.
In principle, it gives them the opportunity to get py3k warnings.
However, I haven't heard a single positive report where these
warnings have actually helped people in porting. Yours is the
first report saying that you followed the official guideline,
but you didn't state whether doing so actually helped (or whether
you just ported to 2.6 because the guideline told you to).
c) whatever 2.7 does (except perhaps for the warnings), it won't
be useful to applications, because they couldn't use it, anyway:
they need to support 2.4 and 2.5, and it won't have any of the
gimmicks people come up with for 2.7. Adding gimmicks to 2.7
might actually hurt porting: people may have to special-case
2.7 because their work-arounds for older versions may break in 2.7
(e.g. testing whether a name is *not* defined, when it becomes
defined in 2.7), plus it gives them an incentive to not port
yet until they can drop support for anything before 2.7.
Inherently, 2.8 can't improve on that.
More information about the Python-Dev