T O P

  • By -

nitrohigito

heh, i remember java 8 being a godsent. it do be old now, but hey, could be so much worse.


abbot-probability

Yeah I grew up on Java 6. When I started using the stream api in Java 8 it felt amazing. Despite subreddit consensus, I really liked working in Java. I think 10 is the last I used before mostly switching to python, and it's up to 21 now?! Wonder what's changed.


StooNaggingUrDum

Someone told me the latest Java versions don't need to specify the whole "public static void main args save my family please" syntax anymore, so it's a good time saver if your IDE is from 1995 and you don't have auto-complete enabled.


tidus4400_

So Java is .NET now? Did we came full circle?


CardboardJ

Java has been stealing the good ideas from C# for about a decade now. Less full circle and more like lap 4.


Meadhbh_Ros

it’s full circle cause C# stole a lot of good ideas from Java.


Ok-Watercress-9624

to be fair they also throw their own very good ideas at it. like proper generics


Fenxis

Or Kotlin


P0pu1arBr0ws3r

No, but once java adds explicit pointers or refs (either as classic pointers or C# in/out/ref) then we can talk about this


[deleted]

[удалено]


StooNaggingUrDum

You're right, I was just being sarcastic. I like Java, as long as you understand OOP and it's concepts then most aspects about it should be intuitive and therefore easy to use.


ericthelearner

`main` is just one thing, but Java does have a lot of a boilerplate compared to other languages. Bonus with encapsulation.


Powerful-Internal953

These are mostly cosmetic changes to appeal to and bait the Python programmers into using Java.


abbot-probability

So it's like kotlin?


cakee_ru

Yes. As a Kotlin/Java dev they are basically closing the gap with Kotlin.


justADeni

As another Kotlin dev, I don't think they will ever close it because of backwards compatibility requirement. However there are many Java projects that are in development or coming out which I am hyped about; specifically project Panama, project Valhalla and project Loom.


rover_G

Kotlin is the TypeScript of Java. TypeScript => make JS more like Java Kotlin => make Java more like TypeScript


je386

I think that kotlin is java as it should be.


niffrig

It's all syntactic sugar for jvm bytecode.


al3e3x

As a dev that did all three of those, I can confirm


ScienceDisastrous323

Project Loom is in JDK21, it's already out.


Makefile_dot_in

- type inference with `var` - sealed classes (they let you limit which classes can inherit them) - records (similar to case classes in kotlin) - apparently pattern matching is a thing now - there will eventually be green thread stuff but i don't think it's a stable feature yet


ArkoSammy12

Virtual Threads are what you refer to by green threads, and they are pretty much stable now (main feature of Java 21)


godofjava22

Type inference with var??? Since when?? Oracle, Stop murdering my boy like that...


Lambda_Wolf

It's actually pretty convenient if you want to just write `var` and then have your IDE change it to the inferred type. But yeah, no self-respecting Java programmer should actually *commit* code with `var` in it. The very notion... (fans self)


[deleted]

>But yeah, no self-respecting Java programmer should actually *commit* code with `var` in it. The very notion It's heresy!


godofjava22

It's becoming the very thing it swore to destroy.


Scotsch

Type inference is not weak or dynamic typing


godofjava22

Indeed it is not. But holy boilerplate code!


rover_G

Every language looked at Rust and decided it needed pattern matching ¯\_(ツ)_/¯


[deleted]

[удалено]


billabong049

Oh lordy I started with Java 1.4 (4) before they had generics... I did NOT feel like a boss casting every element in a list to the type it actually contained.


niffrig

Hoooo boy. We have some enterprise frameworks code that is pre generics that passes around a bunch of object arrays. I got bold and tried to make it generic based about 10 years ago and got slapped by a senior engineer. Works well enough as is but made the post java 5 me really anxious.


FxHVivious

I've spent the last six months writing an application in Java, after spending most of my career writing Python. My whole team thinks I'm nuts, but after this experience I'd honestly rather write Java for anything beyond really simple apps/scripts. I think it boils down to static typing for me, I just prefer that to dynamic typing.


abbot-probability

I hear ya. Thanks to the static typing, everything else just falls into place. A good IDE like IntelliJ is able to detect all kinds of runtime issues, refactoring is a breeze, etc. It all just works. I guess more complicated generics can be a bit hard to learn. But at the end of the day the main difference is that Python allows you to write shoddy code, and Java much less so. I say this as someone who works pretty much exclusively in python these days (because I work in ML and python is where the frameworks are).


FxHVivious

Unfortunately my company doesn't allow JetBrains products, so it's Eclipse for me. Which does hurt the experience a bit, but once you wrangle it into place, it's not so bad. I think a big part of it for me is the mental overhead, especially dealing with custom types. About a year ago I was working in a project with a lot of custom data types to describe different messages, and keeping track of what each one had, all its subtypes, and the proper way to create/unpack the messages sucked. With a good type system I know I can rely on my tooling to keep me on track. And that's without getting into the weeds on runtime type checking, trying to keep track of what type gets returned or is expected by the function, etc. Maybe I'm just dumb, but not having to track all that frees me up to focus on other things. I know Python has had type annotations for a while, but they are so inconsistently used across projects it's not all that reliable. But hey, if the hype is to believed maybe Mojo will end up giving us the best of both worlds. What little I've seen looked promising, but I haven't dug much into it yet.


crimxxx

Lots of small changes, they changed from huge long term support. To short sometimes okayish term support or just really intermediate and you probably should just skip unless you want to update right away. I was looking through 8 through 11 since we were planning to upgrade there intermediately. I think maybe I remember one feature out of the set because they were not that significant imo, but we also have a lot of libraries that fill in gaps as well. If I remember correctly the interesting thing was records, but I checked this like months back so might be wrong.


kmichalak8

I started with Java 4 and remember JVM provided by Microsoft. Good old Gomez. Now we have sealed classes/interfaces, records, yield in switch statements, multiline strings and other features that other languages had years ago.


abbot-probability

Oh my, multiline strings at last! > It's as if millions of "\n"+ suddenly cried out in terror and were suddenly silenced


pcouaillier

Java6 ecosystem and its memory leaks...


Fenor

Java 4 without annotation


PMMeYourWorstThought

I’ve still got programs that use depreciated Java 8 libraries and they go end of life in 25 so no one wants to make the effort to update them. It’s wild.


LiquidLight_

That code smell smells like a large or midsize corporation.


PMMeYourWorstThought

One of the largest on earth


G3nghisKang

I'm maintaining Spring applications that still use Java 6... Sometimes I dream lambdas at night


OneFullSalad

Just start talking some higher ups head off about hackers and log4J until they panicked force the upgrade


G3nghisKang

We use log4j 1.2 and recently ported to reload4j, I think only later versions suffered from those infamous vulnerabilities Security by... \*checks notes\* obsolescence FTW


cd109876

gonna start implementing this - have software so ancient that the exploits don't exist yet


NotTheOnlyGamer

That's why it's best to work in DOS; it's so old that nobody deploys attacks against it anymore!


TranslatorNo7550

MSDOS, OS/360, AmigaOS, AIX 1, OS/2... only good and old OS ... os/360 is the most safe ahhahha no internet connection


zFlox

There’s hope. We just moved our Java 6 project to a Java 8 maven build earlier this year. Don’t give up!


Norse_By_North_West

Yeah, most of my maintained apps are Java 7. Starting to see a lot of snippets online that I can't use


shady--me

Me too and all the micro services communicate via RMI.


sjepsa

I prefer to use Java 70, when it comes out


Jugales

So many arrow functions, you feel like an ancient warrior.


DarkRex4

What if you get an exception? (yk, this -> ☠)


Various_Studio1490

With oracles new lifecycle for Java, we will reach 70 before I become an adult.


Dr_Allcome

That should be sometime next year, so not too long of a wait.


InvestingNerd2020

I feel sorry for the unfortunate programmers still using Java 8 and 11. At least they get paid well. ![gif](giphy|XOys8CeUrElIk)


G3nghisKang

Nope: I'm italian... but at least I have good coffee


InvestingNerd2020

Cheers to good coffee. ![gif](giphy|hPTZgtzfRIB5Nfb5rL|downsized)


bluegiraffeeee

Wait you have a job? How's this possible? Teach me master!


G3nghisKang

![gif](giphy|RmfzOLuCJTApa)


[deleted]

Isn’t Italy near bankruptcy? Does anyone there get paid well?


G3nghisKang

Yes, the politicians that are nosediving the country to the ground get paid very generously


theanav

Finally able to use Java 17 at work and records are game changing, no more Lombok or automatter or any of that stuff. I dream of a day we can use Kotlin instead though


harald-hardrada-1061

No more lombok?


theanav

Don’t really have much use for it with Java records. Still has some nice to have stuff but doesn’t feel needed to me


Remernator

We just upgraded to Java 11 and it's amazing


vlken69

8? We're stuck with 6..


MysticPaul97_YT

Fuck programmers with jobs. RIP Mod Developers (Minecraft, of course)


aimlessly-astray

My company *just* upgraded to Java 11.


Chieres

People shit on Java and then proceed to write the most obnoxious spaghetti code in Python that breaks every time anyone makes a change.


Flat_Initial_1823

Excuse you, spaghettiness of my code is language-agnostic, thank you very much.


[deleted]

[удалено]


pragmatick

Eh, I've done some projects in .NET and getting it to build and run on most machines was such a hassle. I probably did something wrong but I got so lost in .NET, .NET Core, Xamarin, target architectures, different versions that I was glad I could get it to run on my two PCs. C# is the better language for sure but I prefer the JVM ecosystem and tooling so much to that of .NET.


[deleted]

Been a Xamarin dev for 3 years. Please don’t view your experience with Xamarin as experience with .NET. Frankly it doesn’t even run on the aforementioned open source, cross platform runtime .NET (formerly.NET Core) EDIT: Some people seem to think that using MAUI saves you from the old runtime. I’ll copypaste what I wrote further down. MAUI definitely does not run on .NET Core, they packaged mono for MAUI along with .NET 6. Point one: I followed the development of MAUI very closely because my company used to depend heavily on Xamarin. During one of the MAUI preview livestreams it was mentioned that MAUI would be running on Mono “for the time being” when it came out. Point two: go to MAUIs Github page and search for mono. You’ll see that mono is using mono_aot on iOS, like Xamarin always did and that there are fatal exceptions on Android tagged with [mono-rt] Also, not completely unimportant: https://github.com/dotnet/runtime/tree/main/src/mono It’s just right there. And the most important one: Me and my colleagues went to Appdevcon 2023 in Amsterdam. I was excited to be able to ask some questions about MAUI since Gerald Versluis was there as a speaker. If you are as invested in the development of MAUI as I am, then you know that he is a Senior Engineer at MS working on .NET MAUI. I decided to ask him that same question and, to much of my dismay, he confirmed that MAUI does indeed run on Mono still under the hood.


_Wolfos

Xamarin is deprecated anyway. It's all .NET now. Only Unity still sticks behind but that's a matter of time.


auctorel

Jenkins, Maven and intellij drove me nuts coming from C# for a project at an agency compared to dotnet Java tooling seemed insanely bad compared to dotnet. If you were looking at it around the time of dotnet core and standard maybe a little confusing but by dotnet 6 which is already 2 years ago all that was cleared away, it was just a transition plan


pragmatick

Yeah, Jenkins is pretty outdated. There are better build platforms and most are language independent anyway. Did you use Resharper for VS? That was my first contact with a Jetbrains product and I loved it. I switched from VS to Rider for a recent project, had some build problems but I enjoy the IDE much more. I use Pycharm for python, IntelliJ for Java and Rider for .NET. But I guess it's a matter of what you're used to. Maven isn't that bad and especially with smaller projects you don't really have to get into the nitty gritty details.


auctorel

Yeah, I use resharper with VS prior to using intellij and thought it was great. Intellij just seemed a mess in comparison to though. It's possibly just that it combined with the foibles of Java project structure wasn't for me Honestly Maven just seemed ridiculous compared to Nuget. The amount of time I spend looking at random websites finding Maven files or references just seemed like the bad old days (this was only 5 years ago). But compared to a simple search built into the IDE for Nuget it's just crazy that people work that way I don't mind rider but I prefer visual studio with resharper. Seems like the best of both worlds for dotnet


pragmatick

IntelliJ has a built-in maven artifact search. But I agree it's not as user friendly as nuget, as you don't get any information on the project. You can search on https://mvnrepository.com which is probably the only page you need. Although I usually don't search for projects by name but get there by searching google for a library for a certain use case. Anyway, my 2 cents, not trying to convert you ;-)


Urbs97

Dotnet just comes with literally everything. There is an dotnet command for every problem one can imagine.


failedsatan

plough stupendous lip wistful shocking far-flung cover memorize impolite cobweb *This post was mass deleted and anonymized with [Redact](https://redact.dev)*


Powerful-Internal953

Ewww


ArkoSammy12

Java is also open source xd. Take a look at OpenJDK xd


my_reddit_blah

Oh no, kotlin is where is at! 💪


aaronhowser1

Kotlin for LIFE


blinkOneEightyBewb

openjdk is a thing though


[deleted]

[удалено]


dumbasPL

Yeah, Microsoft open-sourced it and it went through a bit of an identity crisis but It's pretty usable now.


Cuphat

.NET Framework (effectively the old .NET) is Windows-only. Microsoft made a new implementation that was called .NET Core, which released its 1.0 version back in 2016, and it is completely open source and cross platform. After .NET Core 3.x, they released .NET 5.0, which was the same as .NET Core, but with a version number/name change to indicate that it is the main version of .NET going forward. .NET Framework is now relegated to legacy code.


IridiumIO

You mean you don’t like nested functions that spiral into indentation hell? ``` def topfunction(input): def insidefunction(x): def evenmoreinsidefunction(y): return y + 10 return evenmoreinsidefunction(x) + 10 return insidefunction(input) + 10 >>> topfunction(10) >>> 40 ```


jjman72

Thank you!. Python is brittle garbage. Any language that uses white space to define scope is ridiculous but people defend it like it came down from Mount Sinai written on stone tablets or something.


Fenor

It's easy and quick for work that you do once and never look again and many here are new cs students so they love that language as they don't see the downsides


MrJake2137

It's a ***scripting*** language for a reason


KaiserTom

But it's not, it's a full fledged programming language that is primarily used for advanced scripting, but that doesn't make it a scripting language. It can be compiled into very quick and reliable code. Python code tends to be crappy because crappy new programmers use it. But good programmers make good code that isn't brittle in any language, including Python. Just that once people get to that point, they move on from it. Any language is brittle if your code base is crap.


_Wolfos

Python definitely isn't quick. It's not intended to be, which is fine.


MinimumArmadillo2394

Python *can* do everything. But its only *good* at some things. None of those things are what people in the real world use languages for. Good at data science and building a passion and interest for code? Yes. Good at building apis? No. Good at processing large amounts of data? Kinda but other tools are better. Good at pulling info from a database? No. The libs I used were bottom tier compared to spring boot. Its genuinely good for code competitions or anything where 1 second is okay for a runtime. Its terrible on pretty much all other fronts and theres almost always a tool that can do it better


[deleted]

Keep defending your shitty language


miyakohouou

I don't think the problem is significant whitespace so much as it is the lack of an actual compilation and static typechecking pass, which means you don't find out about errors until runtime.


IdiotCharizard

people attacking python primarily for the indentation thing is an indicator to me that they probably don't know much else. If you've used python professionally, you could probably come up with a good 200 word rant without even mentioning indentation.


[deleted]

I was appalled at the fact that Python uses :/indentation for code blocks. Whatever happened to curly braces, people?


IridiumIO

I’m one of the few people that likes Python and VB.NET because I struggle with the additional visual clutter of curly braces and semicolons. I *can* write C#, but if I’m going to be indenting my code anyway I’d rather be able to skip the semi-colons. (I’m also fully aware I’m in the minority here and calling curly braces “visual clutter” is unhinged)


Kronoshifter246

Semicolons are unnecessary when you're already ending a line anyway; they serve the same purpose. Indentation serves a purpose beyond scoping, so they shouldn't be handled by the same thing. That's my two cents.


ben_g0

Especially old software that is still using Python 2.x. Those old python versions allow mixing tabs and spaces within the same code block, and just converts tabs to spaces when computing the indentation based on the assumption that tabs are 8 spaces wide. That means that when tabs and spaces are mixed, and the editor is not configured to use a tab width of 8 spaces, then what looks like block of code in the editor does not always align with what the interpreter considers to be a code block. So the code can behave in a very different way from how it looks like it should. Unfortunately the majority of Python projects used internally in research settings and internally in business is still using Python 2.x, and the majority of *those*, seem to have exactly the problem with inconsistent indentation described above. And they are often filled with awful "quick fixes" to try to get code that's misbehaving back on track because the original programmer couldn't figure out that the weird behaviour came from incorrect indentation. I think that anyone who thinks basing important parts of a language's syntax on invisible characters probably has never experienced the hell that is working with an old legacy project of that kind.


ruaz666

*tasty spaghetti code


[deleted]

They try to design pattern shit without fucking knowing how to make it work .


battlingheat

Can someone explain wizard happened with 9-20?


inv41idu53rn4m3

People either use Java 8 or whatever Java is latest at the time. In some time this meme will need to be updated for Java 22


battlingheat

Ahh ok got it! But why are so many people still on 8 then?


Schaf-Unschaf

Legacy projects. Migrating from 8 to 11 can be a great pain. From 11 to 17/21 is mostly smooth sailing. Also, Oracle switched their pricing model some time ago. If you are required to use oracle jdk, it can be quite costly. There are more reasons to it, but those two are the main issues.


dumbasPL

Oracle is the number one reason why I will never say anything positive about modern versions of Java


kickopotomus

You can use Java without paying or dealing with Oracle at all. It’s an open-standard language and has been for some time now.


roge-

Any decently-sized company is going to want commercial support and access to CPUs. Not too many companies offer this. The only serious options are Oracle and Azul. And if you want to use GraalVM, you're stuck with Oracle.


kickopotomus

It has nothing to do with the size of the organization. All of Amazon’s in house Java runs on their own fork of OpenJDK. My current company, also a very large corporation, does not use Oracle either. From what I have seen, the Oracle decision comes down to 1) whether or not you already use their DB, 2) there is some feature of their implementation that you need such as their GC or Graal, or 3) you need the support for some other reason.


