Stories
Slash Boxes
Comments

SoylentNews is people

posted by janrinok on Wednesday September 21, @04:50PM   Printer-friendly

JDK 19: the New Features in Java 19

JDK 19: The new features in Java 19:

Java Development Kit 19, a non-LTS (long-term support) release of standard Java, arrives today as a production release.

Seven features target the release including structured concurrency, record patterns, a preview of a foreign function and memory API, and support for the open source Linux/RISC-V instruction set architecture (ISA). All features but the Linux/RISC-V capability are either in preview or incubator phases.

JDK 19 follows the March 22 arrival of JDK 18. Standard Java has been on a six-month release cadence for five years, with JDK 19 being the tenth six-month release.

JDK 19 is available at oracle.com. The production release follows two release candidates and two rampdown phases, dating back to June. The JDK 19 features include:

  • Structured concurrency, in an incubator phase, is intended to simplify multithreaded programming through a structured concurrency API. [...]
  • A preview of record patterns, to deconstruct record values. Record patterns and type patterns can be nested to enable a declarative, powerful, and composable form of data navigation and processing. [...]
  • A preview of a foreign function and memory API, which would introduce an API by which Java programs can interoperate with code and data outside the Java runtime. [...]
  • A preview of virtual threads, which are lightweight threads that dramatically reduce the effort of writing, maintaining, and observing high-throughput, concurrent applications. [...]
  • A third preview of pattern matching for switch expressions and statements, extending pattern matching to switch, to allow an expression to be tested against a number of patterns, each with a specific action, so complex data-oriented queries can be expressed concisely and safely. [...]
  • A fourth incubation of a vector API that would express vector computations that reliably compile at runtime to optimal vector instructions on supported CPU architectures, thus achieving performance superior to equivalent scalar computations. [...]
  • With the Linux/RISC-V port, Java would gain support for a hardware instruction set that is already supported by a wide range of language toolchains. [...]

The port would support the following HotSpot VM options: the template interpreter, C1 (client) JIT compiler, C2 (server) JIT compiler, and all current mainline garbage collectors including ZGC and Shenandoah.[...]

Like JDK 18, JDK 19 is due to be a short-term release, with only six months of top-level, Premier support.

Oracle Releases Java 19 With Seven Significant Enhancements

Oracle releases Java 19 with seven significant enhancements:

Oracle brews Java 19. Mmmm, kinda tastes like RISC-V

In its evangelizing slide deck accompanying this release, Oracle ranks Java as the "#1 language for today's technology trends" and the "#1 language in overall development organizational use." The company also cites consultancy VDC Research's findings that "Java is #1 choice for cloud."

When measured in more general terms, Java ranks #2 or #3 or #5, depending upon which programming language survey gets cited. But programming language popularity alone, however that gets measured, doesn't necessarily build an ecosystem.

Suffice it to say that Java continues to be extremely important to Oracle, to the estimated 10 million Java developers wandering the world, and to 60 billion active Java Virtual Machines (JVMs) that rely on a 27-year-old programming language.


