Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le projet Jigsaw s'invite dans Java
Les développeurs peuvent tester la modularité dans la dernière « Early Access » du JDK 9

Le , par Hinault Romaric

196PARTAGES

3  0 
Le projet Jigsaw fait, enfin, ses premiers pas dans le JDK. Les développeurs peuvent tester cette nouveauté dans une récente version de la « Early Access » du JDK 9.

L’objectif du projet Jigsaw est de concevoir et mettre en œuvre un système de modules standards pour Java SE, et d’appliquer ce système pour la plateforme elle-même et pour le JDK. Le projet Jigsaw permettra de 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.

À la suite d'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évue pour début 2016.

Oracle fait face à plusieurs défis dans le développement de ce projet qui permettra de redéfinir l’architecture de la plateforme. La principale difficulté à laquelle ont fait face les ingénieurs d’Oracle était liée aux dépendances qui existent entre les packages.

Cette préversion est basée sur Jigsaw m2, qui implémente la JEP (JDK Enhancement Proposals) 200 (qui définit la structure modulaire du JDK), JEP 201 (qui réorganise le code source du JDK sous forme de module) et JEP 220 (qui restructure le runtime du JDK et JRE pour soutenir les modules).

Les développeurs en charge du projet ont débuté avec la JSR (Java Specification Requests) 376, qui permettra de rendre le système de module effectif dans la plateforme Java.

Il faut noter que le passage à un système de module aura également un impact important sur les outils de développement et les Framework. « Nous sommes conscients que ces changements vont briser certaines applications, en particulier les IDE et les outils de développement qui s’appuient sur la structure interne du JDK. », écrit Mark Reinhold, architecte en chef du groupe de la plateforme Java chez Oracle, dans un billet de blog. « Nous pensons cependant que les améliorations des performances, de la sécurité et de la maintenabilité donnent un sens à ces changements. »

Les ingénieurs d’Oracle ont d’ores et déjà contacté les développeurs des principaux environnements de développement pour s’assurer qu’ils ont pris connaissance de ces changements et sont prêts, si nécessaire, à travailler avec ceux-ci.

Mark Reinhold avait déjà fait savoir qu’avec Jigsaw, le format JAR n’avait plus sa place dans le système d’exécution de Java. « Le format JAR a fait son temps, c'est le moment de passer à autre chose », avait affirmé celui-ci. La plateforme Java continuera, cependant, à prendre en charge et à exécuter les applications empaquetées dans les fichiers Jar.

En plus de l’intégration du projet Jigsaw, des modifications ont été également apportées à certaines JEP. Il s’agit notamment de la JEP 158 (Unified JVM Logging), qui introduit un système d’enregistrement commun pour toutes les composantes de la machine virtuelle Java. Cette JEP a été fortement influencée par ce qui existe dans la machine virtuelle JRockit d’Oracle.

La JEP 165 (Compiler Control) a aussi eu droit à des améliorations, tout comme la JEP 214 (Remove GC Combinations Deprecated in JDK 8) et la JEP 213 (Milling Project Coin).

La « Early Access » de JDK 9 est disponible en téléchargement sur le site du projet.

Télécharger la « Early Access » du JDK 9

Source : Billet de blog de Mark Reinhold

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de adiGuba
Expert éminent sénior https://www.developpez.com
Le 11/05/2015 à 11:51
Citation Envoyé par yahiko  Voir le message
Le principal souci des applets Java, en plus de mettre trois plombes à se charger, c'est que d'abord c'est ultra moche au sein d'une page Web.

Je ne parlais pas d’insérer des applets, mais de pourvoir utiliser du Java à la place du JavaScript.

Le problème de lancement des applets disparait si la JVM est inséré dans le navigateur (comme la machine virtuelle JavaScript).
Quand aux différentes couches UI il n'en serait même pas question puisque je parle d'un Java "minimum".
Grosso-modo on aurait accès uniquement aux packages de base (java.lang, java.util), et à un package "java.browser" permettant de communiquer avec le navigateur.

Toute la partie UI passerait pas une manipulation du DOM comme on le fait actuellement en JavaScript.
Grosso-modo au lieu de faire :
Code HTML : Sélectionner tout
<script type="text/javascript" src="/script.js"></script>
Code JavaScript : Sélectionner tout
1
2
3
4
5
  
