IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Oracle lance une nouvelle tentative pour intégrer la modularité à Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut Oracle lance une nouvelle tentative pour intégrer la modularité à Java
    Oracle lance une nouvelle tentative pour intégrer la modularité à Java
    une nouvelle implémentation du projet Jigsaw voit le jour

    Java n’est pas prêt à être doté d’un système de modules grâce au projet Jigsaw. Mark Reinhold, architecte en chef du groupe de la plateforme Java chez Oracle vient d’annoncer le redémarrage du projet.

    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 a été reporté ensuite à Java 8, puis finalement, Oracle a annoncé sa sortie avec Java 9, annoncé pour 2015.

    Les principales raisons de ces reports sont 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.

    Face aux difficultés rencontrées, Mark Reinhold vient d’annoncer la création d’un nouveau prototype de Jigsaw pour explorer une approche simplifiée pour la réalisation des objectifs de ce projet.

    La nouvelle implémentation devra relever comme principal défi la mise au point d’une modularité sans un mode « module » distinct comme c’est le cas avec la version actuelle (qui a été la source de plusieurs incompatibilités), ceci sans faire de résolution de dépendances (caractéristique offerte par des outils comme Maven, Ivy ou Gradle).

    Les principales décisions de conception porteront également sur la mise sur pied d’un système de modules statiques (comme Maven) ou dynamiques (comme OGSI), la représentation des métadonnées des dépendances dans des fichiers et la nécessité d’utiliser des dépendances déclaratives (comme Maven).

    Le nouveau projet est basé sur un clone de l’actuel Jigsaw implémenté dans Java 8. Toutes les décisions de conception peuvent encore être changées pendant le processus de développement.


    Source : message de Mark Reinhold


    Et vous ?

    Que pensez-vous du projet Jigsaw et des multiples problèmes rencontrés avec celui-ci ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Invité de passage

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Par défaut
    Il leur aura fallu plus de 5 ans pour réaliser que leur proposition n'était pas viable. Ca commence à ressembler à l'Arlésienne...

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Sans la modularisation de la JVM, je ne vois aucun intérêt à Jigsaw, sauf peut-être la visibilité inter-package (si elle est maintenue). Reste tout de même à voir à quoi ca va ressembler au final.
    D'ailleurs il y a une description du fonctionnement de ce "nouveau" Jigsaw ?


    Je me demande quand ils auront le courage de couper la rétrocompatibilité. A la publication de chaque version majeure (voir mineure), on croise les doigts pour qu'il y ait un minimum d'impact sur nos codes.
    Au pire ils pourraient essayer de se limiter à deux version antérieures. Vu le rythme des publications, ca permettrait d'introduire quelques modifications dans le bytecode (et autres) pour avoir un support minimaliste des futures fonctionnalités.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  4. #4
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Cela me conforte qu'on aurait bien plus besoin d'un java 2 incompatible que d'un java 1.8, 1.9, 1.250. C'est vraiment affligeant d'entendre que l'on est coincé avec jigsaw à cause de quelques packages en peau de casserole, enfin ça montre aussi que le JDK lui même est sacrément emmêlé. J'ai peur qu'on se retrouve avec un maven au rabais 6 ans après, la modularité et les dépendances sont un important problème dans les projets java qui mériterait une vraie solution plutôt qu'un compromis.

  5. #5
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par _skip Voir le message
    mériterait une vraie solution plutôt qu'un compromis.
    Le backward compatibility force à créer des compromis en Java. Les annotations qui disparaissent après compilation, de même que pour les generics qui disparaissent et laissent place à un cast d'Object, les syntaxes sucrées pour le try-with-ressources et lambdas...
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  6. #6
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Le backward compatibility force à créer des compromis en Java. Les annotations qui disparaissent après compilation, de même que pour les generics qui disparaissent et laissent place à un cast d'Object, les syntaxes sucrées pour le try-with-ressources et lambdas...
    Je sais bien, et c'est pour cela que je pense de plus en plus qu'un java 2 serait une solution alléchante. Pas forcément pour les gros comptes du JCP dont le seul but est de sécuriser leurs propres investissements mais pour les nouveaux projets.
    Cette backward compatibility au nom de laquelle on a tant sacrifié, je ne suis pas sûr qu'on l'ait vraiment toujours dans la pratique.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par _skip Voir le message
    Je sais bien, et c'est pour cela que je pense de plus en plus qu'un java 2 serait une solution alléchante. Pas forcément pour les gros comptes du JCP dont le seul but est de sécuriser leurs propres investissements mais pour les nouveaux projets.
    Même les nouveaux projet ont besoin de la compatibilité. Aujourd'hui, rares sont les projets qui ne réutilisent pas spring, hibernate, quartz, apache commons et d'autres librairies, open source ou closed source. Si tu refuse la compatibilité avec l'existant, tu peux presque être sur que ta techno ne sera pas adoptées facilement. Et si tu ne me crois pas, regarde javafx. Sur papier, c'est génial. Mise à jour automatique de l'interface en fonction des données, composants graphiques et démos magnifique. Mais concrètement, pour le java fx 1, tu ne pouvais pas incorporer de code java, fallait tout recoder. Résultat, j'attends toujours de voir de belles applications desktop en javafx. Les gens préfèrent se baser sur netbeans ou eclipse RCP, apache pivot ou simplement swing. Il sacrifient les belles interface pour pouvoir utiliser les outils existants.

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Les annotations qui disparaissent après compilation,
    Les annotations ne disparaissent pas après la compilation.
    Par défaut elles sont bien stockées dans le fichier *.class, mais inaccessible via l'API de reflection. Cela permet de les utiliser dans les outils de manipulation de classes.

    Mais on peut changer ce comportement pour via l'annotation @Retention


    Citation Envoyé par Gugelhupf Voir le message
    les syntaxes sucrées pour le try-with-ressources et lambdas...
    Les lambdas ne sont pas tout à fait du sucre syntaxique.
    Cela implique pas mal de changement au niveau de la JVM...

    Mais sinon je ne vois pas le mal à utiliser du sucre syntaxique.
    Quel problème y-a-t-il avec cela pour le try-with-ressources ??? Je n'en vois aucun !



    Citation Envoyé par Gugelhupf Voir le message
    Le backward compatibility force à créer des compromis en Java.
    En même temps cela force à réellement à l'impact d'une fonctionnalité, et d'en mesurer chaque aspect avant de les implémenter.

    Les Generics sont perdus à la compilation, mais offre à 95% les mêmes fonctionnalités tout en permettant une rétrocompatibilité avec le code existant.
    Je doute que la migration existante aurait été si rapide si la totalité des librairies utilisant l'API de Collection serait devenu obsolète...



    Perso, pour avoir suivi quelques discussions sur les mailing-lists du projet "Coins" ou sur les lambda, j'ai été surpris de voir les réflexions prise en compte avant l'intégration d'une features, en particulier sur les impacts et implications que cela pourrait apporter.


    Après l'évolution du langage peut sembler plus lente par rapport à .NET par exemple, mais personnellement elle me semble aussi plus réfléchi par certains points...


    a++

Discussions similaires

  1. Java : Oracle adopte une nouvelle nomenclature pour les mises à jour du JDK
    Par Cedric Chevalier dans le forum Général Java
    Réponses: 8
    Dernier message: 20/05/2013, 18h58
  2. Réponses: 2
    Dernier message: 03/11/2010, 00h38
  3. Nordea lance une nouvelle application iPhone pour ses fonds
    Par Mejdi20 dans le forum Communiqués
    Réponses: 0
    Dernier message: 11/10/2010, 23h27
  4. Réponses: 0
    Dernier message: 03/05/2010, 15h58
  5. Réponses: 0
    Dernier message: 20/04/2010, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo