background preloader

Java

Facebook Twitter

Club francophone des développeurs Java : actualités, forums avec sondages et débats, cours, faq, blogs, critiques de livres. Java + Eclipse, couple star de la programmation. D’après l’indice Tiobe Software, Java est le langage de programmation le plus populaire sur la Toile, devant C, C++, C# et Python. PYPL (PopularitY of Programming Language) livre une copie assez différente sur novembre 2015. Il s’appuie sur Google Trends pour livrer son classement des langages de programmation les plus médiatiques. Java demeure le numéro un du secteur (24,4 % des requêtes). C’est toutefois Python (11,3 %) et PHP (10,9 %) qui occupent les seconde et troisième places du classement. Le trio C#, C++ et C suit dans le classement PYPL. Avec 29,52 % des requêtes, Eclipse reste l’environnement de développement le plus populaire de la Toile. En troisième position se trouve Vim, éditeur de texte certes avancé, mais d’une autre époque face aux IDE modernes.

Crédit photo : © Mike Kiev – Fotolia.com. Java SE 9 en passe d'être officiellement en examen public des spécifications, Oracle annonce la disponibilité de la version préliminaire. Dans un message publié dans la liste de diffusion OpenJDK, Iris Clark, un consultant Oracle, a annoncé que la version préliminaire de la spécification d’examen public (PRS, Public Review Specification) pour Java 9 est disponible. Si l’accueil est favorable, cette ébauche sera soumise la semaine prochaine aux autorités compétentes, notamment le JCP PMO (Java Community Process Program Management Office) pour lancer officiellement la période d’examen public. Dans son message, Clark a expliqué que « la spécification principale a légèrement changé par rapport à l'EDR, notamment par une réduction du nombre d'API proposées qui doivent être retirées de la section 10. Nous avons également découvert que deux JEP (252 - utilise les données locales CLDR par défaut ; 280 - indique la concaténation des chaînes de caractères) ont un impact sur l’API SE, donc elles ont été ajoutées à la liste des fonctionnalités des sections 5 et 6 ».

Caractéristiques Bibliothèques de base Sécurité Bibliothèques clients. Java 9 : quelles nouveautés ? - Veille technologique et technique par l'agence de développement web iMDEO. Plusieurs fois reportée, la sortie de JAVA 9 se rapproche enfin : un rapide tour d’horizon s’impose ! Quelle date de release prévue ? Java 9 est déjà prévu depuis un bon moment, et a été plusieurs fois retardé. La première fois que Java 9 et sa liste de fonctionnalités ont été annoncés, c’était le 11 Août 2014, soit il y a bientôt 3 ans.

Depuis cette date, la sortie de Java 9 a été plusieurs fois repoussée, la faute principalement au projet Jigsaw, qui a été intégré à Java 9 et met en œuvre la modularisation de la plateforme Java. Normalement, à l’heure où j’écris ces lignes, Java 9 devrait sortir le 27 Juillet 2017. Nouveautés Les nouveautés de cette version sont naturellement assez nombreuses, donc je ne vais pas faire une présentation exhaustive, mais une sélection de ce qui m’a semblé le plus intéressant. Jigsaw (JSR376 et JEP 200, 201, 220, 260, 261, 282) J’en ai parlé un peu dans l’introduction. Dans Java 9, un module est défini par 3 concept : Ainsi, on peut voir le module suivant : Java SE : Oracle soumet l'utilisation des fonctionnalités commerciales à une souscription mensuelle, la licence permanente n'est plus d'actualité.

Oracle change de modèle d’affaires en ce qui concerne la facturation des fonctionnalités payantes et l’obtention du support pour Java Standard Edition (Java SE). Jusqu’ici, les entreprises faisaient l’acquisition d’une licence perpétuelle à laquelle s’ajoutaient des frais annuels pour le support technique , mais la donne a changé. Le géant des bases de données a opté pour une souscription mensuelle. Désormais, il faudra débourser 25 $ par mois, ce, pour chaque processeur dédié à un serveur ou instance cloud. Pour les PC, la facture démarre à 2,5 $ par mois et par utilisateur. Des remises sont possibles en fonction du volume de l’infrastructure et vont jusqu’à 50 % ; le détail dans les tableaux fournis par l’entreprise. À titre de comparaison avec l’ancien business model, une licence pour Java SE Advanced coûtait 5000 $ pour chaque processeur. Source : Oracle Et vous ? Êtes-vous un utilisateur de la version commerciale de Java SE ? Voir aussi :

JDK 10 : Un meilleur support de Docker. Le kit de développement Java 10 gagne une meilleure prise en charge de Docker et s'enrichit de plusieurs technologies dont la collecte et la compilation des ramasses-miettes. Ces dernières profiteront aussi aux versions ultérieures. Livré le 20 mars 2018, le JDK 10, une implémentation de Java Standard Edition (SE) 10 comporte plusieurs améliorations, les principales concernant les types de variables locales et la collecte et la compilation des ramasses-miettes. JDK 10 est une version à court terme, et elle bénéficiera de mises à jour publiques pendant une durée maximum de six mois. Ce ne sera pas le cas du prochain JDK 11, dont la sortie est prévue pour septembre qui aura le statut de version à long terme (LTS).

En général, il sort une version LTS de Java tous les trois ans. Oracle a fixé un calendrier de livraison à six mois pour les versions de Java. Java, JavaScript et C++ ont été les langages les plus demandés en entreprise ces 9 derniers mois, d'après les résultats d'une enquête. Les entreprises sont désormais libres de déployer une stratégie qui intègre plusieurs langage de programmation, leur permettant de mettre moins d'accent sur le langage que les développeurs doivent utiliser. À mesure que les entreprises passent de logiciels hérités vers des technologies plus agiles et flexibles, il est plus facile pour les équipes de développement de trouver le bon outil pour le bon travail.

Les pratiques Cloud-native permettent aux développeurs de grandes entreprises de choisir leur langage préféré ou, plus important encore, le langage qui supporte le mieux leurs besoins fonctionnels. Tout cela peut être accompli tout en minimisant la lourdeur de la charge opérationnelle d’une prise en charge de variété de langages de développement. En conséquence, les équipes opérationnelles et les équipes de développement d'application sont en mesure de progresser plus rapidement ensemble. Qu'est-ce que cela signifie pour les entreprises ? Source : rapport en PJ (au format PDF) Oracle annonce la sortie officielle de Java 11 : tour d'horizon des principales nouveautés de cette version LTS.

Oracle a annoncé mardi la disponibilité générale de Java 11, conformément à sa nouvelle cadence de publication de six mois adoptée il y a un an avec Java 9. Avec sa nouvelle cadence, quand une nouvelle version de Java est disponible, la version précédente va immédiatement cesser de recevoir des mises à jour publiques. C'est ce qui fait d'ailleurs que Java 11 est une mise à jour importante, car il s'agit de la première version LTS (bénéficiant d'un support à long terme) depuis qu'Oracle a décidé de sortir deux versions de Java par an. Elle est donc destinée aux utilisateurs qui privilégient la stabilité à un accès rapide aux nouvelles fonctionnalités. Pour en venir aux nouveautés, Java 11 ne fait pas moins que les versions précédentes.

Dans Java 11, une nouvelle API HTTP fait son apparition. Java 11 met également à jour les API de plateforme existantes pour prendre en charge la version 10.0.0 du standard Unicode. Stephen Colebourne met en garde contre le téléchargement du JDK Oracle. Java 10 et 11, les nouveautés - Veille technologique et technique par l'agence de développement web iMDEO. Depuis mon dernier article sur Java9, le monde de Java a un peu bougé. En effet, Oracle a décidé de publier une nouvelle version tous les 6 mois. Ce changement clair de vitesse dans les releases va certainement apporter un vent de fraîcheur!

Pour rappel, historiquement, les releases de nouvelles versions de Java étaient assez espacées, souvent de quelques années. C’est donc un changement de philosophie qu’on a ici. Il convient donc de rattraper le temps passé et faire un petit point sur ce qu’apporte, dans les grandes lignes (et avec en ligne de mire, ce qui intéresse les développeurs) ces deux versions. Java 10 Sortie en mars 2018, cette version n’apporte, comme changement significatif, « que » l’apport d’un nouveau mot clef « var ». Concrètement, l’idée derrière cet ajout est de rendre le code plus lisible, bien qu’il soit possible, avec ce même mot, de le rendre particulièrement illisible.

