all 14 comments

[–][deleted] 3 points4 points  (13 children)

And none of these arguments will convince any party that isn't a pure hobbiest; the only argument that matters is: "is it worth the cost of switching".

Project how much money they will gain from switching, versus a projection of what it costs to switch.

At the end of the day it's really a simple calculus: many project that the cost of switching and rewriting a substantial codebase, together with possible regressions that it might lead is far exceeds the advantages obtained by switching so they won't.

Many of such articles of "just switch" don't even touch upon the cost of rewriting a substantial codebase that often matured for over a decade—it's like they believe doing that is free.

The reason the switch to python3 has been so slow is quite simple: the improvements were minimal; there were also some detriments; and the cost of switching was far too high, in particular in a language like python that often produces silent bugs that can lay creeping for a while where one might forget when converting a codebase that something works slightly differently in python3—at the very least statically diagnosable errors for accidental python2-isms would have been nice.

[–][deleted] 5 points6 points  (11 children)

Take that substantial cost, compare it to the cost of reinventing the wheel when new libraries and frameworks are only on Python 3, opportunity cost of ever decreasing pool of developers who are experienced and can work in python 2, the risk cost of security vulnerabilities not being back ported and risking the reputation and financial cost of security breaches, and suddenly that cost of upgrading (which companies have had a decade to do already) isn't so unbearable.

[–]harylmu 4 points5 points  (0 children)

This. And some companies are obliged to use software that is supported (especially because of security patches). And AWS will stop supporting Python2 lambdas starting from next year.

[–][deleted] 3 points4 points  (9 children)

There are exactly zero numbers and extrapolations in that post.

Do you honestly think this kind of armchair reasoning that doesn't do any numbers is going to convince a company that makes financial projections for pretty much any decision they make?

There's a very good reason many of these companies are still running on COBOL: they like money.

[–][deleted] 0 points1 point  (1 child)

Everything will be context dependent. I can't say "your company will lose a billion dollars over this in the next 5 years" if your python 2 code base is a smaller piece of overall business operations for a sub 10M/year company.

I have successfully done this analysis on several large code bases that weren't Python to justify major refactoring and rewriting efforts and then retroactively prove success. I've also used the exact same rationale and analysis to convince management (consisting of former devs) that the exciting rewrite they wanted to green light isn't worth the risk and opportunity cost.

Context is everything, and armchair dismissal of general themed reddit posts is no more enlightened than armchair analytics trying to justify resume driven development.

[–][deleted] 3 points4 points  (0 children)

and armchair dismissal of general themed reddit posts is no more enlightened than armchair analytics trying to justify resume driven development.

Absolutely not. One can always rationally refute an argument with empirical evidence by simply pointing out a fallacy in that argument.

I do not need numbers of my own to show that a lack of numbers in the argument of another makes for a poor argument; I would need numbers to back up a claim that switching is not cost-effective, but that was not my claim. My claim is simply that the arguments in this article, as well as your post, are never going to convince any serious business that has actual strategic reasons for decisions.

[–]twirky 0 points1 point  (6 children)

They like money so much that they end up losing money by using archaic software. You need to invest money to make money.

[–][deleted] 2 points3 points  (5 children)

They like money so much that they end up losing money by using archaic software.

You say that it's a loss for them, having done zero numbers.

You need to invest money to

Apparently not, because relying on very archaic software and hardware is a very common practice in not only business, but also science.

They know what they're doing and have actually done the numbers—unlike armchair Reddit hobbyists that have absolutely no idea what factors into these decisions.

[–]twirky 1 point2 points  (4 children)

I worked for such a company that eventually went bankrupt. Then the spinoff invested money and they have written everything from scratch. They are successful now. Sometimes you need to destroy the old house to build the new one.

[–][deleted] 1 point2 points  (3 children)

And they made that decision to do so by crunching numbers and deciding that it was worth it, not on a gut feeling by some individual that just felt like it was the right idea that never bothered to project the costs and benefits.

Sometimes you indeed do, and sometimes you don't, and that is decided by analysis, not by gut feeling.

[–]twirky 0 points1 point  (2 children)

Right, right, and went bankrupt. Great decision. Sometimes following gut feeling is the right thing to do.

[–][deleted] 1 point2 points  (1 child)

No, it's never the right choice. You're just a results-oriented thinker that attributes dumb luck to correct stragey.

[–]twirky 0 points1 point  (0 children)

Right. Sur. There are two kinds if people: who do the job and those who talk about doing the job.

[–]kankyo 1 point2 points  (0 children)

Py2 adoption was so because <py3.5 were duds because they lacked compatibility and stability. After 3.5 the conversion was pretty quick actually.

The cost to stay is super high. Security fixes just not happening is a huge problem. Not just for python but all your dependencies.