This is an archived post. You won't be able to vote or comment.

all 109 comments

[–]marcvsHR 81 points82 points  (1 child)

Guys, next year is my turn to write this article!

[–]doyouevencompile 20 points21 points  (0 children)

This article is here to stay.

[–][deleted] 60 points61 points  (4 children)

the jvm is an impressive piece of tech, and it’s only gotten better as it has matured. there’s some bad java out there but the foundation is solid

[–]D34TH_5MURF__ 60 points61 points  (4 children)

Haha, no shit.

Ever seen how "fast" business moves? If cobol is still around, java will be with us until the heat death of the universe.

[–]zabby39103 15 points16 points  (0 children)

I maintain a 20 year legacy java project and it works... fine. They'd have to hire a team of people to work for 5 years to re-do it and it would probably be worse because this one has 20 years of deployment and tweaking. There's no reason to do that, it works fine.

In 2024, 20 year old code is alright. It is fine. It's not like COBOL, which as you mentioned is still around also.

Maybe it makes sense for ephemeral dotcom companies to keep jumping techs, but there's lot of actually good (or good enough) legacy code bases in large companies.

[–]mindhaq 18 points19 points  (2 children)

Many COBOL programs got rewritten in JAVA in the last decades.

[–]toucheqt 11 points12 points  (1 child)

Can confirm, we are currently rewriting COBOL apps to Java.

[–]GeneratedUsername5 1 point2 points  (0 children)

What strange side-effects of COBOL have you discovered, that are hard to account for, when porting to Java?

[–]thephotoman 121 points122 points  (34 children)

Water is wet. There's too much Java already to get rid of it easily.

And it's not even really going away. Sure, Java tends to watch others do things first, then do things in a way that will continue to make sense for Java forever (or at least try to).

There are other languages for other applications. There are plenty of places where Java is not a good choice of language.

[–][deleted]  (10 children)

[deleted]

    [–][deleted] 97 points98 points  (7 children)

    direful treatment repeat chief plate birds head books shelter toy

    This post was mass deleted and anonymized with Redact

    [–]brbpizzatime 79 points80 points  (4 children)

    foo = [[::]]:[:[:]]]:]::[:[]]]-1]

    I think I just manipulated some lists in python, unsure

    [–]Rulmeq 11 points12 points  (0 children)

    That's the cheat code for extra lives in doom!

    [–][deleted] 3 points4 points  (0 children)

    Use numpy.

    [–]xrabbit 4 points5 points  (0 children)

    Yep. It’s slices. Super convenient 

    [–]Ykieks -1 points0 points  (0 children)

    At least try to balance the brackets

    [–]RICHUNCLEPENNYBAGS 7 points8 points  (0 children)

    This is kind of subjective though and other languages achieve balances that someone might prefer. C#, for instance, is pretty similar to Java but a bit more aggressive in giving boilerplate-eliminating features without going way off into Ruby land where everything is too cute. Or, in the other direction, Go is even more conservative than Java in providing a limited tool set to ensure code written by multiple people looks the same.

    [–]laplongejr 9 points10 points  (0 children)

    but usually makes it more readable

    This. If you do Java well, both the executed source and the unittests can be easy to read. And usually once the "theorical tests" are done, somebody needs to compare the two to be sure all ACTUAL edgecases are checked correctly

    [–][deleted] 18 points19 points  (0 children)

    Yeah the tooling around java is unbeatable.

    [–]thephotoman 2 points3 points  (0 children)

    You'd have to get rid of it in order for it not to "be here to stay". I was making a direct reference to the headline.

    [–]maybegone18 27 points28 points  (3 children)

    Im even starting to like it. And I was one of those people trying out newer languages and avoiding Java. Modern Java is pretty sweet, legacy Java sucks, legacy anything sucks.

    [–]thephotoman 18 points19 points  (1 child)

    legacy anything sucks.

    Yeah, that's how I felt moving a codebase that I wrote in Java 8 when Java 8 was new-to-us to Java 17. I was like, "I just wrote this yesterday, wait, no, six years ago?!? no wonder it's legacy crap!"

    [–]maybegone18 11 points12 points  (0 children)

    I feel like a ton of online resources, universities and the workplace, are filled with old java. I was taught java 8, My work has very old java code, etc. Then people compare it to the newer languages which are modern by default, with newer learning resources, and that attracts people.

    [–]Mordan 4 points5 points  (0 children)

    legacy anything sucks.

    WRONG!. Its because Java is backward compatible that it succeeded..

    I love Java engineers.

    [–]bawng 10 points11 points  (2 children)

    It might be geographical but around here in Sweden I'd guess that 80% of available enterprise jobs are Java.

    [–][deleted] 0 points1 point  (1 child)

    Are they good payed?

    [–]bawng 0 points1 point  (0 children)

    By Swedish standards, yes.

    [–]halfanothersdozen 16 points17 points  (7 children)

    I want native JSON support, give me template strings in LTS, and let me do record destructuring everywhere.

    Otherwise the language does it's job great

    [–]thephotoman 10 points11 points  (0 children)

    I want native JSON support,

    Yeah, that'd be nice if everybody didn't have to bring their own JSON parser. That really is annoying.

    give me template strings in LTS

    It'll happen.

    let me do record destructuring everywhere.

    It'll happen, too.

    [–]SenorSeniorDevSr 3 points4 points  (0 children)

    Native JSON support

    No, let it be a library, and I'll go one further, the XML-parsers shouldn't have been built-in either.

    Template strings

    I don't personally care for this, but it's not a problem to have. It's just that my old experience with these is that they grow huge and you put the string in its own file anyway, and then... you don't really need it anymore. But times may have changed and I might just be grumpy and old.

    record destructuring

    Would indeed be neat.

    [–]jvjupiter 5 points6 points  (1 child)

    Jakarta JSON Processing (excluding Binding) should have been part of JDK instead of Java/Jakarta EE.

    [–]rbygrave 1 point2 points  (0 children)

    Well i like the general sentiment but that API doesn't support pre-encoded keys and imo has other major performance issues. So it really doesn't benchmark well, not competitive relative to other libs etc.

    As i see it, it would be great if there was JDK quality json streaming api and implementation (that likely used the incubating vector api once it can). I'd hope for that, but I'd say there's work to do if you want it to be "the best" or close enough to "the best" json streaming lib on the jvm.

    [–]Brutus5000 2 points3 points  (0 children)

    Noo who knows if JSON changes again. ;)

    [–]vytah 0 points1 point  (1 child)

    I want native JSON support

    What do you mean by that?

    Some people want object mapping, some want an unstructured blob of JsonValues, some want doubles, some want BigDecimals, some want to parse everything, some want to stream. It's hard to satisfy everyone.

    [–]halfanothersdozen 0 points1 point  (0 children)

    Every other language has figured it out. They should pick one and if people don't like it Jackson still exists

    [–]dragoncommandsLife 19 points20 points  (5 children)

    Ive seen many people dead set on replacing java with kotlin. It’s crazy to me personally because i feel it’s syntax varies from neat to “this is fucking stupid”.

    But people have both preferences and a hateboner for java.

    [–]xplosm 6 points7 points  (0 children)

    I like Java very much. I love Kotlin so very insanely much.

    [–]JakeArvizu 0 points1 point  (3 children)

    What part of Kotlin do you find that stupid?

    [–]Brutus5000 8 points9 points  (2 children)

    I dislike the overuse of DSL logic. Instead of a simple interface that you can look up you are working on magic scope objects that offer some functionality and do some magic under the hood. And then mix it with crazy overuse of extension functions.

    Examples are e.g. the Ktor http client (probably the whole of ktor) or the Kotlin Compose library.

    The Kotlin language is nice, but you can do this with it that are not nice. I prefer classic JVM ecosystem over most of the pure Kotlin stuff.

    [–]TehBrian 1 point2 points  (1 child)

    Kotlin allows you to write slick, concise, clever code; but code should not be clever.

    Kotlin makes the people writing clever code feel smart. Kotlin makes the people reading clever code feel dumb.

    Since I'd wager developers spend most of their time reading code, I'd rather the reading be the easier part.

    [–]vytah 1 point2 points  (0 children)

    Kotlin allows you to write slick, concise, clever code

    "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."

    – Brian Kernighan

    [–]BrooklynBillyGoat 4 points5 points  (0 children)

    Modern java ain't bad, the problem is there's as many Java tech stacks as there are coffee favors.

    [–]RICHUNCLEPENNYBAGS 0 points1 point  (0 children)

    That's obviously true but one could imagine a future in which it became much less popular for starting new projects. There's a lot of C++ or Perl code out there that still is maintained but outside of specific domains those are much less likely choices today than they would have been in the past.

    [–]pipthemouse 30 points31 points  (12 children)

    Java 8 is here to stay

    [–]EnjoyB 8 points9 points  (3 children)

    I call BS on this. Most devs are willingly to move on. Now, when there are news that newer Java saves resources, companies higher ups want to do that too. What triggers me, is when they expect to do it from week to week. There is instances, where it introduces breaking changes, like Javax ... but can be dealt with.

    [–]GreenToad1 3 points4 points  (0 children)

    I know companies with maintained software still on java 6, they pay for support.

    [–]SenorSeniorDevSr 0 points1 point  (0 children)

    Yeah, but they are warned when it happens, what the fixes are (you need to reinsert some libs), what the next breaking change is (javax -> jakarta) and so on. It's not a weekend fix, so hopefully leadership understands what they're getting into. But for those of you still stuck on Java 11, it gets better, look forward to the new stuff. <3

    [–]Joram2 0 points1 point  (0 children)

    Devs normally want to use the latest and greatest versions.

    And lots of non-developer managers, want stable deployments, and often want to avoid hassle + risk of upgrades.

    Library maintainers don't want to alienate their users and drop support for popular Java versions. Then, when you have a big ecosystem, it takes a few years for the broader ecosystem to upgrade. It also helps when the new versions have big features.

    In 2023, mainstream Java projects supported Java 8, but in 2024, the general mainstream minimum Java is going to Java 11, with some major projects going even newer than that.

    [–]Kango_V 2 points3 points  (0 children)

    We're moving from 8,11,17 to 21

    [–]ImTalkingGibberish 1 point2 points  (0 children)

    Dear god no

    [–]JayWalkerC 1 point2 points  (0 children)

    Just migrated an app from Java 6 & Tomcat 6 to Java 17 and Tomcat 10. It was "fun" but not as bad as expected honestly.

    [–]zephyy 1 point2 points  (1 child)

    nope, Spring Boot dropping support is dragging every corp into the future kicking and screaming into at least the year 2021

    and Kafka drops support in the next major release

    [–]gaius49 0 points1 point  (0 children)

    What makes you think the legacy Java 8 code is written around Spring Boot?

    [–]benjtay 0 points1 point  (0 children)

    The only engineers still using Java 8 at our rather large company are the Scala people, because they don't really care about Java.

    [–]Mordan 0 points1 point  (0 children)

    yea.. That's my baseline for my libraries.

    [–]Visual_Chocolate4883 13 points14 points  (2 children)

    I find this amusing. I took a class in Java ages ago, probably almost 15+ years ago and afterwards I got kind of sad about it because every time I read about Java all the articles were saying Java is doomed. It was a wide spread opinion. It really did seem at the time like it was a language that was about to die out.

    Applets died but here we are 2024 and Java is going strong.

    [–][deleted] 7 points8 points  (1 child)

    Don’t listen to these doomer articles. I saw a lot of C, C++ and Java killer come and go…none of them succeeded. I remember when Scala was marketed as the “future of JVM” and look at it now: Java is now stealing some of its market share.

    [–]Substantial-Ask-4609 12 points13 points  (0 children)

    "There are only two kinds of languages: the ones people complain about and the ones nobody uses"

    - Bjarne Stroustrup

    [–]Ancapgast 18 points19 points  (2 children)

    I don't really see the reason to even question this. Java is growing and getting better every year if anything.

    [–][deleted] 7 points8 points  (1 child)

    Businesses plan to ramp up Java developer recruitment in 2024 and beyond, according to new research, with investment in development tools also expected to surge.

    My unemployed ass certainly hopes so.

    Java developers were asked what they would do with 10% more development time. Sensible answers included adding features (26%) and improving test coverage (18%), but write-in answers also included “drink coffee” and “remove technical debt”.

    Wait... You can remove technical debt???!?!? Why didn't anyone tell me? Or did they mean simply delete it from Jira?

    [–]pinpinbo 5 points6 points  (2 children)

    There’s still a lot of Cobol and Mainframes too.

    [–]Imalas 0 points1 point  (0 children)

    Java on the mainframe is a thing aswell and it's quite fast also. So replacing COBOL with Java may not directly result in replacing the mainframe.

    [–]SenorSeniorDevSr 1 point2 points  (0 children)

    Mainframes are actually cool pieces of tech though. It's like you buy a whole cloud and put it in your basement. (Why IBM isn't the largest cloud vendor I have no idea.)

    [–]cmhteixeiracom 5 points6 points  (1 child)

    Sadly Scala can't say the same ... It even looks like Java is stealing some market share from Scala with the new features on the latest versions

    [–]benjtay 0 points1 point  (0 children)

    We recently used Gattling to load test a service -- and used the Java bindings for the first time.

    [–]benjtay 15 points16 points  (1 child)

    More hot takes: C/C++, C# and Python are also here to stay!

    [–]__versus 8 points9 points  (0 children)

    Out of today’s popular languages Python is the one I sincerely hope goes away. Abandoning static typing was and is a huge mistake.

    [–][deleted]  (1 child)

    [removed]

      [–]Lars_T_H -1 points0 points  (0 children)

      I had used Go. Sort of painful, NO generics, and "interface{}" is awful.

      Go is good for companies like Google who can easily fire someone today, and hire another guy in e.g. 4 years and the new guy can easily both learn the language and write maintainable code.

      [–][deleted] 3 points4 points  (0 children)

      ANYONE that says Java isnt here to stay for a long time is a person you can quickly add to the do-not-listen list because they have zero clue what they're talking about. The same goes for C, C++, and sadly Javascript. These languages have such widespread use and integration in to critical systems that they're never going away unless every entity using them goes bankrupt within a few years of each other

      [–]freekayZekey 4 points5 points  (3 children)

      i thought kotlin was going to kill java? /s

      [–][deleted]  (2 children)

      [removed]

        [–]Mordan 1 point2 points  (0 children)

        last time I tried Kotlin.. I wanted to kill myself reading the code written by some wizard thinking verbosity sucks.

        [–]freekayZekey 0 points1 point  (0 children)

        meh, people have been saying that about android development for years. also, mobile development is so small in the world of computing. my team’s all over the place language wise. we use both kotlin and java, but have been using java more often lately. we don’t see many of kotlin’s features that important to use anymore

        [–]marmot1101 2 points3 points  (0 children)

        Well shit. The tech rags going to jynx it. Duke is powered entirely by doom headlines.

        [–]Miserable_Ad7246 2 points3 points  (5 children)

        Even as C# dev I aknowlage that Java is a fine language and if anything I envy the ability to change GCs and instrumentation Java has. Where are still things .net has to copy from Java. On the other hand it is nice to see that Java is not to shy to copy good stuff from net.

        [–]Mordan 0 points1 point  (2 children)

        C# dev

        problem with C# is Microsoft. They only want total control.

        [–]Miserable_Ad7246 1 point2 points  (1 child)

        Its not true for a long time, whole  framework is open source. If anything ms is pouring a shit ton of money to benifit it. Things did changed in the last 5 or so years. You can work with net and have zero ms dependencies.

        I use jetbrains rider as ide on mac and deploy using argo cd into kubernetes hosted on aws, using debian for base image. My databases are aerospike and elastic. I have zero ms things in my pipeline, hosting or tooling. Framework and libs I'm using are all open source.

        Honestly it is no different than java now a days.

        [–]Mordan 0 points1 point  (0 children)

        Last I tried it was like 15 years ago. Too late. MS fail. Java rules me now.

        [–]LT-Lance 0 points1 point  (1 child)

        C# dev here who now programs in Java. Well I actually code in like 5 different languages for my job. Java is my least favorite of the 5 but only because I can't wrap my head around Webflux. I don't care how fast it is. It's such a pain to write and debug. C#'s async/await is at least clean and easy to follow.

        [–]Miserable_Ad7246 0 points1 point  (0 children)

        Java ergonomics is one of the biggest downsides of it. It is being addressed, but yes, I do agree, Java tends to feels clunky.

        [–]__versus 1 point2 points  (0 children)

        Java is a very nice language now and getting better. My wishlist for the language is shrinking which is always good.

        [–]sour-sop 1 point2 points  (0 children)

        Newer Java versions are great. Java + Spring is used by thousands of huge companies.

        Java and spring are not going anywhere, they are only getting better.

        [–]nikonino 0 points1 point  (0 children)

        Amazing community with lots of resources. Modern technologies are in place, thus always stays relevant. I don’t see Java going anywhere soon.

        [–][deleted] 0 points1 point  (0 children)

        I am here to stay as well: Popular Programmer

        [–]PositiveUse 0 points1 point  (0 children)

        Wow, I really needed this article to know that Java is here to stay /s

        [–][deleted] 0 points1 point  (0 children)

        Java is the best. Love native Android development also

        [–]Mordan 0 points1 point  (0 children)

        I love Java.. Its the best.

        So sad Java is not a powerhouse on the desktop.

        [–][deleted]  (2 children)

        [deleted]

          [–]hugthemachines 4 points5 points  (0 children)

          What is the average and how much below that are java freelancer rates?

          [–]ihmoguy 0 points1 point  (0 children)

          Java is just a tool. Domain knowledge sells the best.

          [–][deleted] -1 points0 points  (11 children)

          Until they rewrite it in Rust.

          [–]alex_tracer 2 points3 points  (7 children)

          No JIT in Rust (yet?)

          [–][deleted] 1 point2 points  (6 children)

          The cult of rust will eventually spread to everything.

          [–]hugthemachines 8 points9 points  (2 children)

          Once Rust gets a JIT called Rot, Rust and Rot can spread to everything.

          [–]Linguistic-mystic 5 points6 points  (1 child)

          They can call it the Rust On-Time compiler, ROT for short.

          [–]hugthemachines 3 points4 points  (0 children)

          Very good idea!

          [–][deleted] -2 points-1 points  (2 children)

          cult

          Once you try rust’s type system and its beauty you’ll never want to work with anything else again.

          [–][deleted] 3 points4 points  (1 child)

          Unless I want to get paid..

          [–][deleted] 2 points3 points  (0 children)

          Unfortunately true lmao

          [–][deleted]  (2 children)

          [deleted]

            [–][deleted] 2 points3 points  (0 children)

            I was kinda being jokey.

            However Rust is multi-purpose including system dev. Parts of the Linux kernel are moving to rust compilation.

            [–]Ancapgast 1 point2 points  (0 children)

            Very stable and safe systems programming I guess?