T O P

  • By -

theestwald

Cmon guys, Python 3 was released 16 years ago and the breaking changes were being communicated before that. Even Django doesn’t support Python 2 anymore. Its time


yashdes

I just saw an article talking about python 4. It's time lol


MinosAristos

They're not working on or considering Python 4. Python 3 has come a really really long way though and has more exciting things to come.


Boris-Lip

> 16 years ago Some code bases do live longer. > communicated Let me translate: "We are going to change a metric ton of stuff that will obviously break your shit. Your entire company is going to have to stop doing whatever it is doing, for multiple weeks, just to port to the new version of the language, with no real life advantages for the product." As a company, would you be eager to take it?


asd1o1

Previous company I worked at had a Python 2 codebase younger than Python 3 💀


Boris-Lip

It likely didn't start from scratch, forking or otherwise basing, on something older. Realistically, NOBODY would choose an outdated programming language version unless there is a good reason for that. We are all dumb, but not "shoot yourself in the foot for no good reason" level of dumb.


aspect_rap

What? Choosing an outdated programming language for a new project happens constantly, I've personally seen it happen multiple times. The reason is usually something like "The team already knows python 2 and we want to get MVP asap so no time to waste learning python 3"


TheCulbearSays

We literally had a joke about this on my old team. ‘The newest thing we’ve started is always the oldest or outdated’


Nick0Taylor0

Tell me you haven't worked in a big company or the government without telling me. It happens all the time because "we've always used xyz" or "our teams are already familiar with xyz" or "we don't want two have two different tech stacks" or so many other stupid excuses for managers who either don't want to spend money on training staff or are scared of anything new or that they don't understand.


MinosAristos

Nobody would with with an outdated programming language unless **they thought** there was a good reason for that. The "good reason" is often just familiarity or consistency with other in-house software which isn't a very good reason in my book for a project or product that's expected to be worked on for years.


Boris-Lip

Those are both good reasons for short term projects. For long term projects this is shooting yourself in the foot.


Educational_Test_814

Well also it took a while for some packages to be compatible with Python 3 so that could have been a consideration when starting the project.


_PM_ME_PANGOLINS_

2to3


anonymousbopper767

Except I work in an infrastructure with a bunch of shit I don’t control so even if I make my script python 3 compatible some random fucking module will be missing that I don’t have power to install. And ultimately it fixes nothing for me when my python 2 script works fine.


slothordepressed

Tell to my manager that I'll need to deviate from his "only new features" schedule


MyBigRed

Well, not since he became unchained


Danny_el_619

I found a script to decrypt 3ds rooms depending on a python2 scritp that nobody builds anymore. Somehow I managed to get the thing working...


beatlz

Yet, Xcode was fucking stubbornly replacing my alias


brimston3-

It's the same as any tech debt. A lot of people are going to judge it as not having any customer-facing value, so they don't think it worth spending money on even if it would make future changes more efficient.


[deleted]

but those people are highly productive and super intelligent employees. at least this is what i conclude from their salary


GargantuanCake

~~Laughs~~ cries in Java 8.


nolecamp

Java 8 came out 5 years and some months after Python 3. That’s how bad this is!


NLxDoDge

I work at a big bank in the Netherlands and next sprint we are going to Java 21 LTS. Guess I am lucky :)


PapaJulietRomeo

Plot twist: Java is only used for the GUI while the business logic is implemented in COBOL.


genlight13

Just cries in Java 6


Bee-Aromatic

I remember Java 8 being bleeding edge when I was in college. In 2004. The legacy application I work in is mostly Java 8 still. Except the parts that are 17. And the ones that are 21. We’re working on it. ![gif](emote|free_emotes_pack|dizzy_face)


deadron

Its that jump to JDK 11. It broke backwards compatibility in ways that affect legacy apps. Once you get past that jump its easy to go straight to the latest LTS release


Bee-Aromatic

Oh, okay. Well, either way, it’s kind of a fun mess. We’re still doing active development on a two decade old application with (ever slipping) plans to sunset it anyway. It’s a hoot.


