Java 11 : migrer ou changer de langage
Qu'envisagez-vous de faire suite aux derniers changements annoncés par Oracle ?

Le , par gangsoleil, Modérateur
Bonjour,

Suite au changement radical de la roadmap Java par Oracle, et au passage du support long terme payant, je me demande quels sont les impacts de ces changements, et s'il est préférable de migrer ou bien de changer de langage.

Je m'explique : la question n'est pas le changement de version une fois (même de Java 8 à 11). De même que les entreprises ont dû faire évoluer les versions précédentes de Java, un unique changement de version n'est pas le sujet. En revanche, ici, ce n'est plus un unique changement de version : le support de Java 8 devient payant, et une nouvelle version de Java va sortir tous les 6 mois, à priori avec le support payant de la version N-1 à chaque fois. Ainsi, en mars 2019, Java 12 devrait sortir et le support de Java11 deviendra payant, etc.

Pour les entreprises qui sont en Java8, il y a plusieurs changements majeurs -- Java Web Start, Java FX, les applets, Java EE, CORBA sont enlevés par exemple. Le coût de ces changements technologiques est loin d'être anodin, et on peut craindre que d'autres fonctionnalités soient ainsi enlevées, ou forcées, dans les prochaines versions.

Du coup, je me pose, sérieusement, la question : faut-il faire ces changements, prévoir d'en faire d'autres dans le futur, et caler sa roadmap sur celle de Java -- avec un décalage -- ou bien faut-il envisager de changer de langage ?

Et si l'on veut changer, pour quel langage ?? Attention, ce que je veux dire ici, c'est quel langage pourrait fournir le même genre de choses, c'est-à-dire être complet, avec une partie graphique "simple", etc.

Est-ce que vous avez analysé ce problème ?
Est-ce que vous avez déjà pris des décisions dans un sens ou dans l'autre ?

Merci de vos retours


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de ShigruM ShigruM - Nouveau Candidat au Club https://www.developpez.com
le 02/07/2018 à 18:25
changer de langage.
Java est devenue un cancer a cause d'oracle et de ces licences.

Moi je suis pas avocat, je suis développeur en informatique. Il me faut travailler avec du domaine publique ou équivalent. Donc python 100% gratuit et libre. Je peut même vendre ma propre version de python si je veut et la majorité des libs existantes.
Bref pourquoi encore s’embêter avec des licences a gogo et des armées d'avocats et des process qui n'en finissent pas.

J'ai migré a 100% vers python3, mon seul regret sur ce langage c'est python2.7 qui fait office de tumeur/boulet sur ce magnifique langage. Une fois python2.7 enterré une bonne fois pour toute le langage devrait davantage sublimé.
Avatar de Matthieu76 Matthieu76 - Membre éclairé https://www.developpez.com
le 02/07/2018 à 18:45
Citation Envoyé par gangsoleil Voir le message
Et si l'on veut changer, pour quel langage ?? Attention, ce que je veux dire ici, c'est quel langage pourrait fournir le même genre de choses, c'est-à-dire être complet, avec une partie graphique "simple", etc.
Je ne code plus en Java depuis longtemps mais je pense vraiment que language le plus proche de Java est le C#. Personnellement, je ne vois quasiment aucune différence entre ces 2 langages à s'exception que C# n'est utilisable pratiquement que sous Windows mais bon pour faire des logicielles d'entreprise ou perso cela fait largement l'affaire, je préfère même au java.

Beaucoup de gens se plaignent que le C# est propriétaire Microsoft mais en vrai cela ne change pas grand-chose.
Avatar de Shepard Shepard - Membre éprouvé https://www.developpez.com
le 02/07/2018 à 19:07
Qu'en est-il de Kotlin et de Scala au niveau des licenses ? Estimez-vous qu'ils seront impactés également ? J'avoue ne pas comprendre ce que du "support payant" implique, l'accès à l'API Java 8 va-t-il devenir payant ?

Si ce n'est pas ça, qui ici a déjà utilisé le support Java et sous quelle forme ?

Désolé si la question paraît idiote ... J'utilise Java et Kotlin au quotidien mais je ne me suis jamais intéressé à ces questions ...
Avatar de xarkam xarkam - Membre confirmé https://www.developpez.com
le 02/07/2018 à 19:25
Citation Envoyé par Matthieu76 Voir le message
Je ne code plus en Java depuis longtemps mais je pense vraiment que language le plus proche de Java est le C#. Personnellement, je ne vois quasiment aucune différence entre ces 2 langages à s'exception que C# n'est utilisable pratiquement que sous Windows mais bon pour faire des logicielles d'entreprise ou perso cela fait largement l'affaire, je préfère même au java.

Beaucoup de gens se plaignent que le C# est propriétaire Microsoft mais en vrai cela ne change pas grand-chose.
Je ne sais pas comment tu as pu échapper à l'information du reboot de C# en open source.

Le Framework .NET est effectivement intrinsèquement lié à Windows. Pas .NET Core/ASP.NET Core

Si il faut une application avec une GUI, il existe https://github.com/AvaloniaUI/Avalonia , et ainsi on a une application cross-plateformes, codée avec un langage open source (licence MIT).

Personnellement, Java pour du client-serveur peut très aisément être remplacé par du C# (.NET Core/ASP.NET Core).
Pour une GUI, il faudra dès lors voir ce qu'il est possible de faire avec Avalonia.

Quant aux "paquets" tout est géré par NuGet.
Avatar de xarkam xarkam - Membre confirmé https://www.developpez.com
le 02/07/2018 à 19:29
Citation Envoyé par Shepard Voir le message
J'avoue ne pas comprendre ce que du "support payant" implique, l'accès à l'API Java 8 va-t-il devenir payant ?
Je pense que c'est au niveau des mises à jour de sécurité et des bugs. Si un trou béant est trouvé dans Java 8, tu ne pourra te procurer le fix que contre payement.

Citation Envoyé par Shepard Voir le message

Si ce n'est pas ça, qui ici a déjà utilisé le support Java et sous quelle forme ?
Mais il me semble que Kotlin est un sur-ensemble à Java non ?

Ce qui laisserait la question de fond sur Java.
Avatar de Pyramidev Pyramidev - Membre expert https://www.developpez.com
le 02/07/2018 à 21:22
Citation Envoyé par ShigruM Voir le message
J'ai migré a 100% vers python3, mon seul regret sur ce langage c'est python2.7 qui fait office de tumeur/boulet sur ce magnifique langage.
Python est riche, mais est réputé pour sa faible vitesse d'exécution, même si on utilise une implémentation plus performante que CPython. Donc migrer de Java vers Python 3 nécessite de ne pas avoir des besoins trop exigeants en performance.
Avatar de dad3zero dad3zero - Membre habitué https://www.developpez.com
le 02/07/2018 à 22:58
Citation Envoyé par gangsoleil Voir le message
Du coup, je me pose, sérieusement, la question : faut-il faire ces changements, prévoir d'en faire d'autres dans le futur, et caler sa roadmap sur celle de Java -- avec un décalage -- ou bien faut-il envisager de changer de langage ?

Et si l'on veut changer, pour quel langage ?? Attention, ce que je veux dire ici, c'est quel langage pourrait fournir le même genre de choses, c'est-à-dire être complet, avec une partie graphique "simple", etc.
Si c'était si simple…

En théorie, ça devrait. Mais dans la réalité, qui migrerait tout un SI Java vers autre chose ?

L'autre point est la compétence disponible. Il me semble aussi qu'un dev Java pourrait migrer vers du C# (désolé pour l'approximation du symbol) vu la proximité des technos, mais vers autre chose, c'est toujours compliqué. Python a le vent en poupe, mais son aspect dynamique fait que l'on perd la moitié des devs en chemin.

Migrer n'est pas si anodin quand on a déjà un existant. Pour tout nouveau projet (dans une infra existante ou son propre business), il faut jauger entre ces points négatifs et la disponibilité des compétences.

Citation Envoyé par ShigruM Voir le message
J'ai migré a 100% vers python3, mon seul regret sur ce langage c'est python2.7 qui fait office de tumeur/boulet sur ce magnifique langage. Une fois python2.7 enterré une bonne fois pour toute le langage devrait davantage sublimé.
Le problème du boulet Python 2 est malheureusement un problème d'utilisateurs. La gouvernance est critiquable (le support de Python 2 n'aurai jamais dû être prolongé), mais il illustre la difficulté de migration. Néanmoins, j'ai plaisir à voir en formation que Python 2 devient très anecdotique.

Citation Envoyé par Pyramidev Voir le message
Python est riche, mais est réputé pour sa faible vitesse d'exécution, même si on utilise une implémentation plus performante que CPython. Donc migrer de Java vers Python 3 nécessite de ne pas avoir des besoins trop exigeants en performance.
"Réputé"…*On parle de Java qui est aussi "réputé" être lent… Je ne suis pas en train de lancer la polémique à quel point c'est vrai, oui le coté interprété fait que Python est mathématiquement "plus lent". Maintenant, Youtube, Pinterest ou Instagram sont suffisamment peu exigeants pour se contenter de Python pour leur front, à chacun de voir son besoin en comparaison…
Avatar de Mrsky Mrsky - Membre éprouvé https://www.developpez.com
le 02/07/2018 à 23:01
En alternatives à Java il y a aussi Golang qui est intéressant, sinon un bon vieux C++ qui est bien plus abordable de nos jours que sa réputation ne le laisse entendre.
Avatar de dad3zero dad3zero - Membre habitué https://www.developpez.com
le 02/07/2018 à 23:10
Citation Envoyé par atha2 Voir le message
Il y aussi Jython pour ce qui est d'une implementation perfomante de python, par contre ça utilise les api et le runtime java donc pas sur que ça aide si on cherche à ne pas avoir de problème juridique.
Heu… Alors pour rappel, la dernière release de Jython, c'est 2015. Aucun support Python 3, rapport de perfs en chute libre…

Avant les entreprises mettaient minimum 1 an avant de migré de version (le temps de valider le comportement de la mise à niveau et que les premiers bugs aient été corrigé). Aujourd'hui avec la mouvance agile, Oracle essaie de nous dire, on aura peut-être des bugs mais on vous promet que ils seront rapidement corrigé.
Je ne vois pas du tout le rapport avec la mouvance agile… L'agilité relève de la gestion de projet, pas de l'exploitation qui elle a une considération de qualité de service…
Avatar de Tcharl Tcharl - Membre averti https://www.developpez.com
le 02/07/2018 à 23:46
C'est les majors LTS (Java 8, Java 11, puis toutes les 3 versions donc 14, 17, etc. Qui vont faire devenir payantes les lts précédente. Donc pas de souci si tu fais 8, 11,14,17 au moment où elles sortent, tu ne payeras rien, et tu auras eu le temps de prototyper entre temps avec les versions intermédiaires.

Pas de souci donc, ça ne paraît pas si bloquant que ça, faut pas se leurrer, ça embête tout le monde de maintenir des versions 'legacy'. Sinon il y a kotlin ou rust, suivant le contexte
Contacter le responsable de la rubrique Accueil