Projet Valhalla : un incubateur d'évolutions pour préparer le terrain pour Java 10
Alors que Java 9 n'est pas attendu avant 2016

Le , par Arsene Newman, Expert éminent sénior
Alors que Java 8 est sorti en mars dernier et que la prochaine version majeure n’est pas attendue avant 2016, un comité d’experts dirigé par Brian Goetz vient de voir le jour pour dresser les grandes lignes de Java 10.

L’idée derrière ce nouveau projet dénommé Valhalla est de servir d’incubateur pour la version 10 de Java, en testant différentes évolutions possibles parmi les fonctionnalités qui doivent être supportées par le langage de programmation sur le long terme.

Parmi les fonctionnalités et les idées d’améliorations qui seront étudiées par le projet, il est possible de citer les valeurs des types (Value Types), ce qui peut permettre une optimisation de la représentation mémoire des types tout en maintenant les mêmes performances. D’autres fonctionnalités sont aussi à l’étude, c’est le cas par exemple de la spécialisation des génériques (Generic Specialization) ainsi que l’amélioration des volatiles (enhanced volatiles).

Le projet Valhalla tente aussi d’améliorer le langage Java en l’affectant à différents niveaux, comme le typage, le langage, la machine virtuelle ou les bibliothèques. Le projet a pour vocation de définir une sémantique claire au niveau de la machine virtuelle pour permettre un support égale pour le langage Java et les autres langages recourant à la JVM.

Pour l’heure le projet n'en est encore qu'à ses balbutiements. L’annonce de sa création a été faite via la mailing list d’OpenJDK. Elle mentionne, entre autres, les membres du comité d’experts pilotant le projet ainsi que la version de base de Java qui sera utilisée (JDK9).

Source : annonce du projet Valhalla

Et vous ?

Qu’en pensez-vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Traroth2 Traroth2 - Expert éminent http://www.developpez.com
le 30/06/2014 à 17:43
Jigsaw repoussé pour Java 10 dans 5... 4... 3...
Avatar de tomlev tomlev - Rédacteur/Modérateur http://www.developpez.com
le 30/06/2014 à 20:57
Citation Envoyé par Arsene Newman  Voir le message
les valeurs des types (Value Types)

En français on appelle plutôt ça les types valeur (par opposition aux types référence). C'est ce qui correspond aux struct de C# par exemple (ça doit aussi exister dans d'autres langages ; il me semble que Swift a aussi une notion de type valeur)
Avatar de la.lune la.lune - Membre chevronné http://www.developpez.com
le 01/07/2014 à 2:08
Citation Envoyé par Traroth2  Voir le message
Jigsaw repoussé pour Java 10 dans 5... 4... 3...

S'il n y a pas de Jigsaw dans Java 9 que ce qu'il y aura vraiment dedans
Avatar de Asmodan Asmodan - Membre à l'essai http://www.developpez.com
le 01/07/2014 à 9:56
Nous espérons des optimisations de performances et corrections de bugs
Avatar de Hinault Romaric Hinault Romaric - Responsable .NET http://www.developpez.com
le 29/07/2014 à 14:53
Java : le projet Valhalla validé par Oracle
pour préparer le terrain aux futures évolutions de la plateforme

Le projet Valhalla pour la plateforme Java prend forme. Annoncé il y a quelques mois par Brian Goetz, responsable du projet, celui-ci a été validé par Oracle.

Le projet Valhalla est une sorte d’incubateur pour le développement des futures fonctionnalités de la plateforme Java. Celui-ci va tenter d’améliorer le langage Java en l’affectant à différents niveaux, comme le typage, le langage, la machine virtuelle ou les bibliothèques. Le projet a pour vocation de définir une sémantique claire au niveau de la machine virtuelle pour permettre un support égal pour le langage Java et les autres langages recourant à la JVM.

La révision majeure dans la description actuelle du projet concerne les génériques. Les versions actuelles de Java ne permettent pas que les types génériques contiennent les types primitifs, et le compilateur Java supprime les détails du type contenu lors de la compilation. Cette approche de typage générique (effacement de type) représente l’un des aspects assez critiqués du système de types de Java.

Le projet Valhalla explorera une nouvelle approche pour la gestion des types génériques, et espère produire une nouvelle forme de typage générique, qui permettra aux développeurs d’appliquer des génériques aux types primitifs. Ainsi, dans les futures versions de Java, des déclarations telles que List<int> pourront être valides en Java.

D’autres modifications importantes sont également au menu comme les types valeurs, qui permettront une optimisation de la représentation mémoire des types tout en maintenant les mêmes performances. Les types valeurs auront pour objectif de combiner certaines propriétés des types primitifs et des types objets, pour donner naissance à un nouveau type, qui sera manipulé par le développeur comme un type primitif.