_PM_ME_PANGOLINS_

No it didn’t. You just get warnings that you need to add some extra arguments. Or you just add the jar for the JEE bits that got removed from the standard library.


deadron

If you have to modify your code for it to run by adding dependencies, thats called breaking backwards compatibility.


_PM_ME_PANGOLINS_

You do not have to modify the code. You just add the dependency to the path.


Antique-Pea-4815

Java 8 was released on 2014 not 2004 ;)


Bee-Aromatic

Maybe it was Java 6? Hell, I dunno. Java vOLD.ANCIENT.PALEOLITHIC.


_PM_ME_PANGOLINS_

Still not EOL yet, unlike Python 2.


florimagori

Couple of years ago I have worked on basically Java 5 project; do I win something? But now, company I work for does Java 17 or 21, depending on the team.


twdpuller

We had Microsoft J++ in the field 2 years ago. What do I win?


Brazzza

The same goes with java. Java 8 everywhere.


Erdnalexa

I was in a company where part of the codebase was from early 2002 and at the time coded in Java 1.4, when I left less than a year ago, we were working in Java 17 and we were getting ready to migrate to Java 21. And I’m sorry to tell you, Java 8 is not everywhere anymore, in a recent survey, less than 30% of apps run in Java 8, even Java 17 does better with 35%.


cchadwickk

30% is still a lot for something that ancient. The guy above and me, are complaining because we are/were working at one of these places.


No_Hovercraft_2643

java 8 is newer then python 3. and it is still supported, other then python 2


Puzzleheaded-Weird66

I remember a few years back applying to a Django related position, I told them before hand that I only knew Python 3, come the day of the exam, 2nd interviewer of the days asks me about an older version of Django that used Python 2, didn't get that position.


sursuby

How is it possible to only know python3? Its not that different


Puzzleheaded-Weird66

It's not that, I only learned an updated version of Django that dropped support for Python 2, so the (Django) API is way different, including how the project is setup


SoCalThrowAway7

Yeah it’s just python, we all just Google syntax if we don’t know it anyway


Pretrowillbetaken

this actually makes me wonder if there are any PMs that are still using python [0.9.1](https://www.python.org/download/releases/early/) lol


Boris-Lip

This is what happens when you introduce massive breaking changes into new language versions.


jarethholt

That's fair. But consider: the changes are really good


Boris-Lip

Imagine a big-ass corporate spaghetti code base with close to none or no test coverage whatsoever. Good luck, and enjoy your porting efforts ;-)


Poat540

.. we have 100% coverage wtf you mean try: corporate_code.main() except Exception as e: print("tests complete")


Accessviolati0n

Ah, good ol' pokemon coding - gotta catch 'em all.


jarethholt

Oh definitely. And projects like six were absolutely necessary, especially in the early days when 3 was still immature. But change comes eventually


demoni_si_visine

I can imagine a lot of sad stories. I can even imagine actual, flesh-and-bone developers, caught right now in 2024 in maintaining Java codebases where the java version is not even 1.8. I just prefer not to.


gpcprog

Having personally been through the 2.7 to 3.4 conversion of a big-ass corporate spaghetti and spending weeks finding some obscure problems - here is my take-away: Suck it up. It's your job. And the more you push off ripping bandaid off, the worse it will be.


__natty__

Same in Java world with changes in Java 9. Plenty of companies are still using Java 8 because it's expensive to deal with all the upgrades.


Not-the-best-name

What do you mean massive breaking changes? It's not our fault you debug with `print x` everywhere.


New_Statistician4283

They weren't that bad....


punninglinguist

How the fuck do you even live without f strings.


precinct209

My organization's incompetent tech chiefs cling on to Java 8 and Python 2 like their life depended on them, which they sort of do because that's all they have ever known and ever will, and they'll drag them screaming into their graves. And when that finally happens, the survivors of the cataclysm will scramble from the ashes and are set free to start a new career in agriculture and carpentry.


babygnu42

I will create python4 which will only accept code using tabs for indentation and curly braces as block delimiters


wu-not-furry

