back to article Not an off-by-one error: Java 16 brings 17 enhancements to Oracle's JDK. We chat to Big Red about what's new

Oracle on Tuesday plans to release Oracle JDK 16, Big Red's implementation of the Java 16 specification for the Java SE platform, sporting 17 distinct enhancements. For Chad Arimura, veep of Java developer relations, it's an occasion to celebrate the programming language's enduring popularity and Oracle's steady stewardship …

  1. Androgynous Cupboard Silver badge

    Almost all uninteresting...

    Was skimming that list and, like most Java releases, it's the usual round of internal changes and syntactic sugar. Nice for Oracle, not so useful for developers.

    But then I saw the Vector proposal! Yes! Now this one has potential - we do a lot of image processing in Java, and this could definitely lead to speed improvements. I investigated the HotSpot auto-vectorization a few years back, things need to be done just-so to take advantage of it. Making it explicit, with a non-vectorised fallback if the architecture doesn't support it is a great idea.

    As for people "adapting to the accelerated release cadence": bollocks. We don't even test on the non-LTR releases because none of our customers use them. I'm not sure which "Java-oriented enterprises" have decided to adopt a JVM that's only supported for 6 months - the ones we deal with would take that long just to make the decision to upgrade.

    1. AndyJF

      Re: Almost all uninteresting...

      I notice they added 'Records' in the latest raft of features. For when you just can't be arsed to type a class. Java is now chock full of these keystroke saving features. Aside from the fact that most half decent IDEs will literally write code for you, it's almost as if they are striving for the language to be much slimmer. But unfortunately they have too much baggage.

      <I'm off to write some Go code..>

      1. Androgynous Cupboard Silver badge

        Re: Almost all uninteresting...

        That's the only other one that developers will even notice I expect. But how long do you have to be programming in Java before you get fed up and develop your own generic Record or Tuple type class? We've been using one for years.

        Like you say, it's all keystroke-saving features - syntactic sugar. I'm personally alright with a few more lines of code if it makes the intent clearer, but Oracle seem to have gone off in the other direction (exhibit A, the streams interface)

        1. Blank Reg

          Re: Almost all uninteresting...

          They had to do streams to appease the functional programming zealots.

          Now I rather do like streams, but many people use them excessively and unnecessarily and in ways that have terrible performance. Just because you can use a stream doesn't mean you should use a stream

          1. AndyJF

            Re: Almost all uninteresting...

            Totally agree there re: streams. They have their place, but sometimes people get obsessed with using them.

            I once had a technical interview, where a piece of code I'd written used an enhanced for loop and it worked perfectly. However the interviewer was hell bent on using Java 8 features and asked me to convert the code segment to use a streams approach. Ok so I made it use a foreach loop. The resulting code was harder to read (IMO), and had to be hacked around to make it work.

            Just because the language provides these features, doesn't mean you *have* to use them.

            And yes, functional programming is the current fashion, so chaining stream methods together on one line is the popular style. Does it make code more, or less readable. And how do you debug that when it doesn't pop out the correct results?

        2. TheMeerkat

          Re: Almost all uninteresting...

          I really hate this “key-stroke saving” syntax sugar. It always makes the code less readable.

          Take the tuple. Someone was lazy to create a class with two fields. So now instead of well-names class you have to figure out what “tuple” contains in someone else’s code.

          And don’t even let me start on “vat”, something unavoidable in C++ but just a tool for lazy gits in Java.

          1. Androgynous Cupboard Silver badge

            Re: Almost all uninteresting...

            > And don’t even let me start on “vat”, something unavoidable in C++ but just a tool for lazy gits in Java.

            Much as I dislike Oracle, I think we have to blame HMRC for that one...

    2. Blank Reg

      Re: Almost all uninteresting...

      I'm still waiting for project Valhalla and the value types. It's been over 6 years and I'm still waiting.

    3. Aitor 1

      Re: Almost all uninteresting...

      The syntactic sugar is good and bad, and the problem is expansion of keywords and added complexity with few benefits.

      As for the increse in releases..just pure greed, so you have to pay oracle for licenses.

    4. Kevin McMurtrie Silver badge

      Re: Almost all uninteresting...

      I used to write code to perform document rendering in Java. Getting anti-aliased affine transformations of RGBA bitmaps running efficiently was a nightmare of micro benchmarks and trick optimizations. I could have used Vector extensions!

      1. Androgynous Cupboard Silver badge

        Re: Almost all uninteresting...

        Amen brother. The hours I've spent going through the AWT source trying to identify the fast codepaths...

  2. Sparkus

    I note that....

    it's near impossible to download the offline (full) installers for the current JREs unless you cough up all of your personal details via an Oracle user account......

    1. nobby

      Re: I note that....

      cough

      as a normal human - you're supposed to be using the OpenJdk builds. pootle off to https://adoptopenjdk.net/ and download...

  3. foxyshadis

    ZGC will probably make the most waves long-term, it's nice to see it finally land in an actual release.

    Pattern matching is going to be handy too, but who knows when 16 will be widespread enough to actually start using it.

  4. Anonymous Coward
    Anonymous Coward

    prevalent

    Like cockroaches.

  5. Anonymous Coward
    Facepalm

    We took Java 15...

    ...and just added more.

    Just like c++, Java core development is following the “if enough people piss in the bucket then surely it must become wine” approach to development..

  6. iced.lemonade

    Progress is not increasing non-essential complexity

    When I first programmed in Java when it was 1.0.2 on my Mac, it was very simple and straightforward - seems most syntax are there for a reason. Then there was varargs, generics, etc. which is still sane additions to the language. But under oracle stewardship, seems they are changing for the sake of changing. I think, syntax-wise, Java 8 has been the apex where even if they don't change the syntax for another 20 years it would still be fine. They should really focus on the standard library and work from there.

    I started my career as a coder spending most time on the UI side - and I think the swing and javafx libraries - they need much more love than oracle gives them and it would be more purposeful if oracle work on them instead of adding syntactic sugars which makes everyone diabetic.

    It is like working as a data-entry clerk with the keyboard layout changing every year with the benefits that can only be felt by the keyboard maker.

    Btw, I think the changes that is really essential at Java 9+ is the module system and the native packaging of Java 16. Other coders may be attached to other parts of the Java language/library but just, slow down the pace of changing the god damn syntax - (1) the more freedom in the ways the user codes, (2) the more styles the application would be coded in and (3) the less readability of the code in the long run. The readability factor alone is justified of using Java instead of C++, in my experience, if oracle would just keep Java simple.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like