[Python-Dev] Python 2.x and 3.x use survey, 2014 edition

Donald Stufft donald at stufft.io
Sat Dec 13 07:13:20 CET 2014


> On Dec 13, 2014, at 12:40 AM, Chris Angelico <rosuav at gmail.com> wrote:
> 
> On Sat, Dec 13, 2014 at 4:29 PM, Donald Stufft <donald at stufft.io> wrote:
>> So that's basically it, lowest common demoniator programming where it's hard to
>> look at the future and see anything but the same (or similar) language subset
>> that I'm currently using. This is especially frustrating when you see other
>> languages doing cool and interesting new things and it feels like we're stuck
>> with what we had in 2008 or 2010.
> 
> That's what happens when you want to support a version of Python that
> was released in 2008 or 2010. Perhaps the impetus for people to move
> onto Python 3 has to come from people like you saying "I'm not going
> to support 2.7 any more as of version X.Y", and letting them run two
> interpreters. It's really not that hard to keep 2.7 around for what
> expects it, and 3.4/3.5/whatever for everything else.

I don’t think this option is really grounded in reality.

First of all, it's essentially the route that Python itself took and the side
effects of that is essentially what is making things less-fun for me to write
Python. Doing the same to the users of the things I write would make me feel
bad that I was forcing them to either do all the work to port their stuff
(and any dependencies) just so they can use a newer version of my library.

It also I think is incredibly likely to backfire on any author who does it
unless the thing they are writing is absolutely essential to their users AND
there are no alternatives AND it's essential that those people are using a
new version of that library. If all of those things are not the case, you're
going to end up with a majoritity of users either just stop using your tool
all together, switching to an alternative, or just sticking with an old
version. I don't think I'm unique in that I like writing software that other
people want to and can use.

I think it also assumes that people are writing one off scripts and things like
that which only use the standard library. I tend to write libraries and work
on complex distributed systems. I need to either port the entire stack or
nothing. I can't run half of my process in 2.7 and half in 3.4.

It's also something I've never had to do in Python before, I've always been
able to "follow" with the things I write. I could take a look at, or estimate,
the amount of users that dropping an older version of Python and I could
say that it was time to drop support for that version because very few people
are actively using it and the cost of maintaining support for that version
is no longer worth it. This is the same process I go through for *any*
backwards incompatible change I make to the things I write and when I drop
the old compatability shims. Ironically all versions of Python 3 combined are
low enough that if they were the *old* versions and not the *new* versions I'd
probably drop support from them for now. Really the major reasons I support
them at all is because I hold out hope that maybe at some point it will become
the dominant Python and because I try to be a good member of the ecosystem and
not hold back the adoption.

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



More information about the Python-Dev mailing list