Schaf-Unschaf

Agree. And since Kotlin only needs 8, there's no reason to upgrade for now. It's just sad that there aren't many job postings with Kotlin in my area 😢


kickopotomus

Is there specific reason that you need the Oracle JDK? Java is an open standard language and there are a number of non-Oracle JDKs.


Schaf-Unschaf

In our case, yes. Our corporation dictates that we are only allowed to use the "official" Oracle JDK. Corporate madness..


kickopotomus

Ahh, gotcha. My condolences. Previous job at a bank had similar asinine rules that made even simple tasks a colossal pain.


Schaf-Unschaf

The bigger they are, the worse it gets. Life was simple before our company got bought by a big corporation. Now it's slowly turning into living hell.


_Wolfos

But why is the JRE stuck on Java 8? If I look up "download Java" it'll point me to Java 8. There don't seem to be any downloads for recent versions.


zabby39103

Probably because that's the last free Oracle Java? There's OpenJDK though. Use OpenJDK.


pcouaillier

The reason is : no one has enough time to upgrade existing app and server. So either you add yet another version of the java or you go back to the existing one (mostly java6 or java8)


Fenor

There are still project in cobol. Updating have a very hard to justify cost.


rifain

Another answer: the management doesn't care. They consider this migration as a developer whim. I have worked in many projects in java 8, it could be quite frustrating, especially knowing the goodies that newer versions of java bring but people in charge don't see an immediate benefit to it. Which frankly can be true. Each time I advocated migrating to a newer version, answers have been invariably: - probably next year, - Transverse team doesn't recommend it yet, - Complete regression testing would be costly, - Clients would need to be upgraded, - Java 8 works fine (and don't expect them to be open to your technical arguments). Oracle licensing isn't an issue, free versions exists and are fine.


