Using Python 2

Steve D'Aprano steve+python at pearwood.info
Fri Sep 8 11:42:23 EDT 2017


On Fri, 8 Sep 2017 10:51 pm, Chris Angelico wrote:

> On Fri, Sep 8, 2017 at 10:42 PM, Marko Rauhamaa <marko at pacujo.net> wrote:
>> Chris Angelico <rosuav at gmail.com>:
>>> But as others have said, upgrading to 3.4+ is not as hard as many
>>> people fear, and your code generally improves as a result
>>
>> That's somewhat irrelevant. Point is, Python 2 will quickly become a
>> pariah in many corporations during or after 2018, and we are going to
>> see emergency measures similar to the Y2K craze twenty years ago.
>>
>> The risk to Python will be whether the occasion is exploited by fanboys
>> of competing programming languages. The migration from Python 2 might be
>> to something else than Python 3 in some circles.
> 
> And the sky is going to fall on Chicken Little's head, any day now.
> 
> Let's see. You can port your code from Python 2.7 to Python 3.6 by
> running a script and then checking the results for bytes/text
> problems.
> 
> You can port your code from Python 2.7 to Ruby by paying developers
> big bucks for a good while.
> 
> Advantage: Ruby, obviously, because it's easier to change languages
> than to audit your code for places where you had lurking bugs that you
> didn't know about.


People do irrational things all the time. When faced with the likelihood of a
relatively easy migration from Python 2 to 3, with a small[1] chance of it
blowing out, versus re-implementing the entire app in a completely different
language, we know that a certain percentage of people will swap languages even
if it makes no economic sense. They will underestimate the cost of
re-implementation, and overestimate the risk of a blow-out, because this is
really just an excuse to do what they've wanted to do all along: use a
different language.

Or because somebody in management heard from somebody on LinkedIn that they
heard on Facebook about something they read in some trade magazine about some
company that lost billions porting their Python 2.9 app to Python 3.0 and
besides everyone knows that Python 3 is a failure and Ruby on NodeJS is the new
hot thing that everyone is using.

To be perfectly rational, we *should* consider at least three alternatives:

(1) Stick with Python 2 and pay for support;

(2) Migrate to Python 3;

(3) Re-implement in some other language;

and make a dispassionate choice according to which one has the best cost/benefit
ratio. And that choice won't always be #2.






[1] Depends on the code base, and the developers.


-- 
Steve
“Cheer up,” they said, “things could be worse.” So I cheered up, and sure
enough, things got worse.




More information about the Python-list mailing list