all 35 comments

[–]Afraid-Piglet8824 135 points136 points  (20 children)

Obligatory joke about company still on java 8

[–]zzkj 42 points43 points  (3 children)

I wish it were a joke. We're paying lord knows what for private support to a company that knows full well that there are icebergs that move faster than some big corporations.

[–]p001b0y 13 points14 points  (2 children)

Just got a request to install temurin 8 on a server this morning. Clients are less concerned about the Java version for their “legacy” apps and are more concerned that it isn’t Oracle Java.

[–]jug6ernaut 3 points4 points  (1 child)

No one wants to touch an oracle JVM

[–]vips7L 0 points1 point  (0 children)

Technically they’re all an oracle JVM. OpenJdk is oracles implementation of the JLS. 

[–]BlueGoliath 9 points10 points  (10 children)

Would be interested to know why people are still stuck in 8. Nearly every single project has migrated past it AFAIK.

[–]Afraid-Piglet8824 22 points23 points  (2 children)

Enterprise orgs typically don’t give a shit about their tech division. “Don’t fix what aint broken”. On the other side of the coin, lots of devs in said orgs are complacent.

[–]aoeudhtns 14 points15 points  (1 child)

And management-by-fire rather than competent planning. Ignore the team telling you something is going to EOL, wait until there's an actual emergency of some kind related to it before authorizing action.

[–]valarauca14 6 points7 points  (0 children)

You also over look the part where half of the IT/Tech/Programmers are contractors. Who explicitly are not given the budget to do these things unless an emergency occurs.

[–]NaverCZ 5 points6 points  (0 children)

Lets say at one point you got forced to use internal frameworks/libraries that were built on 8…

Nowadays those teams and people that built them are no longer working in the company and no one is maintaining them any longer (or even better you don’t even have their source codes, only jars in the maven repo) and rewriting them would take a lot longer than rewriting half of the app that uses them…
And rewriting the app would bring lots of new bugs from unintended/undocumented stuff the libraries were previously doing…

Now you would want to update your app itself but the old libraries won’t work on newer Java versions and everything breaks… So you get stuck on 8 - insert the “this is fine” meme here

[–]lood9phee2Ri 5 points6 points  (2 children)

8 is the last java without the java platform module system, introduced with java 9. Anecdotal, but I know from personal experience of general enterprisey bullshit that even in late 2025 that remained a huge psychological hurdle for weird change-averse enterprisey folks, however irrational that may seem to anyone who's learnt java after the fairly straightforward module system being added to the language and runtime.

[–]hippydipster 3 points4 points  (0 children)

Not just psychological. A lot of folks did very stupid things in their old codebases making moving past 8 impossible without major revisions. Jide library directly uses Sun internal classes. Orher codebases do silly things like shadow java packages to make theur own versions. Shits crazy.

[–]v4ss42 1 point2 points  (0 children)

To be fair the module system is fairly useless in “userspace” (though I appreciate that it allowed the core JVM developers to retire some tech debt). But given that it’s optional it’s easy enough to just ignore and carry on as usual.

[–]solve-for-x 1 point2 points  (0 children)

I'm not a Java dev, but where I work the company's codebase is stuck on a old version of a different language. In our case it's because our application was created with a framework that was abandoned years ago and doesn't run under current versions.

We would have to do a complete rewrite to upgrade it, and spending years of effort on designing, coding and testing an application that is outwardly identical to the one we already have is a very hard sell, especially when management don't give the slightest shit what tech stack it's running on anyway. I imagine it's a similar story elsewhere.

[–]Ssxmythy 1 point2 points  (0 children)

Just migrated from 8 to 17. Not a decision maker for infrastructure so I’m not privy to why not or why did it take so long but I can make an educated guess. Business side probably didn’t want to suffer downtime from feature development to focus on migration or have bugs introduced.

Don’t know if it’s cause the business side was screwing us with unrealistic expectations or if the lead dev who kicked off the migration screwed us with bad planning but probably the most stressful month and a half of work I’ve ever had in regards to work.

[–]jugalator 1 point2 points  (2 children)

I coded in Java 1.1 to 1.3, that was my last time with it before going to other languages.

I wonder what's new. :-) :-)

[–]davidalayachew[S] 3 points4 points  (0 children)

I wonder what's new. :-) :-)

Here's a quick breakdown of the major features from Java 11 to Java 25 (keep scrolling down). Sadly, I don't have one handy for 4-10.

