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.
(Score: 2, Informative) by Anonymous Coward on Wednesday September 21 2022, @06:56PM (4 children)
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 2022, @07:06PM (1 child)
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 2022, @08:54PM
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.
The lower I set my standards the more accomplishments I have.
(Score: 4, Insightful) by bradley13 on Wednesday September 21 2022, @07:49PM
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 2022, @08:51PM
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 2022, @07:36PM (1 child)
(Score: 4, Funny) by DannyB on Wednesday September 21 2022, @08:55PM
You say that like it's a bad thing.
The lower I set my standards the more accomplishments I have.
(Score: 2) by bradley13 on Wednesday September 21 2022, @07:52PM (4 children)
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 2022, @08:50PM (3 children)
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.
The lower I set my standards the more accomplishments I have.
(Score: 0) by Anonymous Coward on Wednesday September 21 2022, @09:49PM (2 children)
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 2022, @10:23AM
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 2022, @02:32PM
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.
The lower I set my standards the more accomplishments I have.
(Score: 2) by DannyB on Friday September 23 2022, @02:34PM
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.
The lower I set my standards the more accomplishments I have.