Le Projet Valhalla d'OpenJDK, qui explore les possibilités de fonctionnalités futures pour le langage Java et la JVM, continue sa progression avec une livraison par étapes des objets de valeur (Value Objects), des objets primitifs (Primitive Objects) et de l'unification des primitives de base.

L'objectif général et ambitieux du Projet Valhalla est de combler le fossé entre les primitives et les objets. Dans un billet de blog publié en décembre 2021 et intitulé « The State of Valhalla », Brian Goetz, architecte du langage Java chez Oracle, mentionne trois capacités clés figurant dans les propositions d'amélioration du JDK (JEP) attendues par la communauté OpenJDK :

- Les objets de valeur : ils amélioreraient le modèle objet de Java avec des instances de classe n’ayant que des champs d'instance finaux et pas d'identité d'objet.

- Les objets primitifs : ils amélioreraient le modèle objet de Java avec des objets primitifs déclarés par l'utilisateur.

- L’unification des primitives et des objets de base.

Un travail de longue haleine

Lancé en 2014, l’objectif du projet Valhalla est d'apporter des types de données plus flexibles et plus plats aux langages basés sur la JVM afin de rétablir une coïncidence entre le modèle de programmation et les caractéristiques de performance des hardwares modernes. Les objectifs suivants ont été décrits dans une série de billets de blog publiés récemment, intitulés « The Road to Valhalla », « The Language Model » et « The State of Valhalla » :

- Un plan générique impliquant des génériques universels et des génériques spécialisés.

- L’unification des primitives et des objets de façon à pouvoir déclarer les types de genre primitif avec des classes tout en conservant les caractéristiques d'exécution des primitives.

- La migration de nombreuses classes basées sur des valeurs dans le JDK vers des classes de valeurs.

- Des dispositions de données mieux adaptées aux performances du hardware actuel en fournissant aux développeurs Java un accès plus facile à des dispositions de mémoire dense et efficace en termes de cache sans compromettre l'abstraction ou la sécurité des types.

Valhalla est parrainé par le HotSpot Group, un collectif composé de développeurs impliqués dans la conception, la mise en œuvre et la maintenance de la machine virtuelle HotSpot de Java. Le projet Valhalla a déjà livré ses mises en garde pour les classes basées sur la valeur, introduites dans Java 16 en mars 2021.