Oracle a annoncé la disponibilité de Java 19, la dernière version du langage de programmation et de la plate-forme de développement numéro un dans le monde. Java 19 (Oracle JDK 19) apporte des milliers d'améliorations en termes de performance, de stabilité et de sécurité, notamment des améliorations de la plate-forme qui aideront les développeurs à améliorer leur productivité et à stimuler l'innovation à l'échelle de l'entreprise. Oracle présentera les dernières fonctionnalités de Java 19 lors du salon JavaOne 2022, qui se déroulera du 17 au 20 octobre à Las Vegas, et par le biais d'un discours-programme diffusé sur dev.java/le 20 septembre.

Le dernier kit de développement Java (JDK) fournit des mises à jour et des améliorations avec sept propositions d'amélioration JDK (JEP). La plupart de ces mises à jour seront livrées sous forme d'avant-premières de suivi améliorant les fonctionnalités introduites dans les versions précédentes. Le JDK 19 propose des améliorations du langage du projet OpenJDK Amber (Record Patterns and Pattern Matching for Switch) ; des améliorations de bibliothèque pour interopérer avec du code non-Java (Foreign Function and Memory API) et pour exploiter les instructions vectorielles (Vector API) du projet OpenJDK Panama ; et les premiers aperçus du projet Loom (Virtual Threads and Structured Concurrency), qui réduiront considérablement les efforts requis pour écrire et maintenir des applications concurrentes à haut débit en Java.

Oracle livre de nouvelles versions des fonctionnalités Java tous les six mois, selon un calendrier de publication prévisible. Cette cadence fournit un flux régulier d'innovations tout en apportant des améliorations continues aux performances, à la stabilité et à la sécurité de la plate-forme, ce qui contribue à accroître l'omniprésence de Java dans les organisations et les industries de toutes tailles. Les mises à jour les plus significatives livrées dans Java 19 sont : Mises à jour et améliorations du langage : JEP 405 : Record Patterns (aperçu) : Permet aux utilisateurs d'imbriquer les modèles d'enregistrement et les modèles de type pour créer une forme puissante, déclarative et composable de navigation et de traitement des données.

Cela étend le filtrage de motifs pour permettre des requêtes de données plus sophistiquées et composables. JEP 427 : filtrage de motifs pour Switch (troisième aperçu) : Permet le filtrage pour les expressions et instructions switch en permettant à une expression d'être testée par rapport à un certain nombre de modèles. Cela permet aux utilisateurs d'exprimer des requêtes complexes orientées données de manière concise et sûre.

Outils de bibliothèque : JEP 424 : Fonction étrangère et API de mémoire (Preview) : Permet aux programmes Java d'interagir plus facilement avec le code et les données en dehors du runtime Java. En invoquant efficacement les fonctions étrangères (c'est-à-dire le code en dehors de la machine virtuelle Java [JVM]) et en accédant en toute sécurité à la mémoire étrangère (c'est-à-dire la mémoire non gérée par la JVM), cette API permet aux programmes Java d'appeler des bibliothèques natives et de traiter des données natives via un modèle de développement purement Java. Il en résulte une facilité d'utilisation, des performances, une flexibilité et une sécurité accrues.

JEP 426 : API vectorielle (quatrième incubateur) : Permet d'obtenir des performances supérieures à celles des calculs scalaires équivalents en exprimant des calculs vectoriels qui se compilent de manière fiable au moment de l'exécution en instructions vectorielles sur les architectures de CPU prises en charge. Ports : JEP 422 : Portage Linux/RISC-V : Prépare le terrain pour des implémentations Linux/RISC-V plus faciles en intégrant ce portage dans le dépôt principal du JDK. Caractéristiques du projet Loom Preview/Incubator : JEP 425 : Virtual Threads (aperçu) : Réduit considérablement les efforts d'écriture, de maintenance et d'observation des applications concurrentes à haut débit en introduisant des threads virtuels légers dans la plate-forme Java.

L'utilisation de threads virtuels permet aux développeurs de dépanner, déboguer et profiler facilement les applications concurrentes avec les outils et techniques JDK existants. JEP 428 : Concurrence structurée (Incubateur) : Rationalise la gestion et l'annulation des erreurs, améliore la fiabilité et renforce l'observabilité en simplifiant la programmation multithread et en traitant plusieurs tâches exécutées dans différents threads comme une seule unité de travail. Favoriser l'innovation Java dans le cloud : La version Java 19 est le résultat d'une collaboration étendue entre les ingénieurs d'Oracle et d'autres membres de la communauté mondiale des développeurs Java via le projet OpenJDK et le Java Community Process (JCP).

En plus des nouvelles améliorations, Java 19 est pris en charge par Java Management Service – ; un service natif d'Oracle Cloud Infrastructure (OCI) – ; qui fournit un seul panneau de verre pour aider les organisations à gérer les runtimes et les applications Java sur site ou sur n'importe quel cloud. Soutien aux clients Java : L'abonnement à Oracle Java SE est une offre payante qui propose aux clients un support de premier ordre, le droit à GraalVM Enterprise, l'accès à Java Management Service et la possibilité d'effectuer des mises à niveau au rythme de leur entreprise. Cela aide les organisations informatiques à gérer la complexité, à contenir les coûts et à atténuer les risques de sécurité.

En outre, Java SE et GraalVM Enterprise sont proposés gratuitement sur OCI, ce qui permet aux développeurs de créer et de déployer des applications qui s'exécutent plus rapidement, mieux et avec un rapport coût-performance imbattable sur Oracle Cloud. Soulignant la popularité de Java auprès de la communauté mondiale des développeurs, Oracle est fier de reconnaître la millionième certification Java terminée. Les certifications Java aident les développeurs à se distinguer en tant qu'experts Java et à améliorer leur profil auprès des entreprises qui cherchent à attirer des professionnels Java hautement qualifiés.