Guides Essentiels

La modernisation de Java : un écosystème à la manœuvre

Introduction

En 2018, Mark Reinhold, responsable du développement de la plateforme Java chez Oracle s’exprimait sur l’avenir du célèbre langage de programmation. « [Java] a été déclaré mort à de multiples occasions, accusé d’être en mode de maintenance ou même d’être le Cobol du 21eme siècle. […] Mais peu importe, elle est toujours l’une des plateformes de développement les plus populaires au monde », déclarait-il alors.

Trois ans plus tard, l’affirmation tient toujours si l’on se réfère aux différentes études de popularité consacrées à cet aspect. Mark Reinhold expliquait également que lui et les autres stewards en charge des projets liés à Java et JDK misaient sur des ajouts incrémentaux « quand cela est nécessaire », mais sans compromettre « la clarté et la simplicité du langage ».

Pour autant, Java semble bien perdre en vitesse, et – contrairement aux déclarations du responsable – a la réputation d’apporter son lot de complexités. En 25 ans, bientôt 26, le langage de programmation a évolué, mais il doit désormais s’adapter pleinement aux architectures de microservices. Non pas qu’il n’en soit pas capable, bien au contraire.

En revanche, cela réclame plus que de petits ajustements ou plutôt une quantité importante de ces modifications mineures. La preuve en est, Oracle et la communauté ont décidé d’accélérer le rythme de publication des releases. En à peine trois ans, sept versions du langage ont vu le jour. Le premier objectif des développeurs est de simplifier Java, comme en témoigne Java 14.

Les versions 15 et 16 (officiellement disponible en mars 2021) du JDK suivent une approche similaire. Cela va bien au-delà de la dépréciation de fonctionnalités désormais désuètes ou de la simplification des classes. Le langage de programmation repose sur ces propres API, ses propres machines virtuelles, aussi. Oracle n’est plus forcément le maître à bord et doit prendre en compte les évolutions de Jakarta EE sous l’égide de la fondation Eclipse.

Et si les stewards engagés par la firme de Larry Ellison sont bien souvent à la manœuvre, ils doivent désormais guider les propositions dans un écosystème toujours plus vaste. Par exemple, la machine virtuelle Java (JVM) dessert de nombreux langages (R, Ruby, JavaScript, Kotlin, etc.) et, à l’ère de Kubernetes, les développeurs eux-mêmes doivent bien souvent composer avec plusieurs niveaux de complexité.

Les frameworks comme Spring, MicroProfile, Helidon ou encore Micronaut gagnent en importance pour simplifier ce chemin vers le cloud, mais c’est bien la manière dont les contributeurs de ces projets interprètent les capacités comme GraalVM, à la fois un compilateur et une VM polyglotte, que Java conservera sa pertinence auprès des entreprises. Dans un même temps, le changement de licence du JDK à partir de la version 11 et les questions de marques déposées pourraient freiner l’innovation.

C’est l’ensemble de ces points que nous abordons à travers les différents articles de ce guide essentiel. Enfin, nous proposons quelques conseils afin de mieux gérer les spécificités de Java en production.

1Contexte-

Schisme, désamour et diversification

Actualités

La Fondation Eclipse en passe de devenir européenne

La fondation open source Eclipse souhaite poursuivre sa croissance internationale en basculant son statut juridique à Bruxelles. Lire la suite

Actualités

Java : Oracle migre OpenJDK vers Git et GitHub

Alors que Git et GitHub gagnent du terrain auprès d’une majorité de développeurs, Oracle a déplacé le dépôt OpenJDK vers le système de gestion de code source Git et la plateforme d’hébergement GitHub. Lire la suite

Actualités

Jakarta EE 9 : des classes renommées pour satisfaire Oracle

Introduite en décembre 2020, la version 9 de Jakarta EE est une release forcée par des impératifs légaux : Oracle conserve la marque Java. Lire la suite

Actualités

Poussé vers la sortie par certains, Java n’a pas dit son dernier mot

Java semble perdre en popularité, dépassé par des langages réputés pour leur simplicité et leur efficacité. Cependant, l’écosystème créé par Sun et propulsé par Oracle évolue pour dépasser son cadre de départ. Lire la suite

2Microservices et VM-

Des transformations technologiques en cours…

Actualités

GraalVM, ou l’espoir de faire passer Java à l’ère du serverless

