[Python-3000] Code working in both 2.x and 3.X
Ron Adam
rrr at ronadam.com
Thu Jan 11 22:59:49 CET 2007
Jim Jewett wrote:
> Raymond Hettinger wrote:
>
>> Also, I'm wondering if the desire for 2.6 warnings is based on the notion that
>> it will be possible to get large tools to work under both Py2.x and Py3.x.
>
> I had certainly assumed it would be possible.
>
> In fact, I had assumed that the 2->3 translator would have a mode
> which left the code running in both.
>
> This might not be the cleanest possible code for either line (parens
> in 2.x, some extra iter calls or missed shortcuts, etc), but it should
> certainly exist. If it doesn't, then people who do want to support
> both lines will themselves have to work exclusively in 2.x and
> "compile" to 3.x.
>
>> With all the module renaming/packaging,
[etc... clipped to shorten]
There seems to be a fair amount of anxiety starting to appear about the
difficulty of trying to support both 2.x and 3.x at the same time. It's
understandable, but I think it may be the earlier than expected 3.0 release date
that is adding to that.
Would it be reasonable to define X.0.X versions as official transition versions
which need not have both back word compatibility, or overly strict future
compatibility?
I thinking that the 3.0.X version be considered a try it out (alpha) release to
generate plenty of feed back, and the 3.1.X version be the first version meant
for actual development use.
3.0.X <=> 3.alpha.X
3.1.X <=> 3.first.X
So the release order may be 3.0.0, 2.6.0, 3.1.0. ...
(With minor bug fix releases in between, of course.)
My thinking is developers won't need to support the 3.0.X version *ever*. And
even 3.1.X need not be "too strongly" constrained to be back word compatible
with version 3.0.X, as it may still have quite a few changes. Version 3.1.0
would then be the first version that future, 3.(1+n), versions will need to
maintain back words compatibility with.
This gives a lot more time for developers to try it, give feed back, and work
out how to do things like move stuff from 2.X to 3.X, etc... It also may give
more freedom to make changes in version 3.0 with less anxiety to third party
developers.
Version 3.0 -> a (relatively) clean start with big changes.
Version 2.6 -> may take into account things in version 3.0.
Version 3.1 -> builds on 3.0 and may take into account version 2.6
Isn't this the general (informal) context already being considered?
Just a few thoughts,
Ron
More information about the Python-3000
mailing list