HashMap cestSuperLong = new HashMap(); Peut désormais s’écrire : var plusCourt = new HashMap(); Java 12 ne prendra probablement pas en charge les littéraux de chaîne bruts, la proposition d'amélioration JDK (JEP) suggère qu'on les supprime. Les tests pour finaliser la sortie originale du JDK 12 de Java en janvier prochain continuent depuis la disponibilité de la version bêta. Comme rapporté le mardi dernier, cette version bêta est caractérisée par neuf nouveauté essentielles et quelques nouvelles fonctionnalités.

Le JDK 12 prend en charge Unicode 11, un nouveau format de clé privée codé x25519 et x448 compatible avec la norme RFC 8410 etc… L’une des principales caractéristiques de cette version est la prise en charge des littéraux de chaînes bruts. Les littéraux de chaînes de caractères permettent au développeur de créer leurs propres littéraux et de les ajouter au langage. L’ajout de cette fonctionnalité dans le langage s’est fait aussi dans le but d’aider les développeurs à exprimer plus facilement des séquences de caractères, à fournir des chaînes ciblées pour les grammaires, et à couvrir plusieurs lignes de sources. La JEP donne plusieurs raisons à cette proposition de suppression. Source : Brian Goetz Et vous ? Java 11 est-il plus rapide que Java 8 ? Oui selon un test réalisé avec OptaPlanner, un solveur de contraintes.

Un test a été réalisé avec OptaPlanner, par Radovan Synek, ingénieur qualité à OptaPlanner, pour comparer deux versions de Java à savoir Java 8 et Java 11. Selon son site officiel, OptaPlanner est un moteur de planification léger et intégrable. Il permet aux programmeurs Java de résoudre efficacement les problèmes d'optimisation. Il est également compatible avec les autres langages JVM (tels que Kotlin et Scala). Les contraintes s'appliquent aux objets de domaine en clair et peuvent réutiliser le code existant. Il n'est pas nécessaire de les entrer sous forme d'équations mathématiques. OptaPlanner combine sous le capot des heuristiques d'optimisation sophistiquées et des métaheuristiques (telles que la recherche de tabous, le recuit simulé et l'acceptation tardive) avec un calcul de score très efficace. Pour rappel, Java 8 a été rendu disponible en mars 2014 et a apporté de nombreuses fonctionnalités au langage. Quant à Java 11, il est apparu en septembre 2018.

Source : OptaPlanner. Lombok, une bibliothèque Java, rend la programmation Java plus simple en facilitant l'écriture de vos classes, selon un ingénieur. « Lombok rend Java plus cool à nouveau », a écrit Alex Detrick, ingénieur au sein de GrubHub, une société américaine de commande et de livraison de produits alimentaires, comme titre à son article. Connaissez-vous le projet Lombok ?

Sinon, il s’agit notamment d’une bibliothèque qui se connecte automatiquement à votre éditeur ou IDE et crée des outils Java. Il épice votre code Java comme le précise son site officiel et est publié sous la licence MIT. Le projet Lombok est un outil pour le développeur pragmatique. La vision autour de ce projet est de réduire les répétitions de blocs de codes dans les nombreuses parties d’une application en les remplaçant par de simples annotations.

Parmi les annotations filles de @Data, on trouve @ToString qui génère automatiquement une implémentation de la méthode toString() ou @Getter et @Setter pour la génération des méthodes getter et setter pour les attributs. Par contre, certains voient la chose autrement. Sources : GrubHub, Project Lombok Et vous ? Java : Oracle publie la première release candidate du JDK 12 avec toutes les fonctionnalités majeures annoncées sauf les littéraux de chaînes bruts. Java devient payant ?? - Veille technologique et technique par l'agence de développement web iMDEO. De Jérôme Meillant dans Technique 19 Fév 2019 Lors de la sortie de Java 11 en septembre 2018, Oracle a modifié son mode de licence. La politique de licence de l’éditeur Américain étant connu pour son opacité, voyons ce qu’il en est vraiment. Avant la version 11 Java SE (Standard Edition) est sous licence Oracle BCL (Binary Code License Agreement for the Java SE Platform Products).

