9 ms·
Well, the CGI industry had money, competent people, and 10 years to upgrade. An entire decade. And a LOT of tooling and documentation to help. I made a lot of
by sametmax 9y ago
Well, the CGI industry had money, competent people, and 10 years to upgrade. An entire decade. And a LOT of tooling and documentation to help.
I made a lot of code conversion from 2 to 3. Most of them took me a couple hours to a few days.
I'm currently working on a 2.7 project that will never migrate because they literally patched the cpython runtime, but you can't freeze a whole community because some will take bad technical decisions or accumulate tons of technical debt.
Now, Python 2.7 will not stops working after 2020. It's just that we, as a community, will stop to pay the price for the ones that didn't move. If you want to stay there, you'll pay a commercial actor for it.
In 2020 centos 6 will stop received updates. Will you go complain that the new RPM are not compatible ? No, either you update, or you pay commercial support.
Ruby and node did it in a few months and told the community to move or die. Nobody complained.
Perl took so long the language has been forgotten.
PHP literally canceled the version 6, and made it taboo.
We gave years, and means, then extended the deadline, and heard nothing but complaining since.
I won't pretend the migration was masterfully executed. The whole 2/3 debacle was painful.
But, it's been since 2008, come on.
- crististm 9y ago2.7 is a different language than 3.x. You could argue that 2.y is also a different language than 2.x but this is besides the point: as long as there is a compiler for that language and it works (for your definition of works) you don't need to translate your programs in another language just because you have money.
- rocqua 9y ago> you don't need to translate your programs in another language just because you have money. True, but if you know the support behind your current language is going to go away, it might be smart to migrate.
- crististm 9y agoYes but this is a different argument. He could have said "if you are smart" instead of "if you have the money". See?
- sametmax 9y agoYou don't need to upgrade your servers to the lastest linux kernel either. But in 10 years, you won't get any security update for it, unless you pay a lot of money for it. It will be the same for Python. You want the excellent and money making free work of volunteers ? Do your part. You don't want too ? It's ok. In 2020, plenty of companies will sale you services for the real market price of your technical debt.
- crististm 9y agoIs now 'ignoring security' the free pass that is thrown into every argument against opposing positions? I'm being facetious about that; but you know that security risks can be reasoned and mitigated with different means (sometimes less costly) than simply upgrading software.
- sametmax 9y agos/security/bug I don't think that centos 6 is bug free yet it EOL in 2010 too. Actually i'm using it right now and I'm positive it has at least one bug when running in virtualbox. My client won't upgrade. They pay support, expensive support, to keep their old version. In 2020 I'll open a shop to convert old Python code bases or fix bugs in them. I'll charge 4 times market rate. For me it's a net win that people don't migrate.
- toyg 9y agoSometimes I wonder if the opensource movement, with its perennial “update anxiety”, is actually busy generating an industry of legacy maintenance. In a way, it’s a natural extension of the original “development is free but you pay for support” idea, but I don’t think anyone openly elaborated it into a long-term revenue-generating strategy. It looks like a slam-dunk, to be honest, with the only caveat being that work is extremely unfashionable.
- sametmax 9y agoIt's not the opensource movement. It's IT in general. A lot of software stopped working with the windows 10 update that was forced on the users. Android breaks the API regularly by changing the permission game. The PSF has limited resources (3 million of dollar of budget) to exists (this includes running pypi and organising pyconf), but I think it's track record is quite good, even comparing to commercial products.
- wiz21c 9y ago>> It's just that we, as a community, will stop to pay the price for the ones that didn't move. If you want to stay there, you'll pay a commercial actor for it. That's very well put. But I guess this can happen only with big, important, projects where you can afford to loose/upset some users...
- sametmax 9y agoNo that's just how IT works. Your games don't work in windows XP anymore. Actually, your USB3 mouse doesn't work on windows 7 out of the box. Centos have LTS, but still EOL. Ubuntu init system was changed to upstart. Then to systemd. Also gnome, then unity, then with new menu/notif/systray semantics, then back to gnome (but shell), and soon wayland. It breaks a lot of things. Firefox new addons don't work with some addons from last year. NodeJS had 3 incompatible forks in it's short life. Twitter and Facebook API breaks every sunday. JS frameworks are just madness. Python break compat, ONCE. Once since 1990. Also gave 10 years to migrate. In our industry, that's not bad at all. And the community hold. We worked. We wrote tools, doc, blog posts. We were there all the way. We have incredible libs like python-future to help. And if any of that is not enough, well, Anaconda Continuum will be happy to do business with you. It's how it is.
- SlowBro 9y ago2.X would still be included as an optional package, correct? I couldn’t determine that from the link, but it seems like RedHat’s practice. Or, they could install it from source. If so, 2.X users still have two years or so to migrate. That’s plenty of time in my opinion, even when all of your code is 2.X. There’s even a library for it.[1] [1] https://docs.python.org/2/library/2to3.html https://docs.python.org/2/library/2to3.html
- rspeer 9y ago2to3 is a bad and outdated tool, please don't recommend it. You want http://python-future.org/ http://python-future.org/ .
- staticassertion 9y agoOK, but then can the python community stop saying "Pretty much all of the packages are converted anyways!" if the answer is really "we don't care anymore if your aren't" ?
- hartator 9y ago> Well, the CGI industry had money, competent people, and 10 years to upgrade. An entire decade. And a LOT of tooling and documentation to help. I don’t think that’s a money issue. Python 3 upgrade is not really compelling. You get slower speed - at least until recently -, tests might pass on 3.x, but documentation and edge cases still are better on 2.x, etc. While nothing is really exciting in the 3.x branch.
- bastawhiz 9y ago>While nothing is really exciting in the 3.x branch. Sorry, have you looked at Python 3 lately? I don't think I can sum up all of the amazing work that's been done in one post (async? Cleaned up stdlib? Better errors? Not having an aneurysm from text encoding issues unraveling your whole project? New splat syntax?). I would really encourage you to check out what's happened in the last ten years. I think you'll find many more exciting developments than you think.
- Something1234 9y agosplat == list unpacking https://stackoverflow.com/questions/2322355/proper-name-for-python-operator https://stackoverflow.com/questions/2322355/proper-name-for-...
- joshuamorton 9y agoHe's likely referring to the extended unpacking changes, stuff like merged = {**base, **changes} Which is the equivalent of what previously was merged = {k:v for k, v in base.items()} merged.update(changes)
- nrser 9y agoI think that he's kind of right about the problem. In my opinion, Python's primary business value has been that sweet spot it occupies. It's not the most fun, but it's pleasant. It's not the fastest, but it's not too slow. It's not great on resources, but it's not too bad either. Good people will work with it, and they tend to be the "let's not get creative, let's just get it done" folks that businesses love. Mediocre people do great with it, because it feels much nicer than many of the other things they've worked with and it channels them towards producing better code and being more productive. Python makes it huge pain-in-the-ass to get weird/creative, and generally frowns upon it, so people tend not to as much. Junior and low-skill contributors can't really get in too much trouble as long as they stick to the program. It's an awesome "just sit the fuck down and do your work" language. As a language, it's carved out a great space being pleasant, consistent, well-rounded, predictable, etc.. I know there are people on here using it to build their rocket ships. And it can go there too... maybe not as flexible or fun as more extreme alternatives, but it's also less likely to blow up in your face. For those software rocketeers (probably most any SV start-up), updating makes undeniable sense. Python 3 is hands-down better, and they can handle the transition no problem. But a lot of people don't use Python to build rocket ships. They don't build rocket ships at all. They build delivery trucks and conveyor belts and coffee dispensers. And, for them, the very things that make Python a great choice - a very clean and conservative focus on simplicity and stability - are the very reasons not to switch. There's just not really anything that's been introduced in the last 10 years that is going to make any real difference for their use cases. Whatever trouble they've had with unicode and the other bs has long been lived with. Whatever's missing they've long lived without. And things have been just fine. Python's killer feature - being a really nice and well-rounded option that works pretty damn good for a large swath of people - is sorta it's undoing here. It's hard to really be that too much more so. I mean I switched to 3. It's clearly better. But if I was running a Python team that had been effectively just trying to get the job done in 2.7 for over a decade I would have to admit that I wanted to switch for my own sake - I think it would be unlikely to make them that much more happy or productive. Hell, many people can't even set their same environment back up in a week after loosing their laptop.
- dragonwriter 9y ago> Ruby and node did it in a few months and told the community to move or die. Uh, Ruby’s big compatibility breaking upgrade (1.8 -> 1.9) took more than a few months, it took years for the community to fully move. (Because of Ruby’s pre-2.0 versioning practice, 1.8.x -> 1.9.x was a major version upgrade, and it was actually a more significant one than the 1.9 -> 2.0 update. But lots of people stayed on 1.8 throughout most of the 1.9 period and the transition didn't really complete until late in that period or early in the 2.x period, and 1.8.7 was getting maintenance releases for four years after 1.9.1 stable release.)
- lbenes 9y ago> Most of them took me a couple hours to a few days. Since 2008, the automated tooling has vastly improved. I'd bet most of those "few days" issues would either not exist or take hours given today's advances in the automated code translation and new knowledge on stack-exchange.
- devonkim 9y agoMost of CGI’s customers (if it’s the CGI I’m thinking of) are used to supporting software ecosystems like Fortran, Java, and COBOL for 20+ years on major releases. 10 years is “mid-cycle” comparably. When the IRS pays Microsoft millions and millions to keep supporting Windows XP, these “niche” organizations may be small in actual engineering persons involved but from a capital perspective extremely overweight.
- Narann 9y agoOnce again, I don't say Python should not move on, actually, as a CGI "dev" (Technical Director we say) myself, I would LOVE to trash 2.7 and move on. I was just rambling about "most popular packages" which are only web/network/academic oriented while a huge part of the Python user base don't use them at all. It's just something the "Python community" can't see because most of them are web/network/internet/academic dev (and maybe it explain why they thought it could go well with breaking compat', internet bubble?). I really want Python to move. I had the opportunity to discuss with some vendors involved in the industry they told me Python 3 switch was a running gag... I hope 2.7 will be such full of security hole my industry will finally do this once for all and stop joking (they will never move on instead), but please stop tell "most popular packages" represent how Python is used as if it was what should been seen, it's definitely not. TBH, I think Python community give great tools for transition and write close compatible Python 2 and 3 code is not that hard. Once my industry will be 3+, as a dev, I will love to follow the deprecation period. EDIT: I love your blog SamAndMax. :D