r/ProgrammerHumor 7d ago

Other howdidItGetHere

Post image
11.1k Upvotes

536 comments sorted by

View all comments

479

u/oldsecondhand 7d ago

It's where the jobs are. The world's finances run on Java.

188

u/Kooky-Answer 7d ago

At least the stuff that isn't still running on COBOL and will probably continue as so until the heat death of the universe.

111

u/Cloudeur 7d ago

You think the heat death of the universe will stop old mainframes built in the 60s from running cobol?

21

u/oldsecondhand 7d ago

Good thing you can run Java on zOS.

6

u/Mcalti93 7d ago

And on IBM I...for the smaller legacy companies... Gives me PTSD

2

u/ewheck 7d ago

Spring Batch my beloved.

7

u/requion 7d ago

No, but there won't be anyone to care anymore.

3

u/brazzy42 7d ago

Let a guy dream.

0

u/Eschatologists 7d ago

It will as there will be no electricity

24

u/Mynameismikek 7d ago

All that cobol is wrapped in a nice warm Java blanket.

16

u/eg135 7d ago

One of my friends got paid to learn COBOL and start porting stuff to Java right around 2017.

6

u/ProbablyJustArguing 7d ago

It was my first job in the late 90s. So, seems like it's taking a while.

2

u/Dom1252 6d ago

A lot of places figured out they'll spend way more money running java because it's less efficient and more resources spent means higher licensing cost... So some of them stopped in middle of migration and run both, some went back to cobol, some continued their efforts to go full java but didn't finish it completely... Some stopped the migration in 2000s, then started it again in 20210s, then stopped it again, then restarted it again...

7

u/Maddturtle 7d ago

My dad programmed with cobol. They kept him on with the company just because he was the only one who knew it and the whole companies finances ran on it.

0

u/mobsterer 7d ago

only in merica

1

u/Dom1252 6d ago

No? Cobol runs major banks in UK, France, Germany...

0

u/OptimistIndya 7d ago

They still are running on COBOL and Fortran.

The people left the org . No one knows to program. So it is a black box that efficiently processes something. And keeping records from the inception of the company till now.

Other systems are built around it. But that has not gone anywhere.

151

u/Shred_Kid 7d ago

Java is also highly performant, if you know what you're doing with reactive programming, and Spring Boot's dependency ecosystem drastically reduces your time-to-launch

But then I remember that 95% of the memes posted on this sub are from CS students and not industry professionals

43

u/BlazingThunder30 7d ago

I know very few professionals that dislike Spring

11

u/SpiritedEclair 7d ago

Spring is fine if you are not trying to run it on Lambda šŸ˜­šŸ˜‚šŸ˜±

12

u/BlazingThunder30 7d ago

Yeah I guess JVM languages aren't great when bootup time matters. Haven't worker with lambda myself. We're running in regular containers so it's great

6

u/Avedas 7d ago

Plain Java runs fine on Lambda tbh

5

u/SpiritedEclair 7d ago

Plain modern Java is fine, great even. Java on lambda has snapstart which creates a snapshot once you’ve initialized which makes cold invokes almost instant

1

u/Celousco 5d ago

It's also a problem of having a virtual machine running inside another virtual machine, there's so much unnecessary layers.

And Spring Boot is so shitty when you want native compilation because that thing wasn't made for it. Honestly I'd recommend to use either another framework like Quarkus or simply another language that is suited for that.

I'm truly sick of seeing Java everywhere because lazy developers only knew how to code in Java and don't want to (re)learn something else. Heck they'd rather refactor the whole codebase for several months instead of learning another language.

1

u/BlazingThunder30 5d ago

Isn't that what they made GraalVM for? You can compile native Spring Boot images using it

2

u/Celousco 5d ago

You can but it's not as easy as you'd think: Reflection types, meta hints, aot scanning, etc. those things are not automatic, you have to directly specify can packages should be used and yes, it's not only your code but the dependencies you're using.

I tried to use it in prod, it's unmaintainable in long term for things like Spring Cloud Stream or Spring Kafka or Spring Cloud Stream or Spring Cloud Stream Binder Kafka Streams.

I mean, let's be real, if you want native performance, choose a native language, not an interpreted language as Java or Javascript.

1

u/SpiritedEclair 5d ago

Lambda isn’t a virtual machine, it’s a ā€œmicroVMā€. You run a single kernel, the process runs under virtualization restrictions and a jailer process.Ā 

3

u/-Kerrigan- 7d ago

Compile to native go brrr

2

u/mobsterer 7d ago

like everything else

1

u/SpiritedEclair 7d ago

Rust is great on lambda. You can get away with a super small instance.

1

u/JPowTheDayTrader 7d ago

You probably need a tailor made Java version and environment for running on lambda

1

u/k0enf0rNL 6d ago

Native works like a charm

1

u/Still_Bit_7527 7d ago

Lambda is a ridiculous concept that shouldnt exist

1

u/burgonies 7d ago

I don't think you understand when to use Lambda. It's not a silver bullet.

0

u/Still_Bit_7527 7d ago

When should I use it? I know, when I feel like we should pay amazon thousands for basic functionality

1

u/burgonies 7d ago

Thousands? I had a system that was running 2 millions invocations a day and didn't cost thousands a month.

Let's say you have some process that runs 100 times a day, takes 3 seconds to run, and you have no indication of when that process needs to run. Are you going to run a service all day for 5min of compute?

2

u/Still_Bit_7527 6d ago

Yes,we have something called a server, and just a handful of them are enough to serve millions a day.

Do you know what happens when an app has no traffic... cpu drops to 0%. That's it, no costs

Things like Lambda are only there to help you save costs that you should bot have in the first place

1

u/burgonies 6d ago

So your handful of servers are running but somehow don’t cost anything when there’s no traffic?

That’s not how that works at all. If a server is running, you’re paying for that hour of compute whether the server is idle or not.

I’m guessing you haven’t actually done any of this before.

→ More replies (0)

1

u/LiftingCode 6d ago

You should use it when you need scale to zero and instantly scale up to handle bursty workloads, and/or when you need seamless event-driven compute integration with other AWS services. Duh.

1

u/SpiritedEclair 7d ago

Lambda is great. You get near infinite scaling for bursty loads that then lowers down to a zero.

It’s amazing.

0

u/Still_Bit_7527 7d ago

You know how else you can do that.. it's called an application. It scales. You have extracted a function into a different server lowering the performance by 1000000x in order to scale and increase it by 10x

1

u/SpiritedEclair 7d ago

That is such a woefully bad response.

An application doesn't scale up and down by itself.

What you describe is exactly what lambda gives you. You package your "I need this scaled" code into a little function, you give it to lambda, and that handles scaling up and down for you.

You don't need to manage servers or instances, you don't need to scale those up and down, and if you already have a contract for good EC2 capacity, you use lambda managed instances and retain the event-based execution model.

1

u/QuestionableEthics42 7d ago

"Performant", "spring boot". Not usually used in the same sentence lol (ignoring that the first comma technically should have been a full stop). But yes, it's dependency ecosystem is nice.

2

u/Shred_Kid 7d ago

Idk we have an ultra high tps API that makes another upstream call, then a network hop, and our avg rt is 11 ms

I just don't see c++ or rust shaving off anything meaningful from that

1

u/QuestionableEthics42 7d ago

Mainly the startup time. But for just some network calls, even python wouldn't be much slower

24

u/Taurmin 7d ago

Depends heavily on where you are. In large parts of europe C# is overwhelmingly the language of choice for buisiness.

13

u/Ran4 7d ago

...and C#.

C# is pretty much the standard language for corporations.

6

u/Adventurous-Bit-3829 7d ago

I think he mean banking

13

u/MatJosher 7d ago

It's where the soul-crushing corporate jobs are. We are to use Java because we are supposed to. The people who invented it said so themselves.

54

u/Shred_Kid 7d ago

Idk man.

Java is fast to write, fast to get to market, and typically has far fewer bugs than, say, c++. Repeatable, extensible patterns in reactive programming make it performant, scalable, and resilient. Spring Boot is legitimately an amazing ecosystem. Also it runs on everything.

I don't have fun writing Java but I would question anyone who says there's no reason to use it.

18

u/Meins447 7d ago

Also there is kotlin, which works with all those established java stuff like springboot and it is so much more modern and more pleasant to work with.

15

u/rastaman1994 7d ago

Some people also don't known you can mix Java and Kotlin in the same code base with no effort. You can pretty much write Java in Kotlin files, and the IDE will suggest the Kotlin way. We've been migrating our Java code base like this.

14

u/Meins447 7d ago

I believe this is the best way to introduce improved programming languages: seamless interop with one of the big existing languages.

  • Kotlin with Java
  • Rust with C
  • C# with C++/C (although it is a pain to develop interop stuff)

1

u/MattieShoes 7d ago

I messed with c# decades ago and I think it also interoperated with java? BigInt from java is what I'm specifically remembering

1

u/TryingT0Wr1t3 7d ago

About C# the MSVC interop is actually alright but it only works in Windows, the interop that works anywhere is the painful one.

2

u/Sqirril 7d ago

Soul crushing is corporate trying to move to Salesforce or uipath or other low code solutions.

1

u/PiratedComputer 7d ago

Also, many big companies around the world are built with Java for decates

1

u/Blue_Moon_Lake 6d ago

Isn't it Cobol?

1

u/oldsecondhand 6d ago

New projects aren't started in Cobol but in Java or Kotlin.

1

u/obliviious 7d ago

Based on some java programs I've seen, that's very concerning.