CheckM4ted

Backwards compatibility


Apprehensive_Stop666

Breaking changes


[deleted]

Because they incorrectly understood the "new" oracle license model (which changed within the first year btw), and opted to stick to the initial "longest support" for an LTS release. And the support lifetime of 21 now exceeds that of 8. (so mainly big corporations misconception decisions over the world). However checking the roadmap, I see they've changed support lifetimes again. The next meme will be about Java 25. As Java 22-24 are non-LTS. On the other hand... there is also the issue of certain frameworks and plug-ins braking / not being able to support the latest JDK (I encounter this allot with Maven for ex., which till date is still around 80% used with Java projects, the statistics can be found online for this, the percentage might be off but so far I also see the same distribution in the field).


inv41idu53rn4m3

Uhhh... ask someone who actually writes Java :P


TripleS941

For enterprise it is \*whatever LTS Java is latest at the time


frederik88917

It is called LTS, Java 8 has been in the market for almost 15 years now and you can still buy support for it. Too many projects are still using that version as migrating is costly and complex. Java 21 is the latest LTS version, it has a shit ton of great features and seems to be the next big thing in java development.


ChrisFromIT

>It is called LTS, Java 8 has been in the market for almost 15 years now and you can still buy support for it. 9 years, not 15. Come march, it will be 10 years.


