Developpez.com

Le Club des Développeurs et IT Pro

Java 9 sera encore repoussé à cause de la controverse autour de Jigsaw

Mark Reinhold demande un délai supplémentaire de huit semaines

Le 2017-05-31 09:47:35, par Michael Guilloux, Chroniqueur Actualités
Sans surprise, Java 9 ne pourra pas être livré le 27 juillet prochain, la date de disponibilité générale qui a été annoncée dans le dernier calendrier proposé par Mark Reinhold, architecte en chef du JDK chez Oracle. C’est la conséquence des objections initiées par Red Hat et IBM et qui ont eu le soutien d’autres membres du comité exécutif du Java Community Process (JCP).

Red Hat a mis en avant plusieurs problèmes, notamment le fait que de nombreux cas de déploiement d'applications largement implémentées aujourd'hui ne sont pas possibles sous le système de modules implémenté dans Java 9 (Jigsaw), ou nécessiteraient une réarchitecture significative. L'éditeur de distributions GNU/Linux s'inquiétait également de la fragmentation de la communauté Java. En raison de capacités d'interopérabilité insuffisantes et d'autres restrictions, Red Hat craint que Jigsaw crée deux mondes de développement de logiciels Java : le monde Jigsaw et celui des autres technologies de l'écosystème (chargeurs de classes Java SE, OSGi, modules JBoss, Java EE, etc.). Pour ces différentes raisons, entre autres, Red Hat a décidé de ne pas soutenir le JSR 376 (Jigsaw) lors du vote du comité exécutif du JCP. Ayant reconnu les problèmes évoqués par Red Hat, IBM a également décidé de voter « Non » et demandé que les membres du groupe d’experts en charge du JSR 376 trouvent un meilleur consensus sur la spécification.

Le 8 mai dernier, par un vote de 13 « Non » contre 10 « Oui », les membres du comité exécutif du JCP n’ont pas approuvé le passage de la spécification à la prochaine étape du processus. « Ce vote ne signifie pas que le JSR 376 est mort ni que Jigsaw a été rejeté », explique Mark Reinhold dans un message dans la liste de diffusion OpenJDK. « Cela signifie seulement que le comité exécutif a soulevé un certain nombre de problèmes qu'ils veulent que le groupe d'experts du JSR 376 corrige. Les règles JCP donnent au groupe d’experts trente jours, jusqu'au 7 juin, pour soumettre une spécification révisée pour un deuxième vote du comité exécutif qui se terminera au plus tard le 26 juin », a-t-il ajouté.

Depuis le vote du comité exécutif du JCP, le groupe d’experts du JSR 376 a eu une série de discussions sur la manière de corriger les problèmes évoqués par le comité exécutif, d’après Mark Reinhold. Et il semble que des modifications sont en train d’être faites pour que ces préoccupations soient dissipées. Vu les contraintes de temps cependant, l’architecte en chef du JDK chez Oracle propose de repousser la sortie de Java 9, ce qui n’est pas surprenant. « Je suggère que dans le projet JDK 9, nous continuons à travailler vers l'objectif actuel consistant à produire une première build RC le 22 juin, mais ajustons la date de disponibilité générale afin de tenir compte du temps supplémentaire requis pour terminer le processus JCP. Pour être précis, je propose que nous déplacions la date de disponibilité générale de huit semaines, en passant du 27 juillet au 21 septembre », a-t-il suggéré.

La nouvelle proposition de Mark Reinhold a été soumise aux commentaires des committers du JDK 9. S’il n’y a aucune objection (ce qui devrait être le cas), ce sera le nouveau calendrier pour JDK 9.

Source : Mark Reinhold
  Discussion forum
