Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Java Programming

Developers Finally Moving Away from Java 8 to Java 11 (sdtimes.com) 61

SD Times takes another look at the uptake of Java 11 Previous reports of the Java community found that developers were still mainly using Java 8 and didn't adopt newer versions, but according to Snyk's JVM Ecosystem Report 2021, that is starting to change. This year, 61.5% of respondents are using Java 11 somewhere in production, and almost 12% are using the latest release, which was Java 15 during the survey. "This is huge, because it shows that developers do upgrade their Java version beyond Java 8 to some extent. The mantra that most Java developers are comfortable staying on Java 8 seems to be slowly breaking apart," Snyk stated in the report.

However, half of the Java 11 users — which is currently the most used version — still use Java 8 in their production stack...

In addition, almost half of developers (44%) use the free AdoptOpenJDK distribution in production as one of their JDKs and 48% use it in development.

"Other findings are that Java is still by far the most popular language by a long shot and Snyk stated it will probably remain that way in the foreseeable future and that JetBrains IntellIJ IDEA still remains dominant as an IDE in the Java ecosystem."
This discussion has been archived. No new comments can be posted.

Developers Finally Moving Away from Java 8 to Java 11

Comments Filter:
    • by Njovich ( 553857 )

      Honestly, we have no idea what the actual numbers are. Big corps output a ton of Java and nobody there is reporting to anyone outside of the org.

      • by Joviex ( 976416 )

        Honestly, we have no idea what the actual numbers are. Big corps output a ton of Java and nobody there is reporting to anyone outside of the org.

        True, but I do have 25 years of anecdotal experience while CSE. Java is dying in the places it used to thrive. It is slowly being replaced by C++ and Python. TTFWIW

      • by Opportunist ( 166417 ) on Sunday July 11, 2021 @06:45AM (#61571761)

        If you allow that to count, I'm pretty sure that the amount of slapped together Excel sheet automation would make Visual Basic dwarf everything else.

  • Okay they said they had some java 11 running somewhere, but the big enterprise software stacks are firmly in Java 8 territory. Like Websphere 9, Oracle's DBMS, Oracle's Weblogic 14, even Apache tomcat will run with later versions (it's claimed) but targets Java 8.

    • by Z00L00K ( 682162 )

      The difference between Java 8 and Java 11 isn't that huge from the majority of the code base so there's no real need to enforce an upgrade.

      The most recent important update of the language was the introduction of generics. Subsequent updates haven't been as important even though they have been interesting for some cases.

      One of the things I think actually have held back Java has been the lack of true native serial port support. Mostly because serial port interface logic is still one of the most used methods t

      • Not that big a difference... well I can tell you my employer's old code won't work under it, just a few hundred thousand lines to go through and rewrite, no big deal eh? lolz.

        Serial port? No problem, if you don't want to do JNI then make a socket to a C program that does it, file system or network.

        For that matter on real operating systems you can have shell script that uses one of the many serial port setup programs and do io right on the terminal dev file. On the fake OS windows cygwin can do it but the

  • AKA, version creep (Score:4, Insightful)

    by Kisai ( 213879 ) on Saturday July 10, 2021 @11:23PM (#61571213)

    This is a good example of Version number creep. Why does Java need "a version number" , can't they make a Java "just work" ?

    Clearly not. I remember this with 1.1 when people were still on 1.0.2 and it was like ... why is stuff breaking?

    This is what ultimately is going to be the death of Java and it being replaced by something that is stable.

    There are depreciated things in C and C++ but that's largely at the suggestion of the compiler, when microsoft started calling non _s functions depreciated, 3+ versions of MSVC ago. Yet if Microsoft actually removed that functionality, then everyone would have to use Clang, which hasn't.

    Rather C/C++/OBJC have the reverse problem where developers do not use exotic features of the language, and are discouraged from doing so if the program is intended to be portable. If your code can't compile on the C99/C++98, then it's not portable enough for all platforms but you might get away with it if it compiles with Clang which is available on all platforms.

    Java on the other hand, just breaks, and there's no guarantee that a Java runtime will be on a system.

    • Re: (Score:2, Interesting)

      by Anonymous Coward

      There's another huge reason to never upgrade.
      For some years now, any JRE from Oracle is under new licensing, and you can not run anything using it without opening yourself up to huge risks of lawsuits.
      This isn't even tied to a specific version of the JRE, just a point in time when it was downloaded, which mostly rules out anything newer than 8.

      There are other implementations, and have been for awhile but a few years back they weren't completely compatible. These days it is the non-oracle implementations be

      • This isn't really an issue. The OpenJDK and its JRE have always been unencumbered, FOSS, actively maintained, and used as the basis for the encumbered Oracle JRE/JDK releases. I suspect OpenJDK is still by far the primary distribution used for professional developers' machines, build servers, production deployments, and bundling with installers and Docker images.

        The Java 8 Oracle JRE/JDK releases has since at least 2019 [oracle.com] been encumbered by the same license as Java 11. So not applying maintenance versions of

        • by jabuzz ( 182671 )

          Add in there are some LTS support version of Java 8 from sources other than Oracle which are free and frankly much easier to use at least for Linux. For example I can just set up a repository for Amazon's Corretto and it will be kept up to date using the same mechanism as the rest of the OS.

          The only hassle is that there is no JRE option it's full JDK but heck disk space and network bandwidth in 2021 are all cheap and plentiful.

          • Yeah, and the difference between an JRE and JDK is what?
            Five executables, like the compiler, debugger and some other random tools like key-store management?

    • by ET3D ( 1169851 ) on Sunday July 11, 2021 @03:31AM (#61571567)

      If both Java developers and C++ developers tend to use older versions, how is that "the reverse problem"? No, it's the exact same problem, with developers only slowly taking up new versions.

      That's certainly not going to be the death of Java. As long as new updates are available buy older stuff can still be used, that's the normal way for a language to move forward.

      • "The problem" are not "developers" but "organizations".

        I work for organization or company A: they define what I have to use.

        On my laptop i have usually 3 or 4 versions, and most certainly two of them are:
        a) Java 8
        b) the newest Java version - most likely a beta version

    • by rastos1 ( 601318 )

      ... and there's no guarantee that a Java runtime will be on a system.

      I"ve had my share of "fun" attempting to run my programs and getting "The program can't start because VCRUNTIME140.dll is missing from your computer."

    • Why does Java need "a version number" , can't they make a Java "just work" ?

      Good question. *looks up better languages*
      Why is GCC at version 11.1? It's just compiling C. Couldn't they get that right the first time?
      Why is CLANG at version 12? Is it even worse than GCC?
      Why is Python 2.7 not compatible with version 2.6 on my machine? It's just a minor version change.
      Why has C++ gone through 5 versions? People were telling me it could do *anything* in the 90s!

      The reality is there are no languages which are prefect or can't be slightly improved...Okay maybe Brainfuck is, or maybe people

      • But that wasn't really his point now was it. You can compile C89 code with your brand new C17 compiler and it just works. Python and PHP have the very same problems that Java have with every new version not building on the previous one but instead rewrites the language so code have to be ported.
      • Each version brings with it new and exciting incompatibilities. What you use today is not guaranteed to work in six months.

    • Java uses a virtual machine.
      Everyone knows that. A virtual machine is more or less just a virtual processor/CPU.
      How you think an old CPU can know how to interpret new code is beyond me.

      Why does Java need "a version number" , can't they make a Java "just work" ?
      Simple answer: see above, no it can't.

      If your code can't compile on the C99/C++98, then it's not portable enough for all platforms
      That is one of the reasons why I do not use C++ anymore. Makes no sense to stay in programming stone age for me.

    • Apparently you havenâ(TM)t tried doing C++17 much. C++ isnâ(TM)t quite as stable as you think.

      We switched builds on all platforms from C++11 to 17 recently. Apple is normally the annoying one for breakages and their clang-based compiler is generally the most pedantic. Nope, no problems there. No major problems upgrading gcc from 4.8 to something modern. Microsoft are normally kings of backwards compatibility and also for not exactly known for having a standards compliant C++ compiler, but not

    • You're so full of s__t.

      For the sake of it, I just tried running a jar file compiled with Java 5 (released 2004) on god knows what on my Mac with java 14. Guess what? I just works. Swing UI and all.
      I also tried compiling the same (it's an old download), then running it. Guess what? I also just works.

      My experience is that there's exactly _three_ languages for which you can take _any_ code, from anywhere, anytime, and _trust_ that it will work just fine now on the same platform: C, Java and Perl (a bit of a co

  • Ugh, this leaves out a *very* important qualiifier. The "most ppular language" refers to most popular language that runs on the JVM. Specifically its a reference to 18% of JVM code using Kotlin.

    Java is NOT "The most popular language" of all however. Thats most likely a battle between C, JS and Python, at this stage.

    • Considering that the TIOBE index is based on "search questions", I would assume: Java is by far far far the most popular language. But it has also an excellent documentation.

      If I program in Python - which I rarely do - I'm feeding the "popularity index" of Python on TIOBE: but I do not belong to the "popular language developers" ... I'm just a noob in Python.

      OTOH: I only use "java 'insert search term' " in absolutely obscure cases. (And most of the time I can not search anyway, as internet access to the ou

      • I honestly don't see as much Java out there as I used to. I mean theres still a lot of legacy Java, but seemingly not a lot of new projects. What I *am* seeing is a hell of a lot of Java projects, particularly in large enterprises and government, being replaced by Django stacks, which seems to be emerging as the next big enterprise powerhouse (and keep in mind that things been around for coming close to 20 years, its pretty battletested at this point).

        • Well, Django is considered to be a pretty solid framework.
          No idea why it is "emerging" as it is most likely 20 years old :D

  • Depending on who you ask, Java is still in the top ten most popular programming languages - sometimes at #2 or #3, but mostly not #1 unless you're looking at 'most popular language that runs on JVM'.

    But there is a need for Java that nothing else can fill yet - basically, it's the new COBOL. Java lets legions of marginally competent corporate hacks work together on the same gigantic bloated monster of a project without hurting each other too much - because it requires so much verbosity and making things exp

    • Java lets legions of marginally competent corporate hacks
      That is nonsense.

      Most programmers I meet are excellent programmers. Regardless of language.

      Why you dismiss someone: who is basically forced by the organization he is working at as a "bad developer" - or mediocre - or "bad hack" is beyond me.

      Also, 'write once run everywhere' is mostly a lie, but Java does provide a relatively easy way to get your laggy app running on Windows, Mac, and Linux if you don't feel like writing snappy native apps.
      Strange th

  • IME IPMI and its equivalents doesn't work with runtimes newer than java 8.

    ssl rather than tls too. All to talk to something that isn't (shouldn't) be publicly available but is often mission critical that it 'just works' discourages upgrading.

  • Redhat (Score:2, Interesting)

    by Anonymous Coward

    Java 8 - > Java 11 was not easy for us. I have over 10 years of experience in Java and I am considered one of the elite developers in my company, and it was still hard for me. Because I am the elite, there was no-one I could ask for help. Some problems were so rare that you could not find answers to them from the net. Most of the hard problems were caused by our own decisions years earlier, by using rare libraries and making custom solutions (which I still think are pretty good).

    First problem is Redhat.

    • This is also a problem with not upgrading incrementally, isnâ(TM)t it? The longer you stick with old tools and justify it with âoeif it ainâ(TM)t broke, donâ(TM)t fix itâ, the harder the eventual upgrade will be. Maybe of course the actual costs in time, if measured, might show that waiting is the right thing to do.

  • I realise this might get me down moded, but could rewriting some of the systems in .net be a way forward awy from Larry and his mery legal teem? I know porting code isn't non trivial. but the question is how long will thes businesses be able to find skilled java devs without pyaing above market rates, and when will Java be re licensed yet again?
    • Java is Open Source ...

      And if you ever had programmed in/with/on .NET you would not ask such stupid questions.

      • C# and .NET Core are open source, as are most of their ecosystems, and C#, generally speaking, is well-suited to most of the same problem spaces as is Java.

        But you don't risk being sued by Larry Ellison for using it.

  • OpenJDK is standard in all the distributions such as:

    • 8: java-1.8.0-openjdk
    • 11: java-11-openjdk
    • 16: java-latest-openjdk
    • Strictly speaking, not "OpenJDK" as in "the" OpenJDK, but "a" distribution-specific build of OpenJDK is part of each distribution. I guess they may, at least theoretically, differ between each other by exactly which updates they pull from upstream and when exactly OpenJDK updates are being released. AdoptOpenJDK, which is referenced by the central OpenJDK Wiki [java.net] as the source for OpenJDK releases, unifies updates and releases over all systems for which they build binaries.

      • by short ( 66530 )
        Their builds are distribution-agnostic therefore they will work just on Ubuntu which they most probably build in on. But it will have various minor (or major) compatibility issues on all other distros. Even Fedora had to make ABI workarounds for Google Chrome as that is built on Ubuntu (despite Fedora contains a native Chromium build but users do not use it much for unknown reason). You cannot make a cross-distro binary, Linux across distros is only API compatible, not ABI compatible. This is why there was
        • There are several things which make "Linux fail on desktop", but this is the first time I heard the claim that "ABI" was one of them. I'm far from being a Linux systems specialist, but when I build an application on my PC, my impression always was that I get an x64 binary that runs on any halfway current x64 Linux, be it Ubuntu, Fedora or Arch, as long as it either finds the necessary libraries on that system or has them linked to itself.

          Specifically, I haven't heard any complaints yet that AdoptOpenJDK's J

          • by short ( 66530 )
            > when I build an application on my PC, my impression always was that I get an x64 binary that runs on any halfway current x64 Linux, be it Ubuntu, Fedora or Arch,

            No way.

            > as long as it either finds the necessary libraries on that system

            That is the problem. Each system has different versions of shared libraries. Additionally they are compiled different ways which makes them ABI incompatible (such as using / not using symbol versioning). And then also distribution patches do not care about ABI compa

  • Java has one fatal flaw. Every version leap also means throwing away your code. And that simply won't happen.

    Of course, every major version leap, in every OS and langauge, comes with its "deprecated" practices, functions and whatnots. Java, though, seems it doesn't have that. It just stops working. Like, so. What used to be the staple of your programs in version A simply doesn't work anymore in version A+1. Or, worse, it seems to work but has some really nasty side effects that break your program JUST enoug

    • Guilty of running old Java myself. I keep a single machine that still runs Java 6 because that is the only version that talks to our many tens of thousands of dollars of climate control systems for the building. Need to change a zone? Fire up that old Windows 7 machine with Java 6 and set the changes. Want to upgrade that HVAC? You need to rip out everything including sensors, wall controls, damper actuators, fan controls, and all the electronics. None of it is compatible with the newer system.
  • As an outsider it seems to me that Java2k is the way more advanced version. It ditches the C++-inspired class and object concept and introduces truly useful features like more defined probabilistic computing. (as in regular Java, every statement has a probability of executing, however in Java2k this is no longer implementation specific, so if you need code with a defined amount of reliability, you no longer need to port it)

  • Instead of going to Java 11 they shpuld move to another lanfuage like C#.
    • I really, REALLY wish Java allowed us to do C#-style string interpolation. It wouldn't even have to be language-level. Literally, someone like Jetbrains could just graft it onto IntelliJ as pre-compile desugaring (that works just like Android Studio's Lambda-desugaring), so something like:

      $"The value of foo is {foo}"

      would automatically and implicitly be desugared to:

      String.format("The value of foo is %s", foo.toString());

      Some people would bitch & moan, but within a year or two Eclipse and Netbeans would

  • "Other findings are that Java is still by far the most popular language by a long shot..." However, I read the previous /. post, which tells a different story, and that one has hard numbers.
  • I write educational packages in Java released yearly. These are distributed to students across the US and have to run in university's computer labs. We still target Java 8. Why because there is too much time between LTS versions of Java.
    Java 8 was released in 2014. Java 9 and 10 were not LTS; so targeting them was software suicide.
    Java 11 was released in September 2018. So before September 2018, we could not even consider migrating, there was nothing to migrate to.

    During Summer 2019, we surveyed our users a

  • I think a lot of the hesitancy to upgrade comes from when Oracle made the decision to go to the incremental release model for Java. For one thing, most shops that use Java use it for JEE; that's where Java made its biggest inroads for its popularity. These businesses will usually have a large portfolio of web applications that run on a JEE application server. For these businesses, the decision to upgrade Java versions also include a decision to upgrade version of JEE (now Jakarta) as well as a decision t
  • Guess they missed the other article that says C, Java, and Python are the top 3 languages, in that order, and there is only a 0.67% difference between the 1 and 3 spots.
  • We're moving from Java 8 to javascript . . . don't you read the polls?

"Protozoa are small, and bacteria are small, but viruses are smaller than the both put together."

Working...