Pour sa part, JetBrains a choisi d'organiser une journée spéciale Java en ligne, au cours de laquelle de nombreux conférenciers experts dans le langage de développement ont partagé leur expérience et donné des conseils et des astuces pour tirer le meilleur parti du langage.
Suite au succès de ce Java Day, l'éditeur a entrepris de faire parler les données afin d'apporter aux développeurs des réponses à des questions brûlantes : « une partie de ce que nous avons trouvé n'est peut-être pas une surprise, mais il existe également des informations très inattendues ».
Les données ont été compilées de différentes sources et JetBrains a associé les commentaires de son Developer Advocate Trisha Gee.
Où
La première question était : « Où sont basés la plupart des développeurs Java et combien sommes-nous ? » JetBrains a répondu à cela en combinant les informations les plus précises qu'il a pu obtenir, puis en extrapolant pour arriver à ce qu'il pense être une estimation assez juste.
« Notre meilleure estimation tirée de Estimation Model by the Market Research and Analytics Team (ndlr modèle d'estimation des développeurs de l'équipe d'études de marché et d'analyse) montre qu'environ 5,2 millions de développeurs Java professionnels dans le monde utilisent aujourd'hui Java comme langage principal. Mais ce nombre est peut-être plus proche de ~ 6,8 millions si nous incluons des développeurs professionnels qui utilisent principalement d'autres langages de programmation, mais qui font également un peu de Java en parallèle.
« Quant à l'endroit où ces développeurs Java sont concentrés, le plus grand nombre de développeurs Java vivent en Asie où environ 2,5 millions de développeurs utilisent Java comme langage principal. Les chiffres pour l'Amérique du Nord et l'Europe sont loin d'être proches de l'échelle de l'Asie. Vous demandez peut-être : "Mais pourquoi ? " Eh bien, nous avons eu exactement la même pensée au début, alors nous avons creusé un peu plus profondément dans ces régions pour voir exactement d'où venaient les chiffres. »
Où spécifiquement ?
JetBrains a examiné les pays individuels qui avaient la plus grande population de développeurs Java, puis a étudié pourquoi ces pays préfèrent spécifiquement Java aux autres langages pour le développement professionnel.
Le graphique ci-dessous montre les pourcentages de développeurs dans chaque pays qui utilisent Java comme langage principal (les répondants à l'enquête qui a été utilisée pour recueillir ces données pouvaient choisir jusqu'à trois langages principaux). La Chine et la Corée du Sud ont les valeurs les plus élevées à environ 51 % et 50 % respectivement. Les données ont été tirées de la State of the Developer Ecosystem Survey 2020.
Analyse de l'expert
« Les raisons pour lesquelles Java est probablement si populaire dans les 6 premiers pays incluent l'utilisation gratuite de Java, le support gouvernemental et l'open source. C'est notamment le cas de la Chine, de l'Espagne et du Brésil. C'est la base du développement mobile Android en Chine et en Inde, et l'embauche de personnel offshore pour créer des applications mobiles en Java est très répandue, ce qui pourrait expliquer le pic d'utilisation en Inde. Le pourcentage en Allemagne est également très élevé, ce qui pourrait être attribué au fait que Java est le langage le plus populaire en Allemagne pour les ingénieurs en logiciel, car il est utilisé pour créer des applications hautement évolutives pour une multitude de secteurs. La plupart des services d'entreprise s'appuient sur Java pour alimenter les applications qui permettent le fonctionnement quotidien des entreprises, telles que la paie, la gestion des stocks, les rapports, etc. L'Allemagne possède également un grand secteur financier qui utilise beaucoup Java pour sa technologie locale, comme les robots commerciaux, les systèmes de banque de détail et d'autres applications dont le secteur financier a besoin pour rester compétitif.
« Nous nous attendions peut-être à ce que les États-Unis aient un pourcentage plus élevé d’utilisateurs Java, mais il est également très logique que cela ne soit pas le cas. Il existe une grande pile technologique parmi laquelle choisir et souvent de nombreuses entreprises technologiques sont à l'avant-garde de cette pile, il se peut donc que les développeurs n'aient pas besoin de la puissance ou de la stabilité de Java et utilisent des langages qui leur permettent de construire et tester rapidement. »
Utilisation de Java par des développeurs professionnels
Au niveau des secteurs
Selon le State of the Developer Ecosystem Survey 2020, plus d'un tiers des développeurs professionnels utilisent Java comme langage principal et Java reste le deuxième langage principal parmi les développeurs professionnels après JavaScript.
Analyse de l'expert
« Il n'est pas surprenant de voir JavaScript et Java prendre les premières positions, car ils sont en quelque sorte associés; les développeurs qui travaillent avec Java écrivent souvent leur interface et tous les scripts rapides en JavaScript. Python occupe probablement la troisième place en raison de la diffusion de l'apprentissage automatique. En général, nous nous attendons à ce que le Web soit une grande partie de l'écosystème des développeurs et donc JavaScript, HTML et CSS, et PHP auront toujours une solide réputation. SQL sera également toujours là, car il n'y a pas grand-chose qui ne nécessite pas de bases de données dans une certaine mesure. Le C++ est également une sorte de langage solide dans la mesure où il est utilisé pour de nombreuses applications intégrées, il ne disparaîtra donc pas de sitôt des graphiques. Cependant, C# semble perdre du terrain, et je suppose que plus Java sera élevé, plus C# perdra du terrain, car ils sont tous deux très similaires en termes de capacités. Quant à savoir pourquoi je pense que Java est haut dans le domaine du développement professionnel - c'est similaire à ce qui a été mentionné à propos de l'Allemagne.
« La plupart des services en entreprises comptent sur Java pour les faire fonctionner. Ce n'est pas seulement le secteur informatique - presque toutes les entreprises, que ce soit dans la distribution, la fabrication ou la banque, ont des services informatiques dans le cadre de leur infrastructure, et ces services, tels que la paie ou la gestion des stocks, sont généralement construits avec Java dans le backend. Java est donc beaucoup utilisé par les développeurs professionnels qui travaillent pour ces entreprises. »
Utilisation des langages de programmation par les développeurs professionnels
Types de logiciels développés avec Java
Un rapide coup d'œil aux types de logiciels développés avec Java devrait nous éclairer sur ses statistiques d'utilisation. À 52 %, les services Web sont la sphère la plus populaire où Java est utilisé selon les résultats de l'état de l'écosystème des développeurs 2020.
Analyse de l'expert
« Il est surprenant de voir Java si répandu dans la Business Intelligence / Data Science / Machine Learning, car nous aurions pu penser que ce serait le domaine de Python. Les autres utilisations sont moins surprenantes, car le backend des services Web est souvent en Java, et il est logique que les applications métier soient écrites en Java, car elles devront également fonctionner avec le backend et les bases de données. »
Développement logiciel en Java
Principaux secteurs où Java est utilisé
Maintenant que nous savons pourquoi Java est utilisé par tant de développeurs professionnels, examinons spécifiquement les secteurs dans lesquels Java est utilisé.
Selon le Developer Ecosystem Survey 2020, les développeurs Java travaillent principalement dans les services informatiques (42%) et la finance et la FinTech (44%), mais cela ne veut pas dire que Java n'est pas utilisé dans d'autres secteurs.
Analyse de l'expert
« Le secteur Finance et FinTech concerne principalement les échanges financiers, les systèmes de banque de détail, la création de moteurs de calcul et le développement d'outils et de services personnalisés pour rendre l'entreprise compétitive sur le marché. La finance et la FinTech sont à peu près établies en Java, il n'y a donc pas de surprise ici. Il en va de même pour les services informatiques, car de nombreux systèmes de paie et services de gestion des stocks pour les entreprises non informatiques sont basés sur Java. Les autres secteurs sont cependant intéressants. Le développement mobile est probablement élevé à cause d'Android et Java est donc utilisé à ce titre. Le Big Data et l'analyse des données sont très intéressants, car ce secteur est dirigé par Python, mais il peut y avoir une certaine utilisation des langages Java et JVM dans le backend. Des outils de développement logiciel, bien, certainement. Les EDI JetBrains sont actuellement construits avec Java. Les autres secteurs sont cependant un peu une énigme, en fait, il serait vraiment intéressant d'entendre comment Java est utilisé dans ces secteurs. »
Secteurs où Java est utilisé
Outils Java
Versions Java
Java 8 reste la version la plus populaire. Il est utilisé par 75 % des développeurs professionnels qui utilisent Java comme langage principal. Le graphique ci-dessous montre la distribution des versions de Java étant donné que les développeurs en choisissent plusieurs dans le Developer Ecosystem Survey 2020.
Analyse de l'expert
« Quelques facteurs expliquent pourquoi Java 8 est si populaire. Premièrement, il a tout ce dont un développeur Java typique a besoin du langage, il a des lambdas et des flux et c'est généralement une belle version facile à utiliser. De plus, les gens ont été très réticents à passer à Java 9. Java 9 a introduit de gros changements architecturaux et les gens ont peur que ces changements ne cassent leurs applications qui sont construites en Java 8. En plus de cela, Oracle a introduit des versions semestrielles, et toutes les versions ne sont donc pas prises en charge pendant longtemps, donc Java 9, Java 10, Java 12 et Java 13 ne sont pris en charge que pendant 6 mois, ce qui explique probablement pourquoi elles ont toutes un si petit nombre d'utilisateurs. Java 13 a un pourcentage d'utilisation aussi élevé parce que lorsque cette enquête a été publiée, il s'agissait de la dernière version, et vous pouvez donc vous attendre à ce que les chiffres baissent dans quelques mois.
« Java 11 est sorti en 2018, c'est la version la plus récente avec un support à long terme. De nombreuses entreprises n'ont toujours pas encore migré vers cette version, car elles craignent que le dépassement de Java 9 (avec ses modifications architecturales) ne casse tout, Java 11 a également introduit de nouvelles licences et un nouvel abonnement, de sorte que cette version a fait naître la crainte supplémentaire que si vous utilisez la mauvaise version, dans le mauvais sens, Oracle vous infligera une amende. Le dernier grand facteur expliquant pourquoi de nombreux développeurs ne mettent pas à jour vers Java 11 est qu'il ne dispose pas de nombreuses nouvelles fonctionnalités intéressantes, de sorte que le risque de mise à niveau n'a pas été atténué par les capacités du langage. Java 17 sera la prochaine version avec un support à long terme et sera livrée avec de nombreuses nouvelles fonctionnalités, mais faire une mise à jour directe de Java 8 vers Java 17 entraînera son lot de problèmes.
« Ma prédiction est que je pense que la prochaine version à long terme, Java 17, sera plus populaire que la dernière LTS (version de support à long terme) Java 11. Pourtant, en préparation de Java 17, et je ne saurais trop insister sur ce point, je vous recommande de mettre d'abord à jour votre base de code vers Java 11, puis vers Java 17, pour éviter de gros problèmes. »
Popularité des versions Java en 2020
Serveurs d'applications populaires
Au cours des trois dernières années, Apache Tomcat est resté le serveur d'applications le plus populaire tandis que l'utilisation de JBoss EAP et WildFly a diminué de moitié. Les données fournies proviennent de tous les développeurs utilisant Java comme langage principal et ayant participé à l'enquête sur l'écosystème des développeurs en 2018 et 2020.
Analyse de l'expert
« Jetty prend la deuxième place, mais cela semble étonnamment bas. Il se peut que certains développeurs qui utilisent Spring Boot et d'autres frameworks de microservices ne réalisent pas ce qu'ils utilisent sous le capot - ils peuvent utiliser Tomcat ou Jetty sans en être conscients. »
Top 5 des frameworks Web
Spring Boot, qui avait la même popularité que Spring MVC en 2018, est maintenant devenu plus populaire en 2020. Les données fournies proviennent de tous les développeurs qui utilisent Java comme langage principal.
Analyse de l'expert
« Cela ne fait que confirmer que Spring est propriétaire du marché. Le fait qu'il y ait encore des personnes utilisant Struts 1 ne peut presque certainement le faire que pour les applications héritées. »
Top 5 des profileurs JVM
L'enquête sur l'état de l'écosystème des développeurs 2020 montre que VisualVM est utilisé par 24 % des utilisateurs tandis que la moitié n'en utilise aucun. Les données fournies proviennent de tous les développeurs qui utilisent Java comme langage principal.
Top-5 EDI / éditeurs
IntelliJ IDEA a augmenté sa part de 55 % en 2018 à 72 % en 2020, tandis que l'utilisation des quatre autres a diminué, ce qui est rapporté par le Developer Ecosystem Survey 2018 et 2020.
Analyse de l'expert
« Il n'est pas exclu que les informations puissent être un peu faussées - même avec la pondération que nous accordons aux résultats de notre enquête - étant donné que cela provient de l'enquête JetBrains State of Developer Ecosystem, et l'un des principaux produits de JetBrains est IntelliJ IDEA. Cependant, cela ne veut pas dire que ce n'est pas totalement déraisonnable ; dans d'autres enquêtes, IntelliJ IDEA est généralement l'un des EDI les plus utilisés et compte généralement environ 55 à 60 % d'utilisateurs. VSCode se développe, ce qui est préoccupant, non pas d'un point de vue concurrentiel, mais en fait du point de vue qu'il y a clairement un manque de compréhension de ce qu'un IDE vous donne. VSCode est un éditeur de code avec certaines fonctionnalités que vous trouverez dans un EDI, et des extensions qui peuvent fournir des fonctionnalités supplémentaires - donc si les gens se tournent vers VSCode pour le développement, cela peut impliquer que les développeurs ne savent pas ce qu'un EDI complet peut leur apporter. Dans l'espace Web, il est compréhensible d'utiliser un éditeur, car les développeurs Web travaillent généralement avec des langages dynamiques et utilisent souvent d'autres outils comme des plugins de navigateur pour leur donner ce dont ils ont besoin. Mais en Java, en particulier en Java professionnel, vous obtenez vraiment beaucoup sur un bon outil qui a une intégration avec le serveur d'application et vous pouvez vraiment utiliser l'analyse et la refactorisation et tout le reste.
« Je peux voir qu’en utilisant une version abrégée et modifiée de mon analyse des données de ce billet de blog, j’ai involontairement semé la confusion. Je voudrais clarifier l'intention derrière mes commentaires sur les développeurs et les EDI. Pour moi, si les développeurs ne comprennent pas ce qu'IntelliJ IDEA leur donne en tant qu'EDI complet, c'est un échec de ma part, car c'est mon travail depuis six ans d'apprendre aux développeurs ce qu'un EDI (en particulier IntelliJ IDEA) peut faites pour eux. Je suis fermement convaincu qu'il ne faut jamais blâmer les utilisateurs, ou les utilisateurs potentiels, de ne pas avoir compris un produit.
« Mon point de vue personnel sur les EDI pour les développeurs Java vient du fait que j'ai été développeur Java pendant plus de 20 ans, travaillant sur des projets de production Java, petits et grands. Je ne peux pas imaginer essayer de créer une application d’entreprise complexe sans l’aide considérable que vous procure un EDI comme IntelliJ IDEA. J'ai également vu beaucoup de développeurs utiliser VSCode et je vois les cas d'utilisation que les éditeurs de code couvrent bien. Il y a toujours de la place pour plus d'un outil dans votre boîte à outils, et comprendre ce qu'un outil fait bien nous aide à choisir le bon pour le bon travail. »
Source : JetBrains
Et vous ?
Quels sont vos langages de développement principaux ?
Si vous développez en Java, dans quel secteur êtes-vous ?
Sur quel type de projets travaillez-vous ?
Quels EDI utilisez-vous ?