Announcement

Collapse
No announcement yet.

The State of OpenJDK In Early 2018

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • The State of OpenJDK In Early 2018

    Phoronix: The State of OpenJDK In Early 2018

    Oracle's Mark Reinhold spoke at last weekend's FOSDEM conference about the state of OpenJDK for open-source Java...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    I know most of the technology industry loves to hate Java. I love to hate it, and I use it to pay my mortgage.

    The Graal project is pretty cool - it compiles Java code into a native binary that only includes the pieces of the Java Runtime Environment that it actually uses, so the garbage collector and whatever pieces of the Java standard library that the code actually uses. You can't use Java reflection (runtime class inspection) or dynamic class loading (runtime loading of additional Java code) with Graal, though. But it makes Java useful in places where it was a poor fit before. I haven't benchmarked it, but I bet Java projects compiled with Graal would be nice to use and fast on a Raspberry Pi or similar, while standard Java on the Raspberry Pi is slow and annoying to use because of how much disk reading it does at start up and the Java standard library dozens (hundreds?) of MB memory overhead.

    On the other hand, OpenJDK9 can't run graphical programs for me on Linux. Java Swing-related stuff just crashes, including Minecraft. I had to switch to the Oracle JDK for my kids to keep playing it.

    Comment


    • #3
      It's funny they claim they think the transition will be smooth after they dropped ARM support like a bad habit.

      Comment


      • #4
        Oracle's build dropped ARM but I'm not sure that OpenJDK ever actually had it. IcedTea (which some distros build OpenJDK with) has ARM support but I think they patch that in.

        I need to update Gentoo's java-config because it naively sorts the Java versions and 10 will screw it up.

        Comment


        • #5
          Originally posted by Chewi View Post
          Oracle's build dropped ARM but I'm not sure that OpenJDK ever actually had it. IcedTea (which some distros build OpenJDK with) has ARM support but I think they patch that in.

          I need to update Gentoo's java-config because it naively sorts the Java versions and 10 will screw it up.
          Yeah, it compiles for ARM (it always has), but it's been missing a lot of useful features (JIT, proper encryption). And there's no telling if everything that was in Oracle's JDK was upstreamed before this move.

          Comment


          • #6
            Originally posted by bug77 View Post
            Yeah, it compiles for ARM (it always has), but it's been missing a lot of useful features (JIT, proper encryption). And there's no telling if everything that was in Oracle's JDK was upstreamed before this move.
            Yeah, I'm talking about HotSpot (i.e. JIT) support. I don't think the source for Oracle's ARM implementation was ever released. I note that Debian ships OpenJDK with Zero (no HotSpot) but if you install the icedtea(-bin) package on Gentoo then you do get HotSpot. I imagine Fedora has it too as IcedTea is maintained by Red Hat.

            Comment


            • #7
              Originally posted by Chewi View Post

              Yeah, I'm talking about HotSpot (i.e. JIT) support. I don't think the source for Oracle's ARM implementation was ever released. I note that Debian ships OpenJDK with Zero (no HotSpot) but if you install the icedtea(-bin) package on Gentoo then you do get HotSpot. I imagine Fedora has it too as IcedTea is maintained by Red Hat.
              Good luck going to production with that

              Comment


              • #8
                Back in the day JIT was considered an abomination because it slowed down Java.

                Comment


                • #9
                  Originally posted by caligula View Post
                  Back in the day JIT was considered an abomination because it slowed down Java.
                  I don't know what days you're talking about. It eats more RAM, yes, but it does exactly the opposite of slowing down anything. Hell, even web browsers today use JIT to get acceptable performance out of JS.

                  Comment


                  • #10
                    It's crazy they plan to immediately end support of one LTS release when the next LTS release is available, with no overlap window. Every other project has LTS support window overlap.

                    It's crazy to name these temporary feature releases of Java with full version numbers that are superficially indistinguishable from the big LTS release. Realistically, most of the Java world will stay on the LTS releases, and the early adopter types will use and support the feature releases.

                    And Java 9... it just came out, and it's support window is basically over, as it is being replaced by JDK10. The Java ecosystem will not broadly adopt these temporary releases; they will wait for the proper LTS release.

                    The named projects are loaded with amazing stuff. My favorites:
                    - Valhalla: Proper Value Types for the JVM. Affects all JVM languages, not just Java. This is the biggest.
                    - Amber: Tons of well thought out updates to the core Java language.
                    - Loom: Super fast, simple, parallel programming. I imagine like what Go has.
                    - Portola: Full Alpine Linux support for tiny Docker images.
                    And the JEPs are filled with amazing stuff:
                    - Switch expressions.
                    - Pattern matching
                    - Declaration side Generics type variance
                    (Sure Scala had these for ages, and C# has gotten these more recently, but it's nice to see Java finally catch up)

                    Comment

                    Working...
                    X