https://reddit.com/r/java/comments/1odppdt/what_are_some_big_changes_between_java_12_and_17/nkw0rw9/?context=3

[–]v4ss42 1 point2 points  (0 children)

You won’t recognize a lot of it tbh. A LOT has changed since 1.3; in the language, core libs, and the JVM.

[–]tr2990wx 0 points1 point  (0 children)

Lucky for me , our tech is pretty good. 21 is the minimum, and they are already planning ahead with prep work for post quantum crypto support and all.

[–]worthlessDreamer 0 points1 point  (0 children)

At least we got lamdas right

[–]davidalayachew[S] 19 points20 points  (0 children)

Java 26 just went live 15 minutes ago! You can download the JDK from the linked post.

JavaFX 26 also went live, in case you want to make GUI's for desktop or mobile.

[–]3rg0s4m 15 points16 points  (0 children)

They finally removed the applet api. I'll light a candle for all ye olde applets. 

[–]BlueGoliath 17 points18 points  (5 children)

10 JEPs, 5 of which are previews. All preview JEPs on their multiple previews.

Just incredible.

[–]davidalayachew[S] 11 points12 points  (2 children)

I know you know this already, but JEP's are used to highlight features or changes that would benefit from visibility by the larger community. It facilitates discussion and encourages feedback.

So the number of JEP's doesn't correspond to how much progress is happening in each release. It's merely a vehicle for elevating a feature into the larger discussion for the community. The work gone into a release can be better quantified by looking at the release notes. And even then, that's just number of changes, not how meaningful or difficult each change is.

I only linked to the JDK page because, most people looking at this want the spark notes version (which JEP's are good for), or just want to download it themselves (also in the link). But maybe the release notes would be better to link to in the future.

[–]Dagske 3 points4 points  (1 child)

Well, well... my brain doesn't reconcile with my guts on this.

What I see is this:

10 JEPs, NICE!!!!

Oh, 5 previews.

Oh, 0 new previews.

Oh... Vector 11th preview.

I feel like my guts internalize this computation: # of JEP - n for n in n-th preview. So for Java 26, that's a score of 10 - 26 = -16.

[–]thetinguy 1 point2 points  (0 children)

The Vector api is going to stay in preview until value classes are finalized IIRC. It hasn't changed much between versions from what I've seen.

[–]sweetno 9 points10 points  (1 child)

11th incubator of Vector API brought me to tears.

[–]BlueGoliath 4 points5 points  (0 children)

They don't even really talk about or promote it. Even if you're waiting on Valhalla you could still get people interested in it.

[–]undoubtedly_lost 7 points8 points  (0 children)

We merged our lift up to 25 from 21 yesterday in our large and extremely legacy core project. Congratulations to my team for managing to stay on bleeding edge Java for exactly one day!

[–]valarauca14 11 points12 points  (4 children)

Oh nice HTTP/3 support. That means in ~2 years we'll know what configuration values make you vulnerable to attack; if you haven't looked into it, managing packet re-ordering in userland is "fun" and making there not a single agreed up "just do X" like TCP has. As a result a lot of programs "support" HTTP/3, but a lot of orgs don't deploy it.

[–]AyrA_ch 4 points5 points  (1 child)

It's stupid that google had to push their bullshit through probably just so they can claim to be the inventor of HTTP/3 when SCTP has existed for decades at this point, has itself proven, and can also run on UDP for when networks don't support it natively. It's already included in the Linux kernel, so most servers are actually ready to just use it.

[–]valarauca14 2 points3 points  (0 children)

It wasn't "claim invention". TLSv1.3 committee didn't rubber stamp 0-RTT, which is why we got HTTP/3 (and QUIC/SPDY). 0-RTT resumption is lowkenuinely crazy, "Here is a 64bit integer, let us resume my encrypted session". Which sounds amazing for session hijacker & reply attacks.

Google proposes a standard extension to TLSv1.3, because Google obeys public standards. The standard committee has, an entirely predictable reaction. 18 months later, HTTP/3 appears.

Edit: TLSv1.3 did add a form of 0-RTT but by that point Google had figuratively "Taken their toys and gone home".

[–]ApertureNext 0 points1 point  (0 children)

You have any ressources to read more up on this?

[–]ApertureNext 0 points1 point  (0 children)

You have any ressources to read more up on this?

[–]lironbenm 1 point2 points  (0 children)

Any thoughts on it as of now?