introduction
Vous pouvez souvent entendre des déclarations selon lesquelles « Java est en train de mourir » et toutes les personnes modernes devraient passer à des langues modernes comme Go dès que possible. Ils disent que ce sera bien avec eux, mais ce sera mal avec les vieilles langues que tout le monde est sur le point d’abandonner. Mais est-ce vrai ?
Vous pouvez voir deux variantes différentes dans les déclarations « avant la mort ». Certains disent littéralement « Java est en train de mourir » : le temps de la popularité de la langue est révolu, de moins en moins de gens en ont besoin, et ceux qui restent sont sur le point de l’abandonner. D’autres pensent que Java peut être bien en termes de popularité, mais technologiquement, il est bloqué au siècle dernier, il n’est donc pas respectable d’y écrire maintenant.
« Personne ne veut Java »
Dans le premier cas, regardons les chiffres concrets au lieu de « Je pense que oui ». Malheureusement, il n’y a pas d’indicateur unique de la popularité des langues dans le monde, et toutes les sources disponibles peuvent grandement induire en erreur. Mais si vous comparez plusieurs sources différentes, vous pouvez vous fier au résultat avec beaucoup plus de confiance que les données « mon ami John code dans Rust ».
Le plus célèbre de ces « hits parades » est l’indice TIOBE. Oui, il peut y avoir des questions sur sa méthodologie et ses résultats ; vous ne pouvez pas le croire aveuglément, mais vous ne pouvez pas non plus l’ignorer complètement. Ouvrons les données les plus récentes – pour juillet 2021, Java est à la deuxième place. Selon TIOBE, ce n’est pas seulement une « langue mourante », mais l’une des langues les plus populaires au monde.
Une autre source bien connue est l’enquête annuelle auprès des développeurs de Stack Overflow. Ouvrons les résultats de ce sondage pour 2020. À première vue, la position de Java est beaucoup plus faible, n’occupant que la cinquième place. Mais l’impression change quand on regarde de plus près les « avant-gardes » : il s’agit de JavaScript, HTML, CSS et SQL. Tout d’abord, ce sondage incluait non seulement des langages de programmation mais aussi des langages de balisage, ce qui fait la différence. Et deuxièmement, toutes les options à venir ont en commun que les développeurs les utilisent souvent en plus de la langue principale. Si les développeurs .NET et Java utilisent un peu SQL, donc tous deux l’ont mentionné dans l’enquête, cela rend-il SQL plus important que C # et Java ?
Et ici, il est intéressant d’examiner une troisième source : une enquête de JetBrains. Dans ce cas, la conclusion était que le langage le plus utilisé, en général, est JavaScript, mais le plus populaire en tant que langage principal est Java.
Ici, on pourrait soutenir que « mais la dynamique est probablement négative ». Les chiffres varient d’une source à l’autre, il est donc impossible de dire quoi que ce soit avec une certitude absolue, mais s’il y avait une énorme baisse annuelle, alors elle serait perceptible. Mais en pratique, c’est le contraire : dans les trois sources, les positions Java sont stables pendant au moins 2-3 ans. Dans l’ensemble, si vous démarrez un projet Java maintenant, vous ne vous retrouverez pas seul dans quelques années.
« Pourquoi est-ce important? »
Pourquoi la popularité d’une langue est-elle importante ? Pourquoi utiliser les mêmes langues que les autres ? Bien sûr, il n’y a pas d’exigence stricte, quelqu’un écrit en Haskell et est content. Mais il y a plusieurs facteurs importants.
Par exemple, le taille du marché du travail. Si un développeur clé de votre entreprise décide de démissionner et écrit un projet dans quelque chose de rarement utilisé, sera-t-il facile de trouver un remplaçant ? Et le problème inverse : si vous êtes un développeur qui a arrêté, serait-il facile de trouver un bon emploi dans votre domaine ? Java possède l’un des plus grands marchés de l’emploi, bien plus grand que Go.
De plus, la grande popularité de la langue signifie qu’il y aura beaucoup d’informations à son sujet sur Internet (articles de blog, rapports, réponses à Stack Overflow), mais lorsque vous utilisez une langue rare, vous pouvez faire face à un manque d’informations . Bien sûr, il y a un certain romantisme à être un pionnier, mais ce n’est pas la stratégie la plus gagnante pour résoudre rapidement les problèmes.
De telles questions sont aussi importantes que « y a-t-il une correspondance de modèle ? » lors du choix d’un langage, et Java a un énorme avantage simplement en raison de la taille de l’écosystème. En raison du nombre de personnes qui l’utilisent, il s’avère être un bon choix lors de la création de nouveaux projets, ce qui encourage à son tour un afflux de personnes. Et si ce processus auto-entretenu disparaît un jour, ce ne sera certainement pas le cas dans les prochaines années.
« Java est bloqué au siècle dernier. »
Passons maintenant à la deuxième thèse : alors que la locomotive de la technologie s’élance, voici un langage des années 90. Pourquoi l’utiliseriez-vous alors que vous avez une langue plus moderne ?
De manière générale, pour de nombreuses personnes, ce n’est pas le langage lui-même qui est le plus important, mais sa plate-forme et « tout autour » : solutions des principaux fournisseurs et bibliothèques open source des passionnés, support IDE et langages JVM alternatifs. Et si l’on considère tout cela dans son ensemble, il y a beaucoup de développement en cours.
Mais nous ne pouvons même pas envisager des projets tiers, mais regardez ce qui est arrivé directement à Java au cours de la dernière décennie.
En 2011, Oracle a acquis Sun Microsystems, obtenant ainsi Java, et à ce moment-là, les perspectives ne semblaient pas claires. Les autres produits arrivés chez Oracle à cette époque (OpenOffice, Solaris, Hudson) avaient un avenir difficile.
Mais Java s’est avéré différent: ici, Oracle n’a pas abandonné l’achat en magasin, mais a investi des ressources dans le développement. Et la version de Java 8 sortie en 2014 a été un événement majeur ; grâce aux innovations, la langue changeait et se modernisait sensiblement. L’industrie a volontiers accepté cette version, et ceux qui doivent encore maintenir des projets sur des versions plus anciennes sont généralement sympathiques.
En 2017, avec l’avènement de Java 9, un projet de longue date visant à modulariser le JDK est sorti. Comme pour tout projet majeur qui existe depuis des décennies, les dépendances internes du JDK ont commencé à ressembler à des spaghettis au fil du temps. Et pour le « scier », ces dépendances ont dû être démêlées en un système cohérent, c’est-à-dire qu’un refactoring gigantesque a été effectué. Avec des projets qui sont vraiment « enlisés dans le passé », cela ne se produit pas.
Et depuis 2018, un nouveau cycle de publication est en vigueur : au lieu de préparer une grande version de Java pendant plusieurs années, ils ont commencé à publier une version plus petite tous les six mois. Cela a été fait juste pour suivre le rythme de l’industrie, pour publier des fonctionnalités plus rapidement (si certaines sont prêtes, vous n’avez pas à les mettre de côté pendant des années jusqu’à la sortie de la prochaine version). Et il y avait un flux régulier de sorties qui n’ont pas tout bouleversé, mais ont quand même ajouté quelque chose de notable.
En général, il est incorrect de parler du manque de développement. Ce dont nous pouvons parler, c’est du plus grand conservatisme de Java par rapport aux autres langages. Il est vrai que dans de nombreux dossiers, ils essaient d’agir avec prudence, plutôt que de foncer tête baissée. Mais cela nous amène à la question suivante : « foncer tête baissée » est-il vraiment une bonne chose ?
Il y a quelques années, il y avait beaucoup de plaintes dans le monde frontal sur la façon dont les choses changeaient rapidement, vous empêchant d’être calme et concentré. Et dans la communauté Java, tout le monde n’est pas non plus satisfait du nouveau cycle de publication.
Conclusion
Il n’y a pas de vitesse à laquelle la technologie doit évoluer : ce qui est bon pour une startup est mauvais pour une banque géante. Et le conservatisme de Java lui-même n’est ni un plus ni un moins : il est bon pour certains et mauvais pour d’autres.
Tout ce qui précède ne signifie pas que Java est le meilleur langage au monde pour tout le monde sans exception, et vous devriez l’utiliser. Lors du choix d’une langue, cela vaut la peine de regarder ce qui est requis dans un cas particulier, plutôt que de s’appuyer sur Internet en criant « passez de X à Y, sinon, vous êtes en retard ». Et si vous l’abordez de cette façon, Java sera toujours un bon choix dans la plupart des cas.