Original Submission #1Original Submission #2

 
This discussion was created by janrinok (52) for logged-in users only, but now has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
  • (Score: 2, Informative) by Anonymous Coward on Wednesday September 21, @06:56PM (4 children)

    by Anonymous Coward on Wednesday September 21, @06:56PM (#1272840)

    Version 19!!! Good grief, that's tragic, our IT department recently migrated some of our Enterprise software off Java 6 and onto Java 7. It still has problems. Now this article has made me go and look up the age of those versions: Java 6 = 2006, Java 7 = 2011. Good to know that my awful, useless, couldn't-give-a-shit IT department is really keeping us at the cutting edge!

    • (Score: 2, Informative) by Anonymous Coward on Wednesday September 21, @07:06PM (1 child)

      by Anonymous Coward on Wednesday September 21, @07:06PM (#1272842)
      The tragic and funny bit is how so many people try to build and maintain complex "skyscrapers" on foundations that change significantly every 5 years or less and consider such foundations good and "enterprise ready".

      Tragic if you're one of those involved and not getting paid enough for it. Funny is if you're the one watching from a great distance.
      • (Score: 3, Funny) by DannyB on Wednesday September 21, @08:54PM

        by DannyB (5839) Subscriber Badge on Wednesday September 21, @08:54PM (#1272881) Journal

        Is that different than having a really old application that runs on a really old Linux and old Apache web server? Yes, they should have kept using the newer releases as they came out. But sometimes people don't do that. That is likely a source of vulnerabilities.

        Moving up to the latest is probably not really that difficult. The Java maintainers have been very careful about compatibility.

        --
        I get constant rejection even though the compiler is supposed to accept constants.
    • (Score: 4, Insightful) by bradley13 on Wednesday September 21, @07:49PM

      by bradley13 (3053) Subscriber Badge on Wednesday September 21, @07:49PM (#1272853) Homepage Journal

      Honestly, they should at least have moved to Java 8. Lots of people are still using that version. No reason not to skip 7.

      But, really, backwards compatibility is good. It probably wouldn't be that difficult to move to the latest LTS, which is 17.

      --
      Everyone is somebody else's weirdo.
    • (Score: 5, Funny) by Snort on Wednesday September 21, @08:51PM

      by Snort (5141) on Wednesday September 21, @08:51PM (#1272878)

      We tried testing the application stack on Java 8 and weird things happened so we stopped to take augers from the gods. Signs were bad so we buried the project. We will take augers again in the next red moon.

  • (Score: 2) by sjames on Wednesday September 21, @07:36PM (1 child)

    by sjames (2882) on Wednesday September 21, @07:36PM (#1272850) Journal
    n/t
    • (Score: 4, Funny) by DannyB on Wednesday September 21, @08:55PM

      by DannyB (5839) Subscriber Badge on Wednesday September 21, @08:55PM (#1272882) Journal

      You say that like it's a bad thing.

      --
      I get constant rejection even though the compiler is supposed to accept constants.
  • (Score: 2) by bradley13 on Wednesday September 21, @07:52PM (4 children)

    by bradley13 (3053) Subscriber Badge on Wednesday September 21, @07:52PM (#1272856) Homepage Journal

    All these new features - really? Maybe I'm getting old and crotchety, but I'm a fan of keeping the language itself simple, and adding libraries for specialized applications. And some of the new features seem very specialized.

    --
    Everyone is somebody else's weirdo.
    • (Score: 3, Informative) by DannyB on Wednesday September 21, @08:50PM (3 children)

      by DannyB (5839) Subscriber Badge on Wednesday September 21, @08:50PM (#1272877) Journal

      I'm old and crotchety too.

      Java has made language changes very carefully. To avoid the Python 2 vs Python 3 effect.

      You can run your old compiled bytecode on a new Java runtime.

      You can compile your old source code on a new Java compiler.

      --
      I get constant rejection even though the compiler is supposed to accept constants.
      • (Score: 0) by Anonymous Coward on Wednesday September 21, @09:49PM (2 children)

        by Anonymous Coward on Wednesday September 21, @09:49PM (#1272891)

        ...preview of a foreign function... preview of virtual threads... A third preview of pattern matching for switch expressions and statements...

        So many "previews"! Can we preview the malware that will infect our machines now? They are building enterprise systems with toy software for kids

        • (Score: 4, Funny) by maxwell demon on Thursday September 22, @10:23AM

          by maxwell demon (1608) Subscriber Badge on Thursday September 22, @10:23AM (#1272961) Journal

          Can we preview the malware that will infect our machines now?

          Sure. Ransomware usually gets delivered as a free preview version that only supports encryption to your data. To then decrypt it you'll have to pay the full license fee. :-)

          --
          The Tao of math: The numbers you can count are not the real numbers.
        • (Score: 2) by DannyB on Friday September 23, @02:32PM

          by DannyB (5839) Subscriber Badge on Friday September 23, @02:32PM (#1273174) Journal

          When a release has a "preview" of a new feature, that feature has already been designed, tested in a limited scale, but now is considered safe enough to everyone so that it can be tested by anyone willing to do so. It allows a developer to try out a new feature in a limited way, without having to go download or build a special version having the new feature.

          There is nothing sinister about it.

          --
          I get constant rejection even though the compiler is supposed to accept constants.
  • (Score: 2) by DannyB on Friday September 23, @02:34PM

    by DannyB (5839) Subscriber Badge on Friday September 23, @02:34PM (#1273176) Journal

    No matter what quirks I have (or want to have) at the office, it can be easily dismissed as "I program in Java". People then realize, oh, ok, that explains it. So they can make allowance for the quirks.

    --
    I get constant rejection even though the compiler is supposed to accept constants.
(1)