document.getElementByID("title").innerText = "Titre de mon application"; 
document.getElementByID("button").addEventListener("click", function(e) { 
    window.alert("click on button"); 
}


On pourrait faire la même application en Java :
Code HTML : Sélectionner tout
<script type="application/java" src="/archive.jar"></script>
Code Java : Sélectionner tout
1
2
3
4
5
6
  
Document document = Browser.getDocument(); 
document.getElementByID("title").setInnerText("Titre de mon application"); 
document.getElementByID("button").addEventListener("click", (e) -> { 
    Window.alert("click on button"); 
}


Citation Envoyé par yahiko  Voir le message
Quand au potentiel énorme, avec l'amélioration de JavaScript tant côté serveur que côté client, j'ai du mal à voir l'énormité du potentiel des applets.

Avoir du code typesafe et un vrai langage bien pensé.

Citation Envoyé par yahiko  Voir le message
Oui, en fait tu veux que la verbosité et la rigidité contre-productive de Java soit transposée côté navigateur...

JavaScript c'est bien pour foutre une ou deux animations sur une page...
Mais quand tu développes une application un tant soit peu consistant c'est agréable d'avoir un langage qui ne vas pas te pêter à la gueule pour un oui ou pour un non.
Je revis depuis que je fais du GWT et que mon JavaScript se limite à une ligne par-ci par-là...

a++
2  0 
Avatar de tchize_
Expert éminent sénior https://www.developpez.com
Le 11/12/2014 à 15:09
Jusqu'à présent, la compatibilité a toujours été assurée en java, je ne vois pas ce qui te fait penser que ce ne serait plus le cas.
1  0 
Avatar de Washmid
Membre averti https://www.developpez.com
Le 07/05/2015 à 17:53
Citation Envoyé par MikeRowSoft Voir le message
Je me demande bien comment fonctionne cette machine virtuelle.
La machine virtuelle : http://jmdoudoux.developpez.com/cour...eloppons/java/

Citation Envoyé par MikeRowSoft Voir le message
Je crois qu'il y a des fichiers exécutables pour l'intégration avec les systèmes d'exploitations, mais pas de scripts pour une interaction direct comme pour JavaScript ou Visual Basic Script ou Script Shell ou autres.
On peut créer des exécutables par plateforme (.exe) mais aussi exécuter des scripts (javascript, groovy, python etc.) pas de soucis à ce niveau là. La JVM ne fait pas tourner qu'un langage ! http://en.wikipedia.org/wiki/List_of_JVM_languages

Citation Envoyé par MikeRowSoft Voir le message
Ils ont une priorité défini, même si ils peuvent la changé à leurs guises dans certains cas.
Le Java Community Process a son mot à dire : http://fr.wikipedia.org/wiki/Java_Community_Process

En espérant t'avoir éclairé
1  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 08/05/2015 à 10:29
Comment améliorer les fichiers de Properties ? Cela a toujours été un fichier plat contenant des paires clé/valeur de chaine depuis le JDK 1.0. Pour des notions plus avancés il y a notamment les fichiers XSD et génération de classes JAXB, qui sont certes lourd à mettre en place, mais je n'ai pas compris l'alternative.
1  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 11/05/2015 à 11:06
Je ne crois pas que l'Applet reviendra sur le marché de sitôt, son nom a trop été souillé.
Et puis j'ai remarqué qu'il y a toujours un problème lorsqu'il est question de faire tourner une application qui nécessite une VM via le navigateur (Applet, Silverlight, Flash ...).
J'aurais pour ma part apprécié d'avoir comme remplaçant de JS un Java très light (pour son paradigme très Objet et son typage explicite forcé).
1  0 
Avatar de yahiko
Rédacteur/Modérateur https://www.developpez.com
Le 11/05/2015 à 11:19
Il existe des transpileurs qui permettent d'écrire dans un langage de départ en paradigme Objet ou autre d'ailleurs, puis d'avoir un code en sortie en JavaScript, interprétable par tous les navigateurs.

Il y a Scala, Dart ou TypeScript par exemple. On a ainsi les avantages d'un langage typé et/ou orienté objet tout en ayant la portabilité de JS sur les navigateurs.

Pas besoin d'un Java light donc. CQFD
1  0 
Avatar de bruneltouopi
Membre confirmé https://www.developpez.com
Le 11/12/2014 à 13:59
J'espère que ce changement au vu de son impact,Oracle va prévoir des processus de migrations surtout pour des applications en production.
Sinon je vois déjà pleins d'entreprises qui resteront dans le JDK 8.
0  0 
Avatar de
https://www.developpez.com
Le 07/05/2015 à 15:30
Je me demande bien comment fonctionne cette machine virtuelle. Je crois qu'il y a des fichiers exécutables pour l'intégration avec les systèmes d'exploitations, mais pas de scripts pour une interaction direct comme pour JavaScript ou Visual Basic Script ou Script Shell ou autres. Je comprend mieux pourquoi Java... Ils ont une priorité défini, même si ils peuvent la changé à leurs guises dans certains cas.
0  0 
Avatar de
https://www.developpez.com
Le 08/05/2015 à 0:11
Citation Envoyé par Washmid Voir le message


En espérant t'avoir éclairé
Merci, mais je connais déjà cela. Ça ne m'a pas éclairer au sujet l'analyse syntaxique et grammaticale en encore moins au sujet du contenu des dossiers Java. Je crois pas que cela fasse parti de beaucoup de cours universitaires ou de cycles d'ingénieurs, encore moins de B.T.S. ou formations tiers. Cela ce rapproche plus de la certification.
0  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 08/05/2015 à 9:40
Toujours pas d'amélioration sur les Properties après tant d'années. C'est peut être qu'on s'est habitué à l'idée que c'était le travail d'un IDE de générer les 50-200 lignes de plomberie nécessaires aux objets utilisés comme conteneur de données.
Pas non plus de named arguments, de nouveau on va demander à l'IDE de générer un parameter object et une sorte de builder bien lesté. Deux classes pour faire ce qu'une simple syntaxe "name = Jean, age = 10" aurait permis, la sécurité en moins puisqu'on peut toujours oublier de renseigner une propriété dans un builder.

C'est fou mais j'ai l'impression que la puissance des outils de développement a poussé SUN et Oracle a se détourner complètement des lourdeurs à l'écriture de code java.
0  0