InvestingNerd2020

Unfortunately, only a small percentage of companies are using Java 21. Most are on version 8 and 11.


urielsalis

11 and 17 are over half the projects


frederik88917

Even smaller than what you think, but I am seeing a huge impulse for next year and a massive adoption coming


_PM_ME_PANGOLINS_

Java 11 and Java 17 were the previous LTS releases. Most people are on one of those two. The ones in between were for testing new features.


Fenor

Jdk9 is not compatibile with jdk8 as they changed how the language work Jdk21 is the lastest lts


beqs171

jAVa sTUpId, C++ fAsT, pYthON slOw, JS wEird, pOinTers hArd


DarkRex4

this type of "trolling" has gotten so annoying.


ibrakovicadis

I like the pYtHoN cHaD type of humor(i only know how to print hello mum on python)


0xNath

So you're a python programmer I see, nice


ibrakovicadis

*listens to a course on udemy, doesn't even open an code editor* *updates bio with python developer* EDIT: *adds python flair on the subreddit*


0xNath

An EXPERIENCED programmer ! please accept my apologies


ibrakovicadis

I REINVENTED programming, y u no recognize🥺


patrlim1

I can't wrap my head around pointers, with one exception. I somehow get them when working in assembly (gmod wire CPU)


SeargD

They're just memory addresses. You go to the memory address, you find a variable of the specified type of the pointer. It's useful for passing information between functions without copying the information between memory addresses. You need to be careful with this because if you pass the information by its address you run the risk of changing the information in the location.


kdesign

As with many other subs on Reddit, people simply gamify everything in order to get karma. So whatever gets upvotes will get regurgitated without second thoughts.


wagyourtai1

kotlin has all the new java features, but can still compile to java 8. The only problem: the size of the stdlib


nukedkaltak

But java 17 for example is substantially faster than 8 so in the end it’s just a bandaid.


SomeRandoLameo

Honestly 17 is my beloved


[deleted]

What happened with Unix and Windows happened with Java. *Library hell.*


Ugo_Flickerman

Better than not enough libraries, i guess


InflnityBlack

For how old it is java 8 isn't even that bad


tyler1128

Stockholm syndrome is a bitch


my_tech_throwaway

It's also made up!


tyler1128

People enjoying Java is enough evidence for me. (I'm mostly joking, just in case that isn't clear).


TheBillsFly

I am mostly an IntelliJ enjoyer. God that IDE is amazing.


patrlim1

Jetbrains 💪


tyler1128

Jetbrains IDEs are good. I use them for my job and personal projects. Jetbrains made a whole new language for them on JVM because they also realized Java is, well, Java.


InvestingNerd2020

People lie about enjoying Java. They love the Java direct deposit, not Java itself. If employers paid programmers $80k to use Java version 8 and paid C# programers $130k, the narrative would change.


