4 ms·
Sometimes all that's needed is a little pressure and motivation mixed with morale from strong leadership to encourage people to spent a day or so upgrading and
by sephoric 8y ago
Sometimes all that's needed is a little pressure and motivation mixed with morale from strong leadership to encourage people to spent a day or so upgrading and testing. Maybe not in this case though. That might not have been enough here, who knows.
- AnonymousPlanet 8y agoThis kind of smug armchair analysis is great as long as all your projects are just a couple of thousand lines. Try updating in "a day or so" when you have millions of lines of Python 2 code. And your code runs at hundreds of customer sites. "Two years or so" is much more realistic. If and only if you have the manpower.
- marcosdumay 8y agoWell, I shrug imagining what millions of lines of Python looks like. I can't think of any open Python project with that size, and I can't imagine an organization maintaining one. And I can easily agree that such project won't migrate from Python 2 to 3 in a year. It won't migrate in a decade either, or in a century.
- hermitdev 8y agoAt a previous employer, I left behind maybe not millions of lines of Python 2 code, but certainly somewhere in the hundreds of thousands range. There was also a fair amount of reliance on 3rd party libs for databases, IBM MQ and tibrv that had native components. We also had our own Python libs that had native components written using Boost Python. Large Python projects are possible, but if you don't have good discipline and organization, it can quickly become a mess (probably true regardless of the language). I'm not sure how much effort it'd be to migrate all of that to Python 3, but I'm sure it's not trivial. But, I also don't think it'd be a multi year effort. It also wasn't a big monolithic project, so a migration could be done piecemeal.
- eesmith 8y agoYou made me curious so I looked around. I couldn't easily find an open Python project with 1M+ LOC. Python 3.7 has 542,292 lines of Python, according to David A. Wheeler's 'SLOCCount' . And another 418,581 lines of C. NumPy has 159,208 lines of C and 113,842 of Python. SciPy has 174,580 lines of Python, 83,155 of C, and 79,514 of Fortran. Pandas has 225,417 lines of Python. Put them all together and that's 1M lines of Python to run the standard Python data stack.
- AnonymousPlanet 8y agoI wasn't talking hypothetical, I was talking out of my own experience. Yes, these codebases exist and, yes, maintenance isn't easy, especially because of dynamic typing.
- jakevn 8y agoOpenStack has millions of lines of Python, I believe.
- ilayn 8y agoI used to think along those lines but I don't buy this argument anymore. Many impossible-looking companies just switched pretty seamlessly Instagram, Dropbox etc being among the big ones. Besides, you never hear about what is difficult about the migration as opposed to why it might be difficult because a lot of lines. I have been hearing this since a few years instead of repeating the same thing they would have ported by now should they even bothered. Here are all the milestones https://python3statement.org/ https://python3statement.org/
- celias 8y agoThere is a discussion about Instagram's approach to migrating to python3 around the 34 minute mark in this talkpython podcast https://talkpython.fm/episodes/show/155/practical-steps-for-moving-to-python-3 https://talkpython.fm/episodes/show/155/practical-steps-for-... Lisa Guo's presentation starts around the 13 minute mark in the 2017 keynote linked to on that page. Here's a blog post about Dropbox migrating from python 2 to 3 https://blogs.dropbox.com/tech/2018/09/how-we-rolled-out-one-of-the-largest-python-3-migrations-ever/ https://blogs.dropbox.com/tech/2018/09/how-we-rolled-out-one...
- pseudalopex 8y agoFacebook and Dropbox took years to switch. Instagram took at least 10 months. (I think that was just the big push.) They switched after the Python developers added compatibility features in 2011 and 2012 and libraries had time to catch up.