Cette licence permet d’utiliser certaines fonctionnalités gratuitement et d’autres en payant (pour un usage commercial, tout est gratuit pour un usage interne). Ces fonctionnalités sont regroupées dans 3 éditions différentes : Pour utiliser les 2 éditions payantes il fallait acquérir une licence perpétuelle Java SE Advanced ou Java SE Suite (coût initial + frais annuels supplémentaires de support et de maintenance). Depuis la version 11 la licence Oracle n’est plus la même. La version open source est sous licence GPLv2+CPE (GNU General Public License v2 with Classpath Exception).

Coût de l’abonnement Remarque. Java : une version à accès anticipé du JDK 13 est publiée, Oracle veut unifier les deux méthodes de la classe GraphicsEnvironment. Alors que la première release candidate du JDK 12 vient à peine d’être publiée, le JDK 13 aussi vient d'être lancé avec une version à accès anticipé. L’article précédent sur la sortie de la RC1 du JDK 12 avait annoncé qu’en plus de la version 12 du kit de développement, il y aurait encore une seconde version. Il s’agit donc du JDK 13. Après deux mois en version bêta, la RC1 du JDK 12 est parue ce 15 février.

Cette version a apporté huit fonctionnalités des neuf annoncées au départ. Ces huit fonctionnalités sont les suivantes :Shenandoah : c’est un ramasse-miettes à faible temps de pause en effectuant le travail d’évacuation simultanée entre les threads Java en cours d’exécution. Rappelons que, la seule fonctionnalité annoncée au départ et finalement absente de cette version concerne les littéraux de chaînes bruts. Alors, cette fonctionnalité peut-elle réapparaître dans le JDK 13 qui sera également publié en 2019 ?

Source : OpenJDK Et vous ? Que pensez-vous du JDK 13 ? Voir aussi. JVM, JDK, JRE, quelle différence ? JVM (Java Virtual Machine), JDK (Java Development Kit) et JRE (Java Runtime Environment) sont trois composants indispensables de la plate-forme Java. Ils fonctionnent ensemble dans les applications Java. Les développeurs qui débutent en Java se demandent souvent ce qui différencie la machine virtuelle Java (JVM), le kit de développement Java (JDK) et l'environnement d'exécution Java (JRE). Ils se demandent également comment ces trois composants de la plate-forme Java fonctionnent ensemble dans les applications Java.

Enfin, ils doivent savoir comment interagir avec chaque composant. En bref, la machine virtuelle Java ou JVM est le composant de la plate-forme Java qui exécute les programmes ; l’environnement de développement Java ou JRE crée la machine virtuelle Java ou JVM et s'assure que les dépendances sont disponibles pour les programmes Java ; le kit de développement Java ou JDK permet de créer des programmes Java qui peuvent être exécutés par la JVM et le JRE. Quelle version de Java utilisez-vous ? Qu'est-ce qui vous empêche de migrer vers une version plus récente ? Après Java 8, Oracle a pris un nouveau virage, en particulier au niveau des fonctionnalités introduites dans les dernières versions. On note par exemple l'arrivée d'un système de modules, l'inférence du type des variables locales, un garbage collector amélioré, l'outil en ligne de commande JShell permettant d'exécuter des instructions Java directement, entre autres.

Malgré tout cela, le constat est que beaucoup de développeurs sont encore accrochés à Java 8. C'est ce qu'indique un sondage réalisé sur Twitter par Trisha Gee, ingénieure et évangéliste Java bien connue dans la communauté et travaillant chez JetBrains. Les résultats du sondage sont sans appel. Sur près de 1400 répondants, 78 % disent utiliser principalement Java 8, contre 18 % pour Java 11 et 2 % respectivement pour Java 9 et Java 10. L'une des principales raisons est que Java 9 casse tout en termes de compatibilité. L'autre problème est que Java évolue maintenant plus rapidement qu'avant. Sources : Twitter, QCon London. JavaFX disponible en version 12, la boite à outils graphique suit l'évolution de Java.

Quelles sont les tendances d'apprentissage et préférences des développeurs Java en 2018 ? Une étude auprès de 1500 développeurs Java. La prochaine mise à jour de sécurité de Java 8 prévue pour le 16 avril 2019 sera payante, avertit Oracle. JDK 13 : de nouvelles fonctionnalités pour Java 13.