Les développeurs intéressés par le projet peuvent rejoindre sa liste de diffusion sur le site d’OpenJDK. Brian Goetz a souligné dans l’annonce que le projet est encore à un stade embryonnaire, donc la communauté ne devrait pas s’attendre à trouver une technologie développée au sein de Valhalla dans JDK 9, dont la version finale est prévue pour 2016.

Annonce du projet projet Valhalla

Description du projet Valhalla
Avatar de super_navide super_navide - Provisoirement toléré http://www.developpez.com
le 29/07/2014 à 16:45
Avec cette nouveauté :
D’autres modifications importantes sont également au menu comme les types valeurs, qui permettront une optimisation de la représentation mémoire des types tout en maintenant les mêmes performances. Les types valeurs auront pour objectif de combiner certaines propriétés des types primitifs et des types objets, pour donner naissance à un nouveau type, qui sera manipulé par le développeur comme un type primitif.

On peut dire adieu au C++ le point faible de java était ne pas pouvoire définir des types primtif comme les points et autre structure pour éviter d’allouer de la mémoire.
reste plus qu'a pouvoir surcharger les opérateurs comme + - / etc..
et on pourra écrire de jolie addition de vecteur V+U aussi rapide qu'en C++.
Avatar de Thyxx Thyxx - Membre régulier http://www.developpez.com
le 29/07/2014 à 17:03
Citation Envoyé par super_navide  Voir le message
On peut dire adieu au C++


Mais tout à fait...
Avatar de tomlev tomlev - Rédacteur/Modérateur http://www.developpez.com
le 29/07/2014 à 17:07
Citation Envoyé par super_navide  Voir le message
reste plus qu'a pouvoir surcharger les opérateurs comme + - / etc..

Bah dans ce cas tu peux faire du C#, qui fait tout ce que fait Java, a des types valeur et permet la surcharge d'opérateurs

(bah oui, je prêche pour ma paroisse, hein )
Avatar de benjani13 benjani13 - Membre expérimenté http://www.developpez.com
le 30/07/2014 à 1:17
Citation Envoyé par super_navide  Voir le message
On peut dire adieu au C++ le point faible de java était ne pas pouvoire définir des types primtif comme les points et autre structure pour éviter d’allouer de la mémoire.
reste plus qu'a pouvoir surcharger les opérateurs comme + - / etc..
et on pourra écrire de jolie addition de vecteur V+U aussi rapide qu'en C++.

Si les features du C++ t'interesse, pourquoi ne fais tu pas du C++ au lieu d'attendre que Java implémente ces features? Vous trouvez pas que c'est paradoxal? (le premier qui me répond "c'est pas faux" ).

Citation Envoyé par tomlev  Voir le message
Bah dans ce cas tu peux faire du C#, qui fait tout ce que fait Java, a des types valeur et permet la surcharge d'opérateurs

(bah oui, je prêche pour ma paroisse, hein )

+1

C#
Avatar de professeur shadoko professeur shadoko - Membre expérimenté http://www.developpez.com
le 30/07/2014 à 10:27
Citation Envoyé par super_navide  Voir le message
reste plus qu'a pouvoir surcharger les opérateurs comme + - / etc..

la surcharge d'opérateur a été refusée par l'équipe initiale de java pour éviter une confusion à la lecture du code.
Un des points fondamentaux de la philosophie initiale était: ce qui est compilé est ce qui est explicitement écrit ... malheureusement des évolutions ultérieures ont un peu contourné cette règle
mais la surcharge d'opérateur rend la lecture des codes C++ incroyablement difficile , et les programmeurs en abusent en violant allégrement la sémantique de l'opérateur.... vade retro satanas ...
(quoiqu'en Scala il y a un point de vue plus amusant sur la question, voir aussi en Groovy ... mais en Java j'espère que cette demande n'aboutira jamais )
edit: C# c'est la philosophie Microsoft: vous en voulez? alors en voilà! Peu importe si ça abouti à des formalismes peu en accord avec les règles du génie Logiciel (ou à des incohérences: je pense ici à la vision Microsoft de SQL qui donne un sens à des expressions illégales parce que les utilisateurs font souvent l'erreur ... alors ils donnent un sens à ce qui n'en a pas!)
Offres d'emploi IT
Développeur ruby on rails h/f
YesPark - Ile de France - Paris (75000)
Webmaster / support client
AQUENT - Ile de France - Paris (75000)
Business Consultant
Yodea Recrutement - Suisse - Genève

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil