Oracle JDK devra payer. Quelles sont les options maintenant?

Le débat sur la pertinence de Java se poursuit. Certains disent qu'il devient obsolète et que des langues plus avancées le remplacent. D'autres ne sont pas d'accord, citant le nombre de spécialistes qui choisissent Java d'année en année comme compétence de base. Dans tous les cas, on ne peut ignorer le fait que la plupart des logiciels existants sont écrits en Java et que les clients, internes et externes, continuent de les utiliser. Dans cette situation, toute nouvelle implémentation et actualité mondiale sur Java ne doit pas être évitée. Peter Verhas , développeur de logiciels et architecte en chef au bureau suisse d'EPAM, a partagé son analyse des changements introduits par Oracle et de leur incidence sur nous.

image

Il y a eu beaucoup de changements dans Java récemment, et il semble que la façon dont le langage évoluera a fondamentalement changé. C'est bien que de nouvelles fonctionnalités apparaissent dans la langue. Mais ce ne sont pas les seuls changements. Oracle a apporté des modifications importantes au modèle de support et au cycle de mise à jour de la version Java que cette société publie. Tout cela a conduit à une grande confusion causée par le changement, la désinformation et les malentendus. Dans cet article, je résume tout ce que les utilisateurs doivent savoir sur les innovations avant de commencer à croire à la fin apocalyptique de l'écosystème Java.

Cependant, certains points doivent d'abord être clarifiés.

Oracle possède Java, mais Java n'est pas Oracle. Le code source Java est publié sous la licence GPLv2.0 avec l'exception classpath. En fait, cela signifie que n'importe qui peut utiliser et modifier gratuitement le code source de la langue. Il n'y a qu'une chose que tout le monde, y compris Oracle, est interdit de faire: apporter des modifications au code et le publier avec une licence de source fermée. Cela signifie que l'utilisation commerciale de Java, uniquement la version payante, est légalement impossible, même si les intérêts commerciaux ou commerciaux d'Oracle l'exigent. Mais je suis toujours un spécialiste technique. Afin de traiter ce point, il est préférable de télécharger à 100% le texte de la licence GPLv2 et de consulter un avocat.
Oracle n'est pas la seule entreprise à publier des assemblages Java et à fournir une assistance; il existe de nombreux autres fournisseurs. Bien sûr, Oracle, en tant qu'acteur principal qui investit le plus dans le développement du langage et des outils, est la société commerciale la plus prestigieuse pour le soutenir.

En fait, Oracle n'a pas de droits exclusifs non seulement sur le code source Java. Le processus de développement, les changements dans la définition de Java, l'API - tout cela est entre les mains du Java Community Process, tout le monde peut y participer. Pour les particuliers, c'est totalement gratuit. Les membres de ce groupe sont des sociétés telles qu'Intel, IBM, Credit Suisse, Software AG, RedHat. Ils déterminent l'avenir de Java, pas d'Oracle. Et ils ont leur propre opinion, comme on a pu le voir la dernière fois où l'approbation de la version finale de JPMS ne s'est pas déroulée sans heurts.

Après cette introduction, dans laquelle nous avons décidé qu'Oracle «possède» Java, mais n'est pas Java, regardons les changements dans la procédure de support au développement et la feuille de route Java qu'Oracle a introduite.

Modifications après Java 9, 10, 11


Oracle a annoncé qu'à partir de JDK11, Oracle JDK ne serait plus gratuit. Et au début, cette déclaration est effrayante. Ce que nous avons l'habitude d'utiliser gratuitement ne le sera plus. Dans la pratique, ce que «nous devons payer» est presque logique. Mais le petit mot «presque» est là pour une raison. S'il y a un service que nous avons utilisé, et qu'il a cessé d'être gratuit, nous avons deux options: payer pour l'utiliser plus tard, ou pour ne plus l'utiliser. Devrions-nous continuer à utiliser Oracle JDK ou pouvons-nous passer à autre chose? Telle est la vraie question.

Pour y répondre, vous devez comprendre ce qu'est Oracle JDK et quelles sont les alternatives. Un autre changement significatif concerne les cycles de sortie des nouvelles versions et le concept de support à long terme (Eng. - Long Term Support ou LTS). Tout d'abord, nous discuterons des changements dans le cycle de publication, puis de la confusion avec Open JDK, et enfin, de la structure LTS.

Cycle de lancement


Java est apparu en 1996. Les premières versions de Java sont sorties plus ou moins régulièrement.

image

Cependant, en regardant le diagramme, nous voyons que la version de Java 5.0 a été retardée. Java 6 n'était pas non plus pressé pour la version précédente, et la plus grande rupture se situait entre Java 6 et Java 7. Même après cela, les nouvelles versions n'étaient pas publiées très souvent. Java 8 a reçu de nombreuses nouvelles fonctionnalités, mais au prix de deux ans d'attente. Les choses étaient similaires avec Java 9, qui, bien qu'il ait subi des changements encore plus importants, a été contraint d'attendre trois années entières.

Le problème avec de tels cycles de mise à jour est qu'un langage lui-même en concurrence sur le marché des langues en constante évolution ne peut pas présenter de nouvelles fonctionnalités assez rapidement. S'il faut trois ans pour développer un système modulaire, rien ne peut accélérer le processus. Cependant, certains éléments apparus dans Java 9 peuvent avoir été publiés plus tôt. Mais ils n'ont tout simplement pas pu accéder aux développeurs, car il n'y avait pas de versions antérieures. Les fonctions qui étaient déjà disponibles auraient dû attendre l'apparition de la fonction développée le plus lentement dans cette version. C'est l'un des problèmes du modèle de développement en cascade classique.

Oracle a décidé de devenir agile et de créer des versions tous les six mois. À partir de septembre 2017, de nouvelles versions de Java sont attendues en mars et septembre. Si une fonction n'est pas prête pour ces dates, elle sera transférée à la prochaine version, mais les autres, telles qu'elles sont prêtes, tomberont dans la plus récente.

En général, c'est normal. D'une part, la communauté Java et les développeurs devraient s'en réjouir. En revanche, la question du soutien demeure. Qui peut prendre en charge autant de versions Java? C'est pourquoi le soutien à long terme (LTS) a été introduit, dont nous parlerons sous peu. Mais d'abord, vous devez toujours clarifier ce que sont Oracle JDK et OpenJDK.

Quels étaient et deviennent Oracle JDK et OpenJDK


Jusqu'à Java 9, il y avait une version binaire de l'assemblage Java Java Oracle (Sun Microsystems), qui était utilisé dans l'environnement de production par la plupart des développeurs et des entreprises. Ce binaire était basé sur Java open source et contenait quelques améliorations - des outils d'entreprise supplémentaires comme Java Flight Recorder, Java Mission Control et d'autres fonctionnalités comme le partage de données d'application de classe.

L'assembly OpenJDK a été créé à partir de Java open source, dans lequel il n'y a eu aucune amélioration. Cet assemblage Java a été utilisé par ceux qui voulaient expérimenter avec les propriétés Java, changer le code, ou simplement pour une raison quelconque, étaient des adhérents du code open source. Bien que vous ayez dû télécharger le code source et le compiler pour vous-même.

À partir de Java 9, Oracle a commencé à fournir OpenJDK en parallèle avec Oracle JDK. La société a également annoncé qu'elle souhaitait réduire l'écart entre les fonctionnalités, les performances et la stabilité des deux versions, et une fois que cela se produirait, faire payer Oracle JDK. À cette époque, OpenJDK et Oracle JDK étaient disponibles gratuitement en tant qu'assemblages binaires d'Oracle. Il s'agissait de Java 9 et Java 10.

Après la sortie de Java 11, cela s'est arrêté. OpenJDK est toujours disponible gratuitement, mais Oracle JDK pour les systèmes de production est devenu payant. Il n'y a plus de différence significative entre les deux versions. La version commerciale a un programme d'installation, tandis que OpenJDK n'a qu'un fichier ZIP. Il existe d'autres différences, mais les utilisateurs Java ne doivent pas y prêter attention. Une liste techniquement détaillée des différences est décrite par Donald Smith, directeur principal de la gestion des produits chez Oracle dans cet article .

De plus, Oracle JDK est toujours gratuit pour les autres utilisateurs, même commerciaux. Oracle JDK peut être utilisé librement pour:

• développement
• test
• prototypage
• démonstrations

Vous pouvez utiliser OpenJDK à d'autres fins ou payer Oracle et utiliser Oracle JDK et obtenir une assistance. Le soutien est bon.

Versions de support à long terme


La transition vers un nouveau cycle de sortie de version tous les six mois a soulevé une question de support. Personne ne peut prendre en charge autant de versions pour son propre bénéfice. Si vous avez installé Java 6 pour votre application en 2007, vous pouvez obtenir une assistance d'Oracle en 11 ans. La sortie de nouvelles versions tous les six mois implique la prise en charge de 22 versions différentes simultanément. Ce serait une lourde charge pour Oracle ou tout autre fournisseur qui décide de prendre en charge toutes les versions.

La stratégie d'Oracle consiste à identifier une version tous les trois ans qui bénéficiera d'une assistance à long terme. La première version de ce type était Java 11 et sera prise en charge jusqu'en 2026. Pendant cette période, Java 17 sera également publié en septembre 2021, qui bénéficiera d'un support à long terme sur sept ans, conformément aux plans actuels. Toutes les autres versions dites fonctionnelles ne seront prises en charge que jusqu'à la sortie de la prochaine version.

image

Veuillez noter que l'assistance ne s'applique qu'à Oracle JDK et uniquement à ceux qui ont payé pour JDK et l'assistance. Mais ne pensez pas que vous avez été laissé à la merci du destin si vous prévoyez d'utiliser OpenJDK. Pour nous, rien n'a changé. Si vous n'aviez pas payé le soutien auparavant, vous ne l'avez pas reçu de toute façon. Si vous avez payé, vous continuerez à payer et à bénéficier de cette assistance.

Voici un lien vers un article Oracle avec des prévisions de fin de vie pour différentes versions.

Y aura-t-il de nouvelles versions pour OpenJDK? Bien sûr. Auparavant, des mises à jour open source Java ont été publiées qui corrigeaient des bogues, bien qu'il n'y ait aucune garantie qu'elles seraient publiées. Cela s'est produit simplement parce que tous les participants étaient intéressés par cela. A l'avenir, tout restera comme avant, Java recevra de nouvelles versions, de nouveaux assemblages.

Je vois trois stratégies principales pour choisir quelle version de Java est la meilleure à installer:

  1. Payez Oracle pour Oracle JDK et l'abonnement, et utilisez des versions avec un support à long terme. C'est ce que les grandes entreprises commerciales utilisant l'infrastructure Java devraient faire pour répondre aux exigences de fiabilité.
  2. Basculez vers OpenJDK, utilisez uniquement des versions avec une prise en charge à long terme et installez les versions de correction de bogues disponibles pour OpenJDK. Il s'agit d'une solution viable pour les entreprises qui ne peuvent pas ou ne veulent pas modifier le coût de l'infrastructure Java, pourraient se passer de support commercial dans le passé et croient qu'elles peuvent aussi à long terme.
  3. Basculez vers OpenJDK et installez les versions ultérieures tous les six mois dès qu'elles apparaissent. Il s'agit d'une option pour les entreprises qui ont besoin des dernières solutions technologiques.

Les stratégies peuvent également être combinées en installant différentes versions de Java sur différentes machines. Peu importe ce que vous choisissez, vous pouvez télécharger des versions binaires de la pré-construction à partir des sites suivants:

  • Versions binaires du pré-build OpenJDK adoptopenjdk.net
  • Oracle JDK est disponible sur java.oracle.com . Ici, vous pouvez cliquer sur Java SE 11 pour accéder à la page de téléchargement et accéder au bouton de téléchargement. Il y a un gros avertissement jaune sur la page, vous devrez également cliquer sur l'accord avec les termes de la licence avant que le lien de téléchargement ne soit disponible. Et cette fois, il vaut mieux vraiment lire les termes, et pas seulement accepter automatiquement.

Bien qu'il ne s'agisse pas d'un téléchargement binaire, il est étroitement lié au téléchargement d'Oracle JDK - vous pouvez également visiter www.oracle.com/java/java-se-subscription.html pour obtenir Oracle JDK et la prise en charge dans un seul package. Des informations détaillées sur les prix sont disponibles sur www.oracle.com/us/corporate/pricing/price-lists/java-se-subscription-pricelist-5028356.pdf . Pour les impatients, j'ai copié ici les informations de prix de la FAQ officielle d'Oracle:

«Le coût de la version de bureau est de 2,50 $ par utilisateur et par mois, ou moins s'il y a des remises sur volume à plusieurs niveaux. Consultez le tableau des prix des abonnements Oracle Java SE pour plus d'informations. »

Résumé


Tu fais quoi Utiliser OpenJDK ou payer pour Oracle JDK? C'est une question de rentabilité et de l'importance du support Oracle pour vous. Si votre entreprise ne peut pas se permettre le support d'Oracle JDK, parce que vous êtes une startup, une étoile montante avec une idée de produit brillante, mais un trou dans votre poche, alors OpenJDK répond à vos besoins. Vous n'avez pas à payer pour cela. Et d'ailleurs, si vous êtes une startup, il n'est pas si important pour vous que vos serveurs ne fonctionnent pas pendant plusieurs heures jusqu'à ce que les experts techniques résolvent le problème. Si vous ne pouvez pas vous permettre un temps d'arrêt, vous travaillez probablement dans une entreprise mature et devez donc utiliser Oracle JDK et vous abonner au support. Vous pouvez également décider de combiner différents modèles et de les installer sur certains serveurs de produits qui devraient être disponibles 24h / 24 et 7j / 7, Oracle JDK et OpenJDK sur des applications internes qui ne sont pas si critiques pour les entreprises.

Dans tous les cas, vous pouvez continuer à utiliser Java.

À propos de l'auteur:

Peter Verhas travaille au bureau suisse d'EPAM. Peter développe des logiciels pour les clients, assure la formation des programmeurs et du mentorat au sein de l'entreprise.

Vous pouvez suivre Peter sur Twitter , LinkedIn et GitHub . L'auteur a également un blog, «Java deep»: javax0.wordpress.com

Source: https://habr.com/ru/post/fr430084/


All Articles