Quelle édition du JDK (Java Development Kit) utilisez-vous ?
Et quelles sont les raisons de votre choix ?
Le JDK (Java Development Kit) désigne l'ensemble des bibliothèques logicielles de base de Java et les outils avec lesquels le code Java peut être compilé, transformé en bytecode destiné à une machine virtuelle Java. Il existe aujourd’hui des implémentations de la spécification Java SE (Java Standard Edition) de différents fournisseurs dans le monde tels que Azul, Eclipse, IBM, Red Hat, SAP, etc., et Oracle, ce dernier étant le plus influent d’entre eux tous. La grande majorité des autres fournisseurs se basent sur le projet OpenJDK pour fournir leurs implémentations du JDK tandis qu'Oracle JDK est entièrement développé par Oracle Corporation. Cela dit, avec les récents changements apportés à la distribution et au support d’Oracle JDK, les développeurs se posent de nombreuses questions sur l’avenir avec Oracle JDK.
Le kit de développement d’Oracle a reçu son nom actuel après le rachat de Sun Microsystems par Oracle en 2010. Auparavant, il s'appelait SUN JDK et il s'agissait de la mise en œuvre officielle du langage de programmation Java. Le projet OpenJDK, une initiative de Sun Microsystems avant son rachat, est venu après dans le but d'offrir un kit de développement gratuit et open source, quel que soit l’usage auquel il est destiné. Autrement dit, il s’agit d’une implémentation gratuite et open source de Java SE Platform Edition. Il est développé par Oracle, OpenJDK et la communauté Java. Toutefois, les entreprises de premier plan telles que Red Hat, Azul Systems, IBM, Apple Inc. et SAP AG participent également activement à son développement.
Selon les développeurs, il n’y a pas une grande différence à noter entre les deux kits, car le processus de construction du JDK est basé sur celui d’OpenJDK. Certaines distributions Linux telles que Fedora, Ubuntu et Red Hat Enterprise Linux fournissent OpenJDK comme implémentation Java SE par défaut. Cependant, en termes de performance, certains préfèrent Oracle JDK. D’après eux, ce dernier est bien meilleur en termes de réactivité et de performance JVM. Ils expliquent cela par le fait qu'OpenJDK livre très souvent des versions du kit, ce qui pourrait être source de nombreux problèmes de stabilité ou de performance.
Depuis la version 11 du JDK d’Oracle, l’entreprise a modifié sa licence de distribution et d’utilisation de ses produits notamment dans le cadre d’une utilisation commerciale. Il faudra désormais souscrire à un abonnement mensuel, car Oracle a fait disparaître la licence permanente. La société avait également décidé qu’à partir de janvier 2019, elle cessera de fournir des mises à jour publiques pour Oracle JDK 8 encore utilisé par beaucoup de développeurs et d’entreprises clientes ou non d’Oracle. Un geste de l’entreprise que beaucoup avaient jugé déplacé ne voyant pas pourquoi il faudrait payer pour utiliser Java.
Ainsi, Oracle fournira des mises à jour publiques d’Oracle JDK 8 jusqu’en décembre 2020 au moins pour un usage personnel et à partir de janvier 2019, les mises à jour sont désormais payantes pour un usage commercial. À ce stade, les utilisateurs peuvent soit utiliser un plan d'assistance payé, soit utiliser une distribution binaire Java SE 8/OpenJDK 8 d'un autre fournisseur. À noter qu’Oracle fournit deux types d'implémentations : Oracle JDK (propriétaire et gratuit seulement pour le développement) et Oracle OpenJDK (libre et gratuit pour tout usage), ce dernier se retrouvant sans support au-delà de 6 mois. Autrement dit, Oracle produit maintenant deux fichiers binaires JDK : le JDK Oracle traditionnel et une version Oracle OpenJDK.
Vous pouvez tout de même continuer à utiliser Oracle JDK 8 indéfiniment sans mises à jour, mais les risques sont élevés. Par la suite, depuis l’annonce des nombreux changements d’Oracle Corporation, les avis sont mitigés dans la communauté, car beaucoup se demandent s’il faut adopter totalement une des nombreuses implémentations de l’OpenJDK. Il existe maintenant un grand nombre de fournisseurs Java SE/OpenJDK qui fournissent des mises à jour et/ou des options de support technique payantes. Si vous souhaitez par exemple des mises à jour de Java SE 8 après janvier 2019, vous pouvez utiliser une distribution binaire OpenJDK d'un fournisseur OpenJDK, à savoir des distributions Linux, AdoptOpenJDK, Azul, IBM, Red Hat, etc. Passons en revue ce que proposent quelques-uns de ces fournisseurs :
AdoptOpenJDK
AdoptOpenJDK est une communauté de membres du groupe d'utilisateurs Java (JUG), de développeurs et de fournisseurs Java (notamment Azul, Amazon, GoDaddy, IBM, jClarity, Microsoft, Pivotal et Red Hat) qui défendent OpenJDK. AdoptOpenJDK fournit des distributions binaires OpenJDK (HotSpot et Eclipse OpenJ9) pour une très large gamme de plateformes (Linux, Mac, Windows 32/64, Arm 32/64, Solaris, AIX, PPC, s390 et plus). AdoptOpenJDK n'offre pas de support payant. Il fournit simplement des fichiers binaires bien testés, selon la communauté (dont certains sont de type TCK) issus de projets en amont OpenJDK et Eclipse OpenJ9.
IBM SDK Java
IBM fournit des kits JDK natifs pour AIX, Linux (sur x86, Power, zSystems), z/OS et IBM i. IBM propose les versions d'IBM SDK Java SE à utiliser avec les produits ou plateformes IBM et à l'usage des développeurs de developerWorks (un centre de ressources techniques d’IBM). IBM fournit également des fichiers binaires OpenJDK (avec Eclipse OpenJ9) construits et testés sur AdoptOpenJDK. Pour Java SE 7 et 8, IBM fournit toujours des mises à jour de sécurité et des corrections de bugs. Le cycle de vie du support IBM continuera d'être mis à jour. Sur la base du nouveau calendrier de publication de Java SE, IBM a annoncé que les versions non-LTS seraient disponibles en tant que fichiers OpenJDK avec OpenJ9 d'AdoptOpenJDK.
Zulu
Azul fournit des fichiers binaires OpenJDK (Zulu) ainsi qu'une plateforme Java spécialisée (Zing). Azul offre une option à toutes les entreprises qui ne souhaitent pas ignorer toutes les versions de Java SE entre les versions de LTS, mais ne peuvent pas passer à la version la plus récente tous les 6 mois. Ensuite, pour le support de toutes les versions de LTS, où Azul fournit une année de support supplémentaire par rapport à Oracle, Azul prend en charge les versions dites de support à moyen terme (MTS) pour leur JDK Zulu. Ici, vous pouvez acheter un support commercial pour chaque seconde version de Java SE, qu’il s’agisse ou non de LTS. La durée de support de ces versions est différente.
Azul essaie de fournir une bonne plage de temps pour préparer une migration vers la prochaine version et définit 3 durées différentes pour la prise en charge des versions de Java SE. L’assistance commerciale de Zulu n’est pas définie par processeur comme c’est le cas chez Oracle, mais en fonction du nombre de systèmes. Un système est défini comme un serveur physique ou virtuel. La seule différence entre le support standard et premium est la disponibilité du support. En achetant une assistance premium, vous pouvez appeler Azul 24x7.
Red Hat OpenJDK
La version OpenJDK de Red Hat est une implémentation libre et open source de la plateforme Java Standard Edition (Java SE). Oracle JDK et OpenJDK sont fonctionnellement très similaires, mais présentent des différences majeures en termes de support. La version OpenJDK de Red Hat, a décrit l’entreprise, est une excellente alternative et une implémentation multiplateforme. Red Hat OpenJDK est pris en charge sous Windows et RHEL (Red Hat Enterprise Linux), ce qui vous permet de normaliser sur une seule plateforme Java sur un cloud hybride, de centre de données et de bureau. Pour les versions LTS, Red Hat prend en charge OpenJDK 11, ainsi que OpenJDK 7 et 8.
Amazon Corretto
Amazon Web Services (AWS) est également engagé dans OpenJDK. Depuis fin 2018, il a lancé Amazon Corretto, sa distribution basée sur OpenJDK 8, avec prise en charge à long terme au moins jusqu'en juin 2023. L'engagement d'Amazon en faveur d'OpenJDK et de le maintenir libre pour la popularité de Java parmi les développeurs AWS. Amazon Corretto, qui correspond à OpenJDK 8, fournit plus de quatre ans de support à long terme, au-delà de ce qu'Oracle propose actuellement pour la distribution de OpenJDK 8. Cela garantit que le support OpenJDK restera gratuit au moins aussi longtemps.
En d’autres termes, Amazon Corretto est une diffusion sans coût, multiplateforme et prête pour la production du kit de développement OpenJDK. Corretto est fourni avec une prise en charge longue durée qui inclut des améliorations de performances et des correctifs de sécurité. Corretto est certifié compatible avec la norme Java SE. Grâce à Corretto, vous pouvez développer et exécuter des applications Java sur plusieurs des systèmes d'exploitation les plus courants, notamment Linux, Windows et Mac OS.
SapMachine
Enfin, il serait bien de notifier que SAP a également créé et maintient le projet SapMachine, une version en aval du projet OpenJDK. Il est utilisé pour créer et gérer une version d'OpenJDK prise en charge par SAP pour les clients et partenaires SAP souhaitant utiliser OpenJDK pour exécuter leurs applications.
Eclipse OpenJ9
De son côté, Eclipse propose OpenJ9, développée initialement par IBM et transmis à la fondation Eclipse en 2017. OpenJ9 est une version OpenJDK contenant une machine virtuelle Java de qualité entreprise et open source. On lui loue les caractéristiques telles qu’un faible encombrement de la mémoire, un temps de démarrage rapide et un débit élevé pour les applications.
En somme, les versions Oracle JDK et Oracle OpenJDK semblent identiques, mais sont concédées sous licence de différentes manières (commerciales et GPLv2 + CE, respectivement). Les versions Oracle JDK/Oracle OpenJDK et OpenJDK d'autres fournisseurs seront créées à partir de la même source pour les six premiers mois de mises à jour et doivent être interchangeables pour cette période. D'autres fournisseurs OpenJDK continueront à créer des fichiers binaires à partir du projet de mises à jour OpenJDK. Les différentes implémentations des différents fournisseurs open source peuvent être différentes des versions Oracle JDK et Oracle OpenJDK.
Pour cela, Red Hat a indiqué que la prise en charge de Java sans le support des ingénieurs d'Oracle est un véritable défi pour la communauté Java. « Garder Java à jour en l’absence de support des ingénieurs Oracle sera un défi pour la communauté Java, mais nous pensons que c’est un défi que nous devrions relever avec enthousiasme. C'est une occasion en or pour nous (la communauté) de montrer ce que nous pouvons faire. Un projet de mises à jour OpenJDK véritablement ouvert et transparent encouragera une participation plus large et profitera à tous les utilisateurs de Java », a déclaré la société.
Rappelons qu'un sondage effectué en mars dernier portant sur la question « quelle version de Java utilisez-vous ? » a classé Java 8 en première positon avec 61,35 % de votes. Après viens Java 11 et Java 6 avec respectivement 18,40 % et 9,82 %.
Et vous ?
Quelle édition du JDK Java utilisez-vous ? Pourquoi ?
Voir aussi
Fin prématurée du support gratuit du JDK 8 ? Pas vraiment, oracle ne va pas cesser de livrer des mises à jour publiques pour JDK 8 avant janvier 2019
La prochaine mise à jour de sécurité de Java 8 prévue pour le 16 avril 2019 sera payante, avertit Oracle
Quelle version de Java utilisez-vous ? Qu'est-ce qui vous empêche de migrer vers une version plus récente ?
Partager