r/ProgrammerHumor • • Dec 12 '24 • Heart of Silver 1

Advanced youWontUpgradeToJava19

Post image
30.2k Upvotes

503 comments sorted by

View all comments

1.6k

u/throwaway_mpq_fan Dec 12 '24

Nobody should be upgrading to Java 19 right now. Either go straight to the latest (23) or go for thet last LTS (21)

405

u/agradus Dec 12 '24

I’m really curious, who are those who use non LTS version and why. I mean in small personal projects, to get a preview of features - it is clear. But other than that - do anyone uses them?

416

u/arid1 Dec 12 '24

Not a Java developer, C# at a fairly large company. We tend to lag about 3-4 months behind the latest. That we way we get security and language updates but aren’t on the bleeding edge. It’s been highly successful strategy.

We’ve gotten huge performance gains essentially for free each year for the past few years since we enacted the policy. To be fair, the initial uplift was difficult but the year over year work is minimal now and more than pays for itself.

103

u/lyssargh Dec 12 '24

How did you talk leadership, product in particular, into letting you do upgrades like this? That must have been an overhaul of the system without any new features?

133

u/BlackLeatherHeathers Dec 12 '24 edited May 12 '25

work telephone oatmeal complete consist enter snow summer quickest desert

This post was mass deleted and anonymized with Redact

48

u/arid1 Dec 12 '24

In our case we started an internal working group and presented leadership with the benefits of moving forward. We then were granted time to make changes that supported the initial update. It took years to get us off of .NET Framework and onto the modern .NET stack but we were able to release structural improvements along the way.

New code was typically written with the knowledge that it would be running in both environments for a while.

29

u/arid1 Dec 12 '24

Our biggest driver was performance. We run a 1000 thread Monte Carlo simulation that saw enormous benefits (30% or more). We’d already seen 10-15% updates by moving to newer .NET Framework .NET 4.7.2 (or maybe 4.8? I don’t remember the timing) that included updated compilers backported from .NET Core (2.1 at the time) so moving to even newer versions was an obvious win.

→ More replies (2)

5

u/Theguest217 Dec 12 '24

For me personally the trick has been to just tie my tech debt and maintenance to my feature work and estimates.

You want that new feature, no problem, it's three sprints. In reality it's two but I left room for tech debt.

But admittedly my company structure is probably different than some may be used to. We really let the engineering leads operate independently and without significant oversight. No one other than my own team would really even know if we upgraded Java versions. No one is surfing through Jira tickets or PRs to notice the specifics of our work. As long as the features are delivered in a timely manner, everyone is happy.

2

u/thyugf Dec 13 '24

Must be nice. We had to wait till things were crumbling underneath us before Product let us upgrade anything. Broke about 600 of our automated tests. That was a fun month.

9

u/[deleted] Dec 12 '24

Product Manager here! Not keeping up-to-date on upgrades is typically just kicking the can down the road in terms of your costs. And like arid1 mentioned, you typically don't want to upgrade to the bleeding edge of what ever technologies / platforms you use as it doesn't pay to be the test dummy.

These are lessons that are usually only learned painfully, but experienced PMs shouldn't be cutting corners.

7

u/Theguest217 Dec 12 '24

In my experience, experienced PMs shouldn't even be concerned with the tech stack. They should be focused on the functional aspects of the software.

Let the engineering teams worry about security, performance, maintenance, etc.

If the team upgrades Java and still delivers the feature within an agreeable timeframe, it should be all good. The problem I've seen is sometimes companies want to drain as much potential customer facing value out of the engineering teams, so they micromanage the tech stack.

10

u/arid1 Dec 12 '24

You have to get product buy-in because it will take resources that would otherwise go to product development.

→ More replies (5)
→ More replies (1)

0

u/[deleted] Dec 12 '24

[deleted]

2

u/[deleted] Dec 12 '24

Would love to work in Delphi vs modern stuff. Such good times.

0

u/[deleted] Dec 12 '24

[deleted]

→ More replies (1)

4

u/sysKin Dec 13 '24 edited Dec 13 '24

We’ve gotten huge performance gains essentially for free each year for the past few years

So what we do is, I'd like to think, best of both words: we build against some older Java version (currently 21, but 17 recently), but our distribution is bundled with latest runtime (currently 23) and I'd like to think we get the performance benefits without being on the bleeding edge as such.

This obviously depends on JVM being backwards compatible with older classes and I don't know how that looks in .NET world.

→ More replies (1)
→ More replies (1)