IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Java fête ses 30 ans : retour sur l'évolution d'un langage qui a su rester pertinent à l'ère du cloud, du DevOps et de l'IA.
Ce vétéran du développement peut-il encore séduire les nouvelles générations ?

Le , par Stéphane le calme

12PARTAGES

9  0 
Java fête ses 30 ans : retour sur l’évolution d’un langage qui a su rester pertinent à l’ère du cloud, du DevOps et de l’IA.
Ce vétéran du développement peut-il encore séduire les nouvelles générations ?

Lançé par Sun Microsystems le 23 mai 1995, Java est rapidement devenu « un pilier de l’informatique d’entreprise ». En 2025, la « mascotte » Duke de Java souffle ses trente bougies, mais le langage reste très vivant : son créateur James Gosling affirme qu’il est « encore très utilisé et activement développé » et qu’il a « des décennies de vie » devant lui. Java est toujours l’un des langages les plus populaires au monde, classé régulièrement dans le top 5 par l’indice Tiobe.

Selon une enquête d’Azul, 99 % des entreprises utilisent Java dans leurs applications ou infrastructures critiques. Son succès dans l’industrie est tel qu’on le compare volontiers au mortier et aux briques d’un bâtiment – selon Scott Sellers (PDG d’Azul), « Java est comme le mortier et les murs de briques de l’entreprise – il est juste là ». La longévité de Java est illustrée par son adoption dans des domaines variés (web, mobile, cloud, big data, IoT…) et par son évolution constante pour répondre aux besoins modernes. Comme le souligne un rapport, même après trois décennies « Java reste indispensable » aux entreprises et à la communauté de développeurs, grâce à son « adaptabilité » et sa compatibilité ascendante.

Origine et dénomination du langage

Avant de s’appeler Java, le langage était d’abord surnommé « Oak » par ses concepteurs (référence à un chêne visible depuis le bureau de James Gosling). Ce nom dut être abandonné car il était déjà déposé, et l’équipe de Sun chercha d’autres appellations (Java, DNA, Silk, etc.). Finalement, ce fut « Java » (en hommage au café éponyme) qui fut retenu. Ce choix « caféiné » a fait date : désormais, on associe Java (l’île d’Indonésie célèbre pour son café) à la portabilité du langage. Par la suite, la plateforme Java (JVM + bibliothèques) a concrétisé la fameuse promesse du Write Once, Run Anywhere (« écrire une fois, exécuter partout »).

Ironie du sort, des développeurs ont plaisanté que l’on devrait dire « Write Once, Test Everywhere » tant certains ajustements sont encore parfois nécessaires pour assurer cette portabilité. Quoi qu’il en soit, ce nom inspiré du café est maintenant synonyme de robustesse et d’universalité.


Un langage omniprésent en entreprise

Java est aujourd’hui omniprésent dans l’industrie : back-ends web, applications bancaires, systèmes embarqués, Big Data ou encore Android en utilisent la plate-forme. Dans les infrastructures critiques, Java fournit le socle de nombreux outils (par exemple Jenkins, Hadoop, ou des serveurs d’applications) et reste un choix de référence. Les chiffres sont éloquents : dans une étude auprès de 2 000 développeurs, près de 70 % déclaraient que plus de la moitié de leurs applications tournent sous Java, et près de 50 % l’utilisaient pour des projets d’intelligence artificielle.

Cette diffusion massive explique que Java demeure dans le top 10 des langages préférés (selon StackOverflow 2024), devant des langages plus récents comme C# ou C++. Certes la montée en puissance de Python ou Rust lui a fait perdre un peu de terrain (TIOBE le place autour de la 4 place aujourd’hui), mais Java a même été élu « langage de l’année 2015 » par cet indice, attestant de sa popularité historique.

« Java a survécu aux modes et aux changements de paradigmes. Des applets et servlets aux microservices et au cloud natif, Java a évolué tout en restant familier. C’est lui qui a ouvert la voie à l’open source en entreprise. Et, sans doute, l’entreprise n’a jamais regardé en arrière. » – Brian Fox (Sonatype)


Évolutions majeures du langage et innovations clés

Au fil des versions, Java a intégré des évolutions importantes pour rester compétitif et moderne. Par exemple :
  • Java 8 (mars 2014) : c’est la version qui a fait entrer Java dans l’ère de la programmation fonctionnelle. Elle introduit les expressions lambda et l’API Stream, permettant de traiter les collections de manière plus concise et expressive. De nouvelles fonctionnalités comme les default methods dans les interfaces et la nouvelle API Date/Time modernisent également le langage (JDK 1.8 fut publié le 18 mars 2014.
  • Java 9 (sept. 2017) : arrivée de la modularité via le projet Jigsaw (découpage en modules du JDK) et d’outils comme JShell (console interactive). Ce fut aussi la première version à adopter le cycle de sortie semestriel (deux versions par an).
  • Java 16 (mars 2021) : formalisation des records (types immuables concis pour les données) et des classes scellées (hiérarchies strictement bornées). Ces apports répondent aux critiques de verbosité du langage en simplifiant la déclaration des classes « porteuses de données ».
  • Java 17 (sept. 2021, LTS) : version long-terme (LTS) actuelle, apportant de nombreuses améliorations internes (nouveaux garbage collectors, optimisations JIT, etc.). Elle comprend aussi des fonctionnalités plus récentes (pattern matching, etc.) et confirme l’engagement de la communauté envers la compatibilité ascendante.
  • Java 21 (sept. 2023, LTS) : dernière version LTS en date, avec d’autres évolutions (types numériques à virgule améliorés, etc.). La prochaine version LTS, Java 25, est déjà attendue pour septembre 2025.
  • Portabilité et JVM : le cœur de Java réside dans sa JVM (HotSpot, OpenJ9, GraalVM…), qui exécute le bytecode Java sur chaque plateforme. C’est grâce à elle que la promesse Write Once, Run Anywhere devient réalité. Les compilateurs Just-In-Time et les collecteurs mémoire (garbage collector) ont beaucoup progressé pour optimiser les performances sur serveurs comme sur machines légères. Comme l’observe Charles Oliver Nutter (membre clé d’OpenJDK), « du langage lui-même à la JVM, le rythme des améliorations est stupéfiant ».
  • Cycle de développement : depuis 2017, une nouvelle version de Java sort tous les six mois, permettant d’ajouter régulièrement des améliorations. Les organisations peuvent choisir les versions à long terme (LTS) pour la stabilité – ainsi Java 8, 11, 17, 21 (et bientôt 25) bénéficient d’un support renforcé.

Chacune de ces étapes a contribué à moderniser Java sans trahir son héritage. Par exemple, Java 8 a réduit nettement la verbosité historique du langage. Plus récemment, l’introduction des records évite l’écriture manuelle de getters/setters, équations ou toString() pour des classes de données. Toutes ces innovations montrent que Java peut évoluer au rythme des nouveaux besoins sans perdre sa compatibilité avec le code existant. Andrew Cornwall (Forrester) le résume ainsi : « Ils ont transformé Java en un langage moderne offrant une bonne expérience développeur tout en conservant la compatibilité avec les versions précédentes ».


Gouvernance et avenir : d’Oracle à l’open source

L’histoire de Java comprend aussi une saga de licences et de gouvernance. En 2010, Oracle a acquis Sun Microsystems et repris Java. Si la plupart du code a été ouvert dans OpenJDK, Oracle a ensuite modifié son modèle : passage à la souscription payante (2019) puis à une facturation par employé (2023). Ces changements ont créé de la confusion et poussé de nombreuses entreprises à explorer des distributions libres de Java. Par exemple, Azul rapporte que la part d’organisation utilisant les versions Oracle est passée de 70 % à 30 % en six ans, et que près de 90 % des sondés envisagent de migrer vers des alternatives open source. Cette tendance s’explique par le coût et la complexité croissants : selon des analystes, le nouveau modèle d’abonnement d’Oracle a surtout pénalisé les grandes entreprises (moins de clients payants, frais calculés au nombre d’employés). Une étude récente confirme que seulement 10 % des utilisateurs Java interrogés comptent rester chez Oracle.

Deux ans après l'introduction par Oracle de sa tarification basée sur le nombre d'employés pour Oracle Java SE, les inquiétudes restent vives. 82 % des utilisateurs d'Oracle Java ont exprimé un malaise à l'égard de son modèle de coût (le même pourcentage que celui indiqué dans l'enquête et le rapport Azul 2023 sur l'état de Java). Le pourcentage d'organisations envisageant des alternatives à Oracle Java a également augmenté de manière significative, passant de 72% en 2023 à 88% aujourd'hui. Les cinq principales raisons invoquées pour envisager une migration loin d'Oracle Java (où les répondants pouvaient sélectionner toutes les réponses applicables) comprennent : le coût (42%), la préférence pour l'open-source (40%), les tactiques de vente d'Oracle (37%), l'incertitude créée par les changements continus de la tarification et des licences (36%), et les politiques restrictives d'Oracle (33%). Ces réponses soulignent que les entreprises recherchent de plus en plus des alternatives rentables, flexibles et transparentes à Oracle Java pour atténuer les risques financiers et opérationnels.

Pour autant, ce conflit de licences n’a pas écorné la position de Java. De nombreuses entreprises se tournent vers OpenJDK ou des distributions comme GraalVM, Red Hat ou AWS Corretto pour continuer à utiliser Java sans licence Oracle. Comme le relève une enquête, la présence massive de Java assure que même les soi-disant « tactiques de licence prédatrices » ne freinent pas sa popularité. Au contraire, la plateforme Java est soutenue par une vaste communauté OpenJDK et des acteurs comme Oracle, Azul, IBM, etc., qui veillent à son évolution.

Du côté d’Oracle, les responsables (comme Georges Saab) affichent leur confiance : Java a « un long passé de persévérance face aux évolutions technologiques » et on ne voit aucun signe d’essoufflement. En témoigne la feuille de route active du JDK (la version 25 sera notamment LTS en septembre 2025). Les développeurs vétérans ne voient pas Java disparaître de sitôt : par exemple Kohsuke Kawaguchi (créateur de Jenkins) affirme clairement que « Java n’est pas prêt de disparaître ». Au total, même si de nouveaux langages attirent l’attention, Java conserve ses forces (portabilité, stabilité, performance) et continue à servir de base aux innovations technologiques.


Conclusion

En fin de compte, Java à 30 ans reste plus que jamais fondamental dans le paysage logiciel : il en incarne l’indépendance et la maturité. Comme l’explique Brian Fox (Sonatype), Java a non seulement survécu aux changements de paradigme, mais il a aussi « pavé la voie de l’open source en entreprise » – une tendance dont l’écho perdure encore aujourd’hui. Et comme le résume Paul Krill : Java « continue d’assurer ce que les développeurs veulent et les entreprises ont besoin : indépendance, évolutivité et résilience ». Trente ans après sa naissance, Java fête donc un anniversaire sous les signes à la fois de la stabilité et de l’innovation, prêt à écrire de nouveaux chapitres pour ses décennies à venir.

Sources : vidéo dans le texte, Azul, State of Java 2025, OpenJDK, Sonatype, Georges Saab

Et vous ?

Java est-il aujourd’hui aussi « moderne » que Kotlin, Rust ou Go ? Qu’est-ce qui manque encore selon vous ?

Les lambdas, les records, le pattern matching… Ont-ils vraiment changé votre façon de coder en Java ?

La compatibilité ascendante de Java est souvent saluée, mais est-elle un frein à l’innovation plus radicale ?

Pourquoi, selon vous, Java reste-t-il aussi massivement utilisé en entreprise malgré la montée de nouveaux langages ?

Quel est selon vous l’avenir de Java dans le cloud natif ou l’intelligence artificielle ? Peut-il y tenir tête à Python ou Node.js ?

Le coût des licences Oracle a-t-il modifié vos choix technologiques ? Utilisez-vous encore la distribution officielle ?

30 ans, c’est long pour un langage : est-ce un signe de solidité ou un risque de stagnation ?

Quels moments ou versions clés ont marqué votre parcours avec Java ?

Java aurait-il connu le même succès sans la JVM ?

Quels usages émergents voyez-vous pour Java dans les années à venir (IoT, edge computing, quantique…) ?

Selon vous, Java existera-t-il encore dans 20 ans ? Sous quelle forme ?

Si vous deviez recommander Java à un·e jeune développeur·se aujourd’hui, que diriez-vous ?
Vous avez lu gratuitement 29 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 29/05/2025 à 23:59
Java est-il aujourd’hui aussi « moderne » que Kotlin, Rust ou Go ? Qu’est-ce qui manque encore selon vous ?
Java s'est modernisé, notamment avec les Virtual Threads, mais n'intègre toujours pas des concepts tels que :
  • L'optional chaining, qui est essentiel pour faciliter la gestion du null lorsque l'on manipule des objets business avec beaucoup d'imbrication. L'api Optional<T> est lamentablement insuffisant. Je vous laisse imaginer les patés de code qu'il est nécessaire d'écrire en Java pour produire un mapping custom null-safe
  • Les tuples sont essentiels pour les api one-liner, mais visiblement ce concept ne serait pas dans la philosophie du langage selon monsieur Brian Goetz. Quand je vois à quel point il serait possible de simplifier l'utilisation des futures api tels que StructuredTaskScope.Joiner<T,R> c'est juste désespérant
  • Les named arguments pour faciliter la maintenance d'un constructeur, les constructeurs en Java sont issue du C++ et apportent une confusion lorsqu'il est question d'ajouter des paramètres de même type, le pattern builder est au final plus une solution de secours qu'une solution élégante

Je trouve cela dommage que les utilisateurs du langage aient recours à des générateurs de code non-standard tels que Mapstruct ou Lombok (un peu moins grâce aux record) pour écrire du code plus concis. Nous pourrions comparer Java à d'autres languages JVM tel que Kotlin, ou bien nécessitant un GC comme Golang, mais Java n'est pas comparable à Rust.

Les lambdas, les records, le pattern matching… Ont-ils vraiment changé votre façon de coder en Java ?
Oui, il est juste impossible de se passer des lambdas depuis leur intégration dans Java 8, personne ne va s'amuser à écrire des instances de classe anonyme. Les record sont intéressants, mais je pense que tout le monde utilise déjà Lombok et n'en ressent pas le besoin. Le pattern matching qui implique instanceof est quand à lui une abération, une insulte au polymorphisme, cela va inciter les développeurs qui font du dev business à moins réfléchir sur les design pattern, cette feature n'était juste pas nécessaire.

La compatibilité ascendante de Java est souvent saluée, mais est-elle un frein à l’innovation plus radicale ?
La compatibilité ascendante n'est pas réelle, vous ne pouvez pas prendre un JAR contenant du code JAXB ou librairies similaires pour l'exécuter sous une JVM 9+

Pourquoi, selon vous, Java reste-t-il aussi massivement utilisé en entreprise malgré la montée de nouveaux langages ?
L'effet COBOL ? Blague à part c'est un langage appartenant à une ère où l'informatique de développement s'est beaucoup étendu, c'est LE langage universitaire 2005-2020, et ce ne sont pas les quelques features manquantes au langage qui feront de lui un mauvais langage, ça reste un langage performant pour du haut niveau, le fait qu'il soit plus de deux fois plus lent en moyenne même avec du GraalVM (source) par rapport au C, C++, Rust, Fortran etc est totalement acceptable pour les entreprises qui ne font pas du calcul pur

Quel est selon vous l’avenir de Java dans le cloud natif ou l’intelligence artificielle ? Peut-il y tenir tête à Python ou Node.js ?
Java est déjà présent dans le cloud natif depuis le début, que ce soit chez AWS, Microsoft Azure, Google GCP, ils ont toujours fournit des API Java en premier MAIS pour être totalement honnête j'ai déjà eu l'occasion de discuter avec des devs AWS : certains n'aiment pas Java, mais Java est très présent sur le marché. Pour ce qui est des AWS Lambda ou Azure/GCP Function (produit phare du cloud native) Java n'est tout simplement pas adapté à cause des temps de démarrage (malgré les optimisations de type snapstart)
En ce qui concerne l'intelligence artificielle le langage propose de nouvelles features telles que l'API Vector (toujours en incubation) mais je dirais que c'est mort. Python est devenu le langage de référence à l'image de Node.js/TypeScript pour les projets web front & back. Ce n'est pas vraiment la faute à Java, mais les professeurs de mathématiques préfèrent Python pour sa simplificité, pour ce qui est des performances les implémentations C, C++, Rust feront les calculs derrière les rideaux.

Le coût des licences Oracle a-t-il modifié vos choix technologiques ? Utilisez-vous encore la distribution officielle ?
Je suis passé sous OpenJDK & Amazon Corretto il y a bien longtemps, je n'ai jamais été impacté par les licences Oracle.

30 ans, c’est long pour un langage : est-ce un signe de solidité ou un risque de stagnation ?
Tout dépendra :
  • d'Oracle : Est-ce que le projet OpenJDK continuera d'évoluer ? Est-ce que Java fera l'effort d'offrir de meilleures performances malgré sa nature qui requiert un GC ?
  • des entreprises : Est-ce que les entreprises s'orienteront vers d'autres technologies de gré ou de force ?
  • des développeurs : Est-ce que les développeurs ne se mettront pas à faire plus de Rust, Python, TypeScript/Node.js selon les besoins ?


Quels moments ou versions clés ont marqué votre parcours avec Java ?
Java 5 Tiger, je connaissais déjà les templates en C++ mais c'était intéressant de voir l'alternative avec les generics en Java, puis Java 8 Spider avec les lambdas évidemment

Java aurait-il connu le même succès sans la JVM ?
Non, et pourtant aujourd'hui on cours derrière des solutions telles que GraalVM pour avoir du cold start

Quels usages émergents voyez-vous pour Java dans les années à venir (IoT, edge computing, quantique…) ?
Triste à dire mais aucun en particulier à part du business dans l'IoT et edge computing (domaine bancaire, assurance, hôtellerie...)... ce qui est déjà très bien non ? Je pense que d'autres langages sont plus adaptés pour l'ia ou la robotique même si on peut le faire en Java

Selon vous, Java existera-t-il encore dans 20 ans ? Sous quelle forme ?
Oui, sous la forme que les développeurs l'ont initiés avec leurs frameworks Struts, Spring, GWT, GraalVM etc

Si vous deviez recommander Java à un·e jeune développeur·se aujourd’hui, que diriez-vous ?
Il est fort probable que ce·tte jeune développeur·se apprenne Python à l'école, parce que nous avons transité de C++ vers Java et de Java vers Python. Concernant Java je lui dirais que c'est un langage très correct en terme de performance, en avance sur son temps, qu'il en a inspiré bien d'autres, qu'il a dominé une ère, qu'il est très répandu, possède une grande communauté, de nombreuses librairies qu'il/elle ne trouverait pas ailleurs (essayez de communiquer avec une base Sybase en Node.js vous allez comprendre). Je lui dirais aussi de s'intéresser aux mathématiques, aux algorithmes, et de ne pas se focaliser sur un langage en particulier mais d'en apprendre d'autres comme le Rust
0  0