Un an après son passage en production, GraalVM continue de faire des émules dans la communauté Java. En raison de ses capacités de compilation et d’interopérabilité, le projet est perçu comme le candidat idéal pour la modernisation de l’écosystème Java, à l’ère des microservices et du FaaS. Lire la suite

Actualités

Microservices : Oracle intègre GraalVM Enterprise à Java SE Subscription

Le compilateur GraalVM Enterprise est désormais disponible dans la distribution commerciale Java SE. Il s’agit toujours et encore de proposer une solution afin d’accélérer le lancement des microservices. Lire la suite

Actualités

Oracle couple un format JSON natif et JavaScript dans sa base de données

Oracle a (re) présenté les nouveautés d’Oracle 21c. Outre une fonctionnalité qui s’approche d’une blockchain, le fournisseur cloud amoncelle les capacités censées faire de son SGBD multimodèle un produit « tout-terrain ». Il faut principalement retenir l’apport d’un format JSON natif et le support de JavaScript. Lire la suite

3Écosystème(s)-

… pas seulement guidées par Oracle

Actualités

Quarkus : Red Hat veut faciliter le passage des développeurs Java à l'ère du cloud natif

En mars dernier, Red Hat présentait Quarkus, un framework open source pour le développement en Java de microservices containerisés sur Kubernetes et OpenShift. Il vise à accélérer leur déploiement en exploitant les capacités de GraalVM et Hotspot, les outils de machine virtuelle de l’OpenJDK. Il est disponible en version 1.0 depuis le mois de novembre. Lire la suite

Actualités

Red Hat optimise JBoss EAP pour la containerisation

L’éditeur renforce la sécurité, la containerisation et l’observabilité de JBoss EAP. Il se prépare également à adapter les nouveautés de Jakarta EE 9. Lire la suite

Actualités

Java sur Azure : VMware et Microsoft lancent Azure Spring Cloud

Dans le cadre de la conférence virtuelle SpringOne, Microsoft et Pivotal/VMware ont annoncé la disponibilité générale d’Azure Spring Cloud, un service à la demande entièrement managé pour déployer, opérer et passer à l’échelle des microservices Java développés avec le framework Spring. Lire la suite

Actualités

TypeScript 4.0 : des améliorations pour les développements à large échelle

Microsoft a annoncé la disponibilité générale de TypeScript 4. Le géant du cloud veut prouver que son sur-ensemble de JavaScript est taillé pour les entreprises. Lire la suite

Actualités

Node.js 14, une réponse aux attentes des développeurs en entreprise

Node.js 14 est maintenant disponible avec de nouvelles fonctionnalités, visant à répondre aux demandes des développeurs qui adoptent de plus en plus l’environnement d’exécution côté serveur, pour JavaScript. Lire la suite

4Développer-

Maîtriser les spécificités de Java

Conseils IT

Bien débuter : comment paramétrer JAVA_HOME dans Windows

Configurez JAVA_HOME et vérifiez les résultats avec les astuces suivantes. Découvrez comment une installation propre de la variable de système PATH peut bénéficier à vos environnements locaux. Lire la suite

Conseils IT

JBoss vs Tomcat : lequel de ces deux serveurs d'applications Java choisir ?

Après plus de vingt ans d’existence, Apache Tomcat et JBoss Enterprise Application Platform (EAP) de Red Hat sont deux des serveurs d'applications les plus utilisés. Ils prennent tout deux en charge le développement et la production, mais comment choisir celui qui vous convient le mieux ? Lire la suite

Conseils IT

Apache Camel, Mule ESB, Spring : bien choisir son framework d’intégration

Un bon framework d’intégration devrait sous-tendre toute stratégie d’application. Apache Camel, Spring Integration et Mule ESB peuvent simplifier l’intégration à l’échelle. Nous les présentons dans cet article. Lire la suite

Conseils IT

Régler la JVM ou optimiser le code Java : quelles différences ?

Le réglage de la JVM et l’optimisation de Java semblent similaires, et tous deux visent à améliorer les performances des applications. Mais ils adoptent des approches fondamentalement différentes pour atteindre leurs objectifs. Lire la suite

Conseils IT

Java : comment éviter la surconsommation de ressources CPU

Déterminer pourquoi une application Java s’accapare trop de ressources CPU n’est pas toujours simple. Passons en revue quelques erreurs courantes et examinons ce qui provoque ces défauts sous le capot. Lire la suite

5Glossaire-

Quelques définitions

Close