Developpez.com

Club des développeurs et IT pro
Plus de 4 millions de visiteurs uniques par mois

Java : le projet Jigsaw se concrétise
Oracle passe à la mise en œuvre de la modularité dans Java 9

Le , par Hinault Romaric, Responsable .NET
Java aura droit à son système de modules. Le projet Jigsaw prend forme après plusieurs problèmes techniques qui ont entraîné son report et sa réimplémentation.

Pour rappel, le projet Jigsaw vise essentiellement à découper la bibliothèque d’exécution de base de Java en différents modules. Cela devrait permettre à une machine virtuelle Java (JVM) de fonctionner sans le support de certains packages de base.

Après un travail préliminaire qui avait abouti à une proposition en 2008, le système de modules du projet Jigsaw allait être l’une des principales innovations de Java 7. Le projet avait été ensuite reporté à Java 8, puis finalement, Oracle avait annoncé sa sortie avec Java 9, prévu pour début 2016.

Les principales raisons de ces reports étaient des problèmes techniques liés à la compatibilité. La mise au point d’un système de modularité dans le JDK est un véritable défi, à cause des dépendances qui existent entre les packages. Par exemple, java.beans à une dépendance vers java.applet, qui dépend à son tour de java.awt.

Les difficultés rencontrées avaient entraîné, en septembre dernier, la création d’un nouveau prototype de Jigsaw permettant d'explorer une approche simplifiée pour la réalisation des objectifs de ce projet. Une décision qui n'avait pas manqué de semer à nouveau le doute sur l'effectivité de Jigsaw.

Mark Reinhold, architecte en chef du groupe de la plateforme Java chez Oracle vient d'apporter de bonnes nouvelles par rapport à l’évolution du projet Jigsaw, qui est passé en phase 2. Après une phase exploratoire de plusieurs années, Reinhold annonce qu'il est temps de passer à la vitesse supérieure.

L'équipe en charge du projet va désormais se concentrer sur la mise en œuvre de Jigsaw pour JDK 9 et Java SE 9. Reinhold a rédigé un nouveau document qui présente les objectifs et les exigences du système, en prenant en compte les enseignements tirés du dernier prototype. Le projet devra :

  • rendre la plateforme Java SE et le JDK plus facilement extensible, pour cibler les petits appareils informatiques ;
  • améliorer la sécurité et la maintenabilité de la plateforme Java SE et du JDK ;
  • permettre d’améliorer les performances des applications ;
  • faciliter le développement et la maintenance des bibliothèques et grandes applications pour les développeurs.


Reinhold reste cependant prudent, car les difficultés sont encore énormes. « Jigsaw dans son ensemble apportera de gros changements au JDK. Il est important d'attendre que tout soit complètement finalisé avant de fusionner tout cela », a écrit Reinhold.

Le groupe de travail sur le projet a l'intention de procéder en quatre grandes étapes dont chacune aura droit à un JEP (JDK Enhancement Proposal). Les trois premières grandes étapes permettront de proposer une structure modulaire spécifique pour le JDK, de réorganiser le code du JDK et de procéder plus tard à la modularisation des binaires. La quatrième étape présentera le système de module proprement dit, sous une forme que les développeurs pourront utiliser pour d'autres programmes.

Mark Reinhold se veut confiant, mais jusqu'ici, il n'est pas encore certain que le projet Jigsaw sera effectif avec Java 9. Espérons que l'on n'aura pas encore droit à un nouveau report.

L'annonce de Mark Reinhold

Le nouveau document de spécification des objectifs et exigences

Et vous ?

Qu'en pensez-vous ? Êtes-vous impatient de voir Jigsaw dans Java ? Pourquoi ?

Craignez-vous un nouveau report ?


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 03/07/2014 à 13:38
Citation Envoyé par Hinault Romaric  Voir le message

Qu'en pensez-vous*? Êtes-vous impatient de voir Jigsaw dans Java*? Pourquoi ?

Changer le fonctionnement de la JVM à un niveau aussi fondamental n'est évidemment pas simple.

Est-ce que je suis impatient ? Moins qui'l y a quelques années, quand on se disait que Jigsaw pouvait peut-être sauver le développement desktop en Java... aujourd'hui, je suis plutôt curieux de voir le résultat. Mais si ça permet d'améliorer la modularité du code et les performances, c'est clairement bon à prendre. La vitesse de démarrage de la JVM, par contre, sur un serveur, c'est quand même beaucoup moins important que pour une application desktop ou mobile.

Citation Envoyé par Hinault Romaric  Voir le message
Craignez-vous un nouveau report*?

Ben.. Quand un informaticien dit "je ne suis pas sûr que ça sera prêt pour telle version / à telle date", on sait tous ce que ça veut dire, non ?
Avatar de tHE_fLAmMinG_mOE tHE_fLAmMinG_mOE - Membre habitué http://www.developpez.com
le 03/07/2014 à 17:19
Citation Envoyé par Hinault Romaric  Voir le message
Reinhold reste cependant prudent, car les difficultés sont encore énormes. « Jigsaw dans son ensemble apportera de gros changements au JDK. Il est important d'attendre que tout soit complètement finalisé avant de fusionner tout cela », a écrit Reinhold.

Cette phrase a été interprétée à l'envers. Dans le texte d'origine il est écrit :

it would be unwise to wait until it’s completely finished before merging any of it.

Ce qui est exactement l'inverse de ce qui est traduit...
Avatar de bruneltouopi bruneltouopi - Membre confirmé http://www.developpez.com
le 04/07/2014 à 12:46
C'est une bonne nouvelle S'il y'a des améliorations des performances c'est encore mieux.
Mais je suis toujours sceptique quant à la vitesse de developpement des Ingénieurs Oracle concernant JAVA.
Espérons que 2016 soit le bon.
Avatar de Tcharl Tcharl - Membre actif http://www.developpez.com
le 16/09/2014 à 10:20
Par contre, en terme de modularité au sein même des projets Java, il y a toujours OSGI qui est à mon sens la meilleure solution qui puisse et sera: pas moyen de changer pour une solution pas totalement adaptée au besoin.

Il y a une différence véritable entre démarrer une appli à moitié complète et rajouter des morceaux qui seront intégrés automatiquement au runtime.

d'ailleurs, c'est très bien spécifié dans la spec:

Post-build augmentation — It is not necessary to be able to integrate additional JDK modules into an existing run-time image.

Launch-time replacement — It is not necessary to be able to invoke a run-time image so that it appears to contain a version of a JDK module different from one already present, except as necessary to support upgradeable modules.

Run-time replacement — It is not necessary to be able to replace a JDK module with a different version of that module after a run-time image has been invoked.

Mix-and-match — It is not necessary to be able to configure the compiler or the run-time system to contain modules from different releases, or even different builds, of the JDK, except as necessary to support upgradeable modules.

Offres d'emploi IT
Analyste développeur
LITOO - Ile de France - Bois-Colombes (92270)
CDI Mantes la Jolie 78 Ingenieur dev LABVIEW confirmé
SETRI - Ile de France - Mantes la Jolie 78200
Consultant bi datastage (h/f)
Atos Technology Services - Ile de France - Bezons (95870)

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