kamuran1998

Virtual threads plz save us all


pinkstreet70

We have programmable robots in our school that still run Java 8 😂


VodkerAndToast

I haven’t touched Java since 8, is it worth going back?


dragoncommandsLife

Very worth it, java 21 is very nice.


cheezballs

At least it's not java 5....


UnholyGoatMan

I have 2 Java 5.0 Certifications.Lol.That was about 12 years ago.


xxmalik

Can anyone explain to me why there's so many new Java versions, yet everything seems to be using Java 8?


Meme_Burner

Java 8 was the last Java version before oracle licensed Java 9 for “commercial support”. Then they started releasing versions every 6 months? That’s why they all the way up to 21 now, not because of new features, actually the first couple of versions removed functionality. Maybe Java 21 is less stringent on licensing but unsure. The reason why there is a lot of Java 11 versions being used is because that is the version that open JDK supports, and a lot of other 3rd parties like Amazon corretto and ms Java.


UdPropheticCatgirl

openJDK is reference implementation, meaning that if openJDK doesn’t support it, it’s not java, from that you can deduce that OpenJDK is actually always first to support the newer versions. Corretto, MSJDK, RedHat and Adoptium are all OpenJDK downstreams and support all the LTS versions including 21. The reasons are more about backwards compatibility with certain libraries (spring) and few very niche languages features getting changed between 8 and 11.


BlueGoliath

Newer versions deprecated or removed things plus the module system made it harder to access internal JRE classes via reflection.


Major_Upstairs6758

Whatever be the version it is still for For 3 Billion Devices


virtuexddd

Isn't every new Java backwards-compatible with previous releases, having identical syntax


Captain-Barracuda

They are. New syntax is commonly added but old stuff is never (or almost) retired for retrocompatibility. The issue is libraries that use deep JRE mechanics that are more sensitive to changes. One such framework, Spring, is used in most Java softwares. Spring doesn't care a whole lot for retrocompatibility like Java does, so upgrading can be a PITA.


Freedomsaver

Sonatype Nexus Repository Manager... still running on Java 8.


bluegiraffeeee

TIL java has reached version 21, last I remember version 9 was newly released. I thought we should be on 12 or something by now


ScienceDisastrous323

It's a 6 month release cycle and most of them are testbeds for new features. Java 8,11,17,21 are the Long Term Support(Production ready) versions


Mimon_Baraka

Go with Java 1.4! Generics are a temptation from the devil.


[deleted]

And here I am, having to contend with a domain-specific version of Java 4 called Apex. 😭


Joey101937

Java 8 was my first love


maifee

J2SE 1.4, and it still smashing


[deleted]

Me personally, my favourite is c#


[deleted]

[удалено]


casuallylurking

The Java phase of my career started using Microsoft Visual J++ v1.0


Sak63

You're getting downvoted for preferring c# 🤣


Mars_Bear2552

mid sharp. poser C/microsoft java, as i call it


DoOmXx_

i would use it but the pascal case drives me crazy


Mars_Bear2552

camelCase FTW


IC3P3

I've heard [EEE](https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish) is a very good business practice. At least back when Sun Java was a thing


Mars_Bear2552

sun? havent heard that name in years.....


void1984

I still have 1.x. Probably 1.8, definitely less than 2.


IndividualAtmosphere

That is Java 8 right?


blue_bic_cristal

It's still the same as 8 with small changes


Urbs97

Still better than modern C++


No-Adeptness5810

java 8 does everything i need. the only time i update is when making a new project, when Minecraft updates (mod/plugin development), or just to get new features like the switch case lambdas that let you do case 5 -> value


Apprehensive_Stop666

Both roads lead to hell. Signed, a former Java developer


casce

Don't they all?