So, what's the real story on Python 2 vs Python 3?

Chris Angelico rosuav at gmail.com
Fri Dec 27 06:06:16 EST 2013


On Fri, Dec 27, 2013 at 9:51 PM, Rustom Mody <rustompmody at gmail.com> wrote:
> On Fri, Dec 27, 2013 at 11:53 AM, Dan Stromberg wrote:
>> On Thu, Dec 26, 2013 at 9:43 PM, Rustom Mody  wrote:
>>> 2. Always write strings with a u" prefix
>> 3.0, 3.1 and 3.2 don't understand this, but 3.3 does.
>
> Ok
> I was writing this under the assumption that 2 is really entrenched
> whereas 3.n is dispensable when 3.n+1 comes out
> At least on my debian box 3.2 recently got obsoleted and removed when
> 3.3 came out.

That's true except for the "comes out" part. Just because python.org
has released a newer 3.x Python doesn't mean everyone has it; Debian
Wheezy (the current stable) ships with 3.2, and Debian Squeeze (the
current oldstable, still supported and will be until some time 2014
probably) ships 3.1. So for scripts that need to be deployed onto one
of the most popular Linux distributions, supporting only 3.3 is pretty
much out of the question. And Red Hat, generally, is supported for
even longer. I don't know what Python versions are going to still be
around for the next ten years, but the easiest way to check would
probably be to see what RHEL support dates and Python versions are.

However, I do broadly agree. For controlled environments, you should
be able to slide from 3.1 to 3.2 to 3.3 to 3.4 on whatever schedule
you choose, and happily drop support for the older versions. But in
less controlled environments, that's a bit harder.

Probably within the next 5 years, it'll become reasonably plausible to
support nothing older than 2.6, and then all those 3.x compatibility
__future__s will be all you need. Well, most of what you need. There
are still fundamental issues with functions not taking Unicode
strings, but that's going to be a problem whatever you do. But life'll
be a lot easier.

ChrisA



More information about the Python-list mailing list