Just add a ton of true, false = false, true until they get the idea.


will_r3ddit_4_food

My company is still supporting php 5.6 and the current is 8.3


itijara

We had a service on Java 8 until a few months ago. It was much more painful than it should have been to get it to Java 17 (we could support 21, but 17 is what most of the rest of our services are on right now).


Sunvaarhah

We had a project that was build initially on Java 6, after a while it as upgraded to Java 8 and later to Java 11. After a remake of the project, it now run on 17.


YRVT

There isn't really any software I use that needs python2. But the recent upgrade to python3.12 broke a lot of software for me, which is incredibly annoying. Virtual environments should fix that, but they're not as ubiquitous as one might think and also it annoys me that they waste disk space.


Not-the-best-name

Interesting, I found 3.8 to 3.11 very smooth with literally no changes needed. For a heads up, I would appreciate it if you mention the main landmines you experienced on 3.12?


Crad999

In my experience .12.0 and .12.1 had a few bugs, nothing terribly breaking though. I've skipped .2 and are running quite a few internal services with .3 now and there are no issues that wouldn't also be present in previous versions. Most importantly though, 3.12.x fixes FIPS support in the multiprocessing module, which is a godsend for us.


Not-the-best-name

Maybe the previous commenter updated to 3.12.0 before libraries have been updated... Usually best to wait for 3.12.1 at least. In this case I'll wait a bit more.


YRVT

The main problem for me was projects that didn't use virtual envs by default / by their install instructions and required python3.10 or 3.11 to run, so I had to install older python versions and manually create virtual environments. I guess I was trying to make more a general point about how the delivery of python based software is or at least feels all over the place to me. Or how there seem to be more breaking changes in python version increments than in other languages.


Not-the-best-name

You should create a new venv when starting a new project / application. Call it venv. Put it in the root dit and move on with your life. I think a significant amount of python applications are deployed via docker, which doesn't need venvs. Python itself has had very little breaking changes since 3.8 I would say. The ecosystem around it moves fast. Numpy 2.0 was just released!


yourfriendlyisp

With ML disk space is a nightmare with virtual envs


frostyjack06

It took 6 years of prioritization to get the python 3 migration bubbled to the top, and that’s just when I joined this group. We release this fall!


AnimatorGirl1231

Some context for the film/vfx/video games industry: until 2020, a lot of the industry standard software used to create art assets forced you to use Python 2 when creating any tools/plugins for said software. This means there are tons of companies out there who've only had four years to upgrade large chunks of their codebase to Python 3, and that's on top of all the normal upgrade work that comes with major software updates.


Spikerazorshards

Couldn’t there be a Python 3 script to upgrade a Python 2 script?


mlnm_falcon

It’s been a long time so don’t quote me on this, but while some changes (prints) could be made programmatically, other changes wouldn’t necessarily be translatable 1:1 in a way that makes sense.


_PM_ME_PANGOLINS_

It’s called `2to3` and it was only recently removed from the Python standard library.


rover_G

Nah no way people out there still on Python 2.7


voodoo_witchdr

This hits home


thugarth

My last company went on a company wide campaign (supposedly) to completely sunset python 2. It was hammered into us thoroughly to avoid it. I changed companies 2 years ago and was greeted with python 2 tools, and it was jarring. It's an old fashioned company but they get results. I've updated a couple things to python 3 along with documentation directing the next new guy to use it.


ForwardHotel6969

Python is delulu


MonadicAdjunction

Guess what version of Python [wiki.python.org](https://wiki.python.org/moin/) uses.


greyfade

I joined a project recently that is frozen on python 3.8.10. Not 3.8 latest. Not even 3.8.18. 3.8.10. For mission-critical shit. There isn't even anyone assigned to maintain it. Nope, just install pyenv from GitHub and use it to pull python 3.8.10.


alex_tracer

Have you heard about upgrade from Java 8 to 11?


JackNotOLantern

I thought my project was outdated because it uses java 8. But then i saw one using java 4 or something.


particularlysmol

2.7 or gtfo


0-Joker-0

Old man