Python 2 to 3 conversion - embrace the pain

Mario Figueiredo marfig at gmail.com
Sun Mar 15 20:19:53 EDT 2015


On Sun, 15 Mar 2015 19:43:38 -0400, Roy Smith <roy at panix.com> wrote:

>
>The big problem continues to be the legacy projects.  People made 
>decisions years ago about what packages to use, and those decisions are 
>hard to get away from.  There is a lot of production code out there 
>which still uses third-party packages that are effectively abandonware 
>by now.  But the code still runs, and there's little incentive to mess 
>with it.  Rather than migrate to p3, it's more likely those systems will 
>continue to run for years to run on p2, until eventually somebody turns 
>out the lights.

If it isn't broken, don't fix it. I can certainly agree with that. But
even if a fix is required there are associated costs to a language
upgrade that rarely justify it. And for this reason Python 2 should
remain well and alive for the lifetime of any legacy code.

The OP however is hinting at the idea that Python 3 isn't ready to
create its own production code, because either the standard library or
the 3rd-party library real estate isn't giving the language enough
working tools. This is false, of course. Python 3 has been producing
working applications for years.

I'm not much of an apologist of Python 3. I don't defend for instance
that people should upgrade *old code* to Python 3 code. (I'm not even
qualified to do so, since I'm a relative newcomer to the language
whose only experience with python 2 has been to understand how to
create backwards compatible versions of my Python 3 code).

But I do really defend the idea that we should stop looking for
justifications to keep creating *new code* in Python 2. Everytime we
do so we are extending the transition period and perpetuating all the
backward compatible issues we have been facing. I mean, I would love
to one day stop worrying about creating backward compatible code in
Python 3. It's one royal PITA.

So, when I see someone crying over Twisted lack of support, or some
obscure bug in some library, I just wonder if these people started
programming today. There was a time when people had to do without
Twisted. And there was a time when people had to do with bugs in the
standard library. If these programmers can't abide by those things
what were they doing back then?



More information about the Python-list mailing list