85 commentaires
  • adiGuba
    Expert éminent sénior
    Envoyé par Matthieu Vergne
    Et c'est où qu'il prend en compte ce qui est faisable en interne ? Parce que bon, copier les autres a ses avantages, mais si c'est pour avoir en pratique le même rythme et se contenter de sortir des versions qui sont juste de moins en moins boguées, les utilisateurs resteront au rythme habituel pour éviter de perdre leur temps, en se contentant d'ignorer les versions intermédiaires.
    L'intérêt c'est que les versions intermédiaires pourront proposer de nouvelles fonctionnalités plus "simple", sans avoir à dépendre du temps de développement trop important d'une autre fonctionnalités.

    Par exemple si cela aurait été le cas on aurait déjà pu avoir le REPL, HttpClient avec support d'HTTP2, l'évolution de la classe Process, etc.

    Envoyé par Matthieu Vergne
    Ce qui veut dire qu'à terme il n'en restera qu'un seul. L'objectif, si on lit entre les lignes, et de supprimer l'un des deux. La question est alors de savoir lequel. Je vous le laisse en mille. Reste à voir ensuite l'évolution que ça engendrera, style pas en arrière sur les licences avec celui qui reste. En surface, ça semble génial, mais où sont les garanties ?
    Moi je vois plutôt çà dans le sens où çà leur permettra de proposer plus facilement leur JDK commerciale.

    S'ils tuent l'OpenJDK ils se prendront un gros bad-buzz, se retrouveront éjecté des distributions, et risqueraient de voir un fork...

    Envoyé par ParseCoder
    Dommage qu'Oracle n'ai pas choisit une license aussi libérale que la license du .NET Compiler Platform (Roslyn).
    C'est à dire ?
    On est sur du GPLv2 là je ne vois pas où est le problème...

    a++
  • kilroyFR
    Membre éprouvé
    Oracle ne faisant rien sans arriere pensée (il faut bien payer l'ile de l'insatiable ellison), du business, rien que du business dans cette strategie.
  • Uther
    Expert éminent sénior
    Envoyé par Matthieu Vergne
    La position que je prend est plus celle du questionnement : qu'est-ce qui empêcherait Oracle de prendre de telles mesures aux dépends de la communauté ? À l'heure actuelle, je ne vois pas de garantie qui permette de se dire "ça c'est une bonne chose". J'ai l'impression qu'à l'heure actuelle, c'est plus une question de pari/confiance.
    On peut toujours ce méfier, mais cette question n'a rien de particulier à la situation. On peut tout a fait la poser pour n'importe quel langage/société. Il n'y a pas plus de raison d'être sceptique qu'envers Microsoft, Google, Apple, Redhat, ...
  • sekaijin
    Expert éminent
    Bonjour,

    Java9 semble s'approcher. J'utilise Karaf de longue date et après avoir relu le sujet, je pense que la notion de module de java9 et de module de OSGI sont suffisamment différentes pour ne pas être contradictoires.

    J'ai vu que beaucoup de questions se posaient autour des deux notions de module.
    De que j'ai conclus des mes essais avec le jdk9 et de mon expérience Karaf c'est que nous ne sommes pas du tout dans le même scope, bien qu'il y ait des usages qui se recouvre.

    Je veux faire une application découpée en modules pour faciliter l'évolution la maintenance, etc. Mais que je lance comme un tout. Dans ce cas tant la notion de module de java9 que celle de OSGI peuvent faire l'affaire.

    Je veux une application qui fonctionne comme un conteneur dans lequel je veux déployer des modules à la volée en arrêter les relancer les supprimer, etc. je veux qu'ils puissent interagir, se reconnaitre, etc. là le jdk9 ne le permet pas.

    Pour moi l'apport de la modularité dans java9 permet essentiellement d'obtenir un runtime adapté au besoin de l'application. de définir des sous-ensembles réutilisables d'appli en appli. Alors que OSGI est plus un conteneur, et/ou un système de plug-in à chaud.

    Je vais donc continuer à utiliser Karaf, aider à le faire fonctionner sur java 9. quant à l'usage que je fais du tout forcément se posera la question module java9 ou bundle OSGI. ce qui semble se dessiner c'est que les librairies de base vont probablement devenir des modules java9 alors que les composants de l'application resteront des bundles.

    A+JYT
  • Matthieu Vergne
    Expert éminent
    Envoyé par Michael Guilloux
    « En m’appuyant sur les modèles de publication utilisés par d'autres plateformes et par diverses distributions de système d'exploitation, je propose qu'après Java 9, nous adoptions un modèle strict et basé sur le temps avec une nouvelle version de fonctionnalités tous les six mois, des mises à jour chaque trimestre et une LTS tous les trois ans », peut-on lire dans son billet.
    Et c'est où qu'il prend en compte ce qui est faisable en interne ? Parce que bon, copier les autres a ses avantages, mais si c'est pour avoir en pratique le même rythme et se contenter de sortir des versions qui sont juste de moins en moins boguées, les utilisateurs resteront au rythme habituel pour éviter de perdre leur temps, en se contentant d'ignorer les versions intermédiaires.

    Envoyé par Michael Guilloux
    L'objectif est de rendre l'OpenJDK et le JDK d'Oracle interchangeables. « Bien que nous sachions qu'il y aura d'abord des différences, notre intention est que, après quelques versions, il n'y ait plus de différences techniques entre les builds OpenJDK et les binaires Oracle JDK », a déclaré Smith.
    Ce qui veut dire qu'à terme il n'en restera qu'un seul. L'objectif, si on lit entre les lignes, et de supprimer l'un des deux. La question est alors de savoir lequel. Je vous le laisse en mille. Reste à voir ensuite l'évolution que ça engendrera, style pas en arrière sur les licences avec celui qui reste. En surface, ça semble génial, mais où sont les garanties ?
  • Matthieu Vergne
    Expert éminent
    Envoyé par adiGuba
    S'ils tuent l'OpenJDK ils se prendront un gros bad-buzz, se retrouveront éjecté des distributions, et risqueraient de voir un fork...
    Fait converger les deux, après convergence tu justifies la suppression de l'un des deux avec les meilleurs arguments du monde : les deux sont équivalents, inutile de bosser deux fois, on est une structure solide et allons donc prendre en main le projet entièrement en embauchant les gens compétents qui travaillent sur l'autre. Cela passe donc notamment par l'acquisition des compétences clés de l'autre projet pour bosser sur le leur (pour rappel, on parle d'avoir OpenJDK en GPL, pas le JDK d'Oracle). De là, petite régression par petite régression, pour éviter que ça n'arrive trop vite, à coup de messages "oui mais comprenez, on fait de notre mieux mais c'est pas facile", le JDK officiel fini par perdre les attraits qu'on vend ici, et de là des voix recommencent à monter et à parler de forker le projet. Tu gères ça bien jusqu'à ce que la différence soit trop forte pour justifier la création d'un fork... sauf que trop tard, le JDK actuel n'est pas forkable, car c'est celui sous GPL qui a été arrêté il y a maintenant X années, et on doit donc repartir d'une version obsolète pour forker. Ajoute à cela que les experts du sujet sont désormais principalement chez Oracle et (potentiellement) contraint de par leur contrat de ne pas participer au projet concurrent, pour des raisons tout à fait normale de non concurrence, sous peine de licenciement, avec des poursuites judiciaires pour ceux qui n'auraient pas peur du licenciement.

    Si tu t'organises pour tuer le projet à petit feu, d'ici à ce qu'un fork se recrée, tu auras déjà eu le temps de mettre à bas les forces vives concurrentes et d'établir une dépendance à ton propre JDK.

    Évidemment, ce n'est que de la spéculation, qui plus est particulièrement pessimiste. Mais je ne vois pas ce qui l'empêcherai à l'heure actuelle.
  • adiGuba
    Expert éminent sénior
    Oui mais s'ils comptent "tuer" OpenJDK ils peuvent le faire dès maintenant.
    Pas besoin d'y ajouter des fonctionnalités...

    L'intérêt au contraire c'est de déployer OpenJDK au maximum, et de pouvoir proposer leur offre commerciale derrière.
  • Matthieu Vergne
    Expert éminent
    Envoyé par adiGuba
    Oui mais s'ils comptent "tuer" OpenJDK ils peuvent le faire dès maintenant.
    Pas besoin d'y ajouter des fonctionnalités...
    Est-ce qu'ils peuvent le faire sans risquer gros à l'heure actuelle ? Sa réputation n'est pas si bonne j'ai l'impression, alors que là on a l'occasion de lui redorer le blason, de quoi offrir une meilleure marge de manœuvre pour arriver à ces fins. Un peu comme quand le gouvernement propose un truc complètement irréaliste pour faire style qu'il a fait un geste en proposant un truc moins fort mais tout aussi scandaleux. L'idée elle est là : si on arrive à la fin avec dans un état équivalent à ce qu'on a aujourd'hui, mais avec un concurrent en moins bonne position, c'est tout bénèf.
  • Mimoza
    Membre averti
    Ça annonce rien de bon pour la qualité du la première version …
  • sekaijin
    Expert éminent
    les premières releases des versions majeures sont toujours difficiles.