La société de recherche Slashdata a interrogé plus de 17 000 développeurs dans le monde pour son 19e rapport State of the Developer Nation. Les chercheurs s'efforcent de mesurer le nombre absolu d'utilisateurs du langage de programmation, plutôt que de simplement regarder la popularité relative.
Les besoins (techniques et non techniques) des développeurs pendant la pandémie
Dans le contexte sanitaire actuel, la société s’est interrogée sur les besoins (techniques et non techniques) des développeurs. La flexibilité des heures de travail ou la charge de travail (34 % du panel) a été indiquée comme le besoin le plus pressant lié au COVID. Il a été suivi par une nécessité des outils et plateformes de collaboration (vidéo conférence incluse) ainsi que des ressources pour des cours en ligne. Il faut noter qu’un peu plus d’un développeur sur dix a demandé du soutien en santé mentale. Certains ont voulu plus d’espace sur le cloud, des composants hardware voire des machines, une augmentation des options de sécurité. 27 % des développeurs ont précisé ne pas avoir de besoins supplémentaires.
« Nous avons demandé aux répondants de choisir parmi un ensemble donné de besoins, techniques et non techniques, jusqu'à trois besoins supplémentaires que la pandémie a créés pour leurs propres activités de développement. 73 % des développeurs ont déclaré avoir des besoins supplémentaires en raison du COVID-19. En particulier, 34 %, soit 7,2 millions de développeurs, ont exprimé leur besoin d'heures de travail / charge de travail flexibles.
« Les politiques de quarantaine et de distanciation sociale ont encouragé de nombreux employeurs à autoriser leurs travailleurs à travailler à domicile, dans la mesure du possible. Une grande partie des travailleurs est aujourd'hui confrontée à l'inconvénient de déplacer leur espace de travail dans leur domicile. Parmi ces inconvénients figure la nécessité de prendre soin des ménages tout en maintenant la productivité. Dans ces circonstances, la flexibilité est considérée comme la clé du succès, ou simplement de la survie.
« Les autres besoins perçus les plus courants, signalés par environ un développeur sur quatre sont : les outils et plateformes de collaboration (26%), les ressources de formation en ligne (25 %) et les opportunités virtuelles pour soutenir le réseautage et l'interaction entre pairs (23 %) ). Parmi ces trois, le seul technique, à proprement parler, renvoie au besoin d'outils de collaboration, comme les plateformes de visioconférence. Les autres besoins principaux sont liés à l'autoamélioration, au self-management et à la socialisation.
« La suprématie des besoins non techniques est frappante. Toutes les nécessités techniques, à l'exception des outils de collaboration, figurent en bas de liste, n'étant rapportées que par environ un développeur sur dix : meilleures performances en termes de ressources informatiques (13 %), composants matériels (9 %), sécurité accrue ( 9 %) et un espace cloud supplémentaire (7 %). Il y a deux explications à ces modèles. Premièrement, les développeurs n'ont peut-être pas indiqué le besoin d'un soutien technique supplémentaire parce qu'il avait déjà été satisfait, c'est-à-dire que leurs employeurs les avaient déjà fournis. Il se peut aussi, cependant, que les développeurs ne perçoivent pas les considérations techniques comme étant plus importantes que la flexibilité, le réseautage et l'apprentissage. »
Communautés des langages de programmation
Il peut être difficile d'évaluer à quel point un langage de programmation est largement utilisé. Les indices disponibles auprès d'acteurs tels que Tiobe, Redmonk, l'enquête annuelle de Stack Overflow ou Octoverse de GitHub sont excellents, mais offrent principalement des comparaisons relatives entre les langages, ne donnant aucune idée de la taille absolue de chaque communauté. Ils peuvent également être biaisés géographiquement ou orientés vers certains domaines du développement logiciel ou des développeurs open source.
Taille des communautés de langages de programmation au troisième trimestre 2020
Développeurs de logiciels actifs, dans le monde, en millions (T3 2020 n = 11927)
« Les estimations que nous présentons ici portent sur les développeurs de logiciels actifs utilisant chaque langage de programmation à travers le monde. Elles sont basées sur deux éléments de données. Premièrement, notre estimation indépendante du nombre mondial de développeurs de logiciels, que nous avons publiée pour la première fois en 2017. Nous estimons qu'à la mi-2020, il y avait 21,3 millions de développeurs de logiciels actifs dans le monde. Deuxièmement, nos enquêtes à grande échelle et à faible biais qui atteignent des dizaines de milliers de développeurs tous les six mois. Dans les enquêtes, nous interrogeons régulièrement les développeurs sur leur utilisation des langages de programmation dans dix domaines de développement, nous donnant des informations riches et fiables sur qui utilise chaque langage et dans quel contexte ».
Selon le rapport, JavaScript est en tête du classement avec 12,4 millions de développeurs de logiciels actifs, suivi de Python avec 9,0 millions, puis de Java avec 8,2 millions. Les trois suivants sont quasiment liés, notamment C / C ++ avec 6,3 millions de développeurs, PHP avec 6,1 millions millions de développeurs et C# avec 6,0 millions de développeurs. TypeScript est inclus dans les statistiques JavaScript.
Slashdata a comparé ces chiffres à ceux de la mi-2017, notant que les développeurs JavaScript ont augmenté de 5 millions au cours de cette période et que Java a gagné 1,6 million de développeurs. La croissance de Python depuis 2017 n'est pas indiquée, mais les chercheurs ont déclaré qu'elle avait ajouté 2,2 millions de développeurs au cours de l'année dernière seulement, grâce à l'utilisation croissante de la science des données et de l'apprentissage automatique.
« JavaScript est de loin le langage de programmation le plus populaire, avec 12,4 millions de développeurs l'utilisant dans le monde. Notamment, la communauté JavaScript n'a cessé de croître en taille au cours des trois dernières années. Entre le deuxième trimestre 2017 et le troisième trimestre 2020, près de 5 millions de développeurs ont rejoint la communauté - de loin la croissance la plus élevée en termes absolus de tous les langages. Même dans les secteurs logiciels où JavaScript est le moins populaire, comme la science des données ou la réalité virtuelle / réalité augmentée, plus d'un cinquième des développeurs l'utilisent dans leurs projets
« Pour le deuxième semestre consécutif, Python est le langage le plus largement adopté derrière JavaScript. Python compte désormais 9 millions d'utilisateurs, après avoir ajouté 2,2 millions de nouveaux développeurs nets au cours de l'année écoulée seulement, devançant Java au début de 2020. La montée en puissance de la science des données et de l'apprentissage automatique (ML) est un facteur évident de sa popularité. Un impressionnant 77% des développeurs ML et des data scientists utilisent actuellement Python. Pour la perspective, seuls 22% utilisent R, l'autre langage souvent associé à la science des données.
« Java, avec plus de 8 millions d'utilisateurs actifs dans le monde, est la pierre angulaire de l'écosystème des applications mobiles - Android - ainsi que l'un des langages à usage général les plus importants. Son adoption est peut-être restée stable au cours des six derniers mois, mais, dans l’ensemble, la communauté Java a gagné 1,6 million de développeurs depuis la mi-2017, ce qui correspond à une croissance de 24 %.
« Le groupe de langages majeurs et bien établis est complété par C / C ++ (6.3M), PHP (6.1M) et C # (6M). Le fait que C# ait perdu trois places dans le classement des communautés de langages au cours des trois dernières années s'explique principalement par sa croissance plus lente par rapport au C/C ++ et PHP. C et C ++ restent les langages de base dans les projets IdO (à la fois pour le codage sur l'appareil et au niveau des applications), alors que PHP est toujours le deuxième langage le plus couramment utilisé dans les applications Web, après JavaScript. D'un autre côté, C# peut maintenir sa domination dans les écosystèmes de jeux et de développeurs réalité augmentée / réalité virtuelle, mais il semble perdre son avantage dans le développement de postes de travail - peut-être en raison de l'émergence d'outils multiplateformes basés sur les technologies Web ».
C# gagne en popularité, mais à un rythme plus lent que PHP et C / C ++
Dans les éditions précédentes de ce rapport, les chercheurs ont constaté que Kotlin disposait de l'une des communautés de langage à la croissance la plus rapide, ayant plus que doublé sa taille depuis la fin de 2017, passant de 1,1 million au quatrième trimestre 2017 à 2,3 millions au troisième trimestre 2020. Cela est également très évident dans le classement de Kotlin, où il est passé de la 11e à la neuvième place au cours de cette période (une tendance largement attribuée à la décision de Google de faire de Kotlin son langage préféré pour le développement Android).
Swift a dépassé Kotlin en popularité cette année, après avoir attiré un peu plus de nouveaux développeurs nets au premier semestre 2020 (400 000 contre 300 000). Depuis que Swift est devenu le langage de développement par défaut sur toutes les plateformes Apple, l'adoption d’Objective-C a diminué régulièrement. Cette sortie progressive de l'écosystème d'applications Apple s'accompagne également d'une baisse significative du rang d'Objective-C, de la neuvième à la 12e place.
Enfin, les langages les plus spécialisés (Go, Ruby, Rust et Lua) ont des communautés pouvant comporter jusqu'à 1,5 million de développeurs de logiciels actifs chacun. Ruby et Lua existent depuis plus de deux décennies maintenant, mais leurs communautés ont essentiellement cessé de croître au cours des trois dernières années. Au contraire, les communautés Go et Rust semblent attirer activement des développeurs, bien que l'on ne sache toujours pas si les deux langages grimperont dans le classement des langages de programmation dans la période à venir.
Pourquoi les développeurs adoptent ou rejettent les technologies cloud ?
Slashdata a également examiné l'utilisation des technologies cloud, en demandant aux développeurs leurs préférences technologiques et les raisons d'adopter ou de rejeter les technologies cloud. Les développeurs backend préfèrent les conteneurs (60 % d'adoption), les Database as a Service (45 %) et les Cloud Platform as a Service (32 %). L'orchestration de conteneurs était également populaire (27 %) et plus de la moitié des répondants préféraient Kubernetes.
« L'abstraction et la simplification sont deux des principaux moteurs de l'adoption massive des technologies cloud, mais nous ne pouvons ignorer le rôle que joue la flexibilité. Faire tourner des instances pour faire face à une demande variable, créer des environnements de test temporaires et ajouter du stockage selon les besoins est extrêmement puissant.
« Un aspect souvent négligé de cette flexibilité est que les développeurs et les organisations ont la flexibilité de choisir. Ils sont moins contraints par des processus d'achat monolithiques, car, pour le dire simplement, ces décisions importent moins. Dans un monde où l'infrastructure peut être provisionnée et détruite à volonté, et où les données et les configurations de serveur peuvent être facilement transférées entre des systèmes homogènes, les fournisseurs de cloud doivent trouver d'autres domaines de différenciation pour être compétitifs. Le verrouillage des fournisseurs est beaucoup moins un problème pour les utilisateurs qu'il ne l'était autrefois, et la montée en puissance du développeur en tant que décideur a mis encore plus de pouvoir entre leurs mains.
« Pour chaque technologie cloud, à l'exception des outils d'orchestration, la tarification et le support / documentation sont les deux facteurs les plus importants que les développeurs prennent en compte lors de l'adoption de cette technologie. Pour la plupart, ces deux facteurs basculent entre la première et la deuxième place, cependant, la tarification tombe à la cinquième place pour les développeurs envisageant d'adopter un outil d'orchestration, alors que le support / documentation reste en tête de loin. Environ trois de ces développeurs sur dix ont choisi la facilité et la vitesse de développement (32 %), l'intégration avec d'autres systèmes (31 %), la communauté (30 %) et la tarification (29 %) comme raisons d'adoption. D'autre part, la communauté et l'évolutivité sont généralement plus importantes pour les développeurs qui choisissent un outil d'orchestration.
« Une grande partie de cette distinction est motivée par la domination de Kubernetes. Avec 57 % des développeurs backend qui utilisent un outil d'orchestration choisissant Kubernetes, il s'agit de l'outil d'orchestration le plus populaire et, surtout, il est gratuit et open source. Il va de soi, par conséquent, que la tarification n'est tout simplement pas un problème pour les développeurs utilisant Kubernetes, mais qu'ils apprécient le soutien de la communauté qui les aide à maîtriser un outil aussi complexe.
« En effet, outre la tarification beaucoup moins importante pour ces développeurs, la courbe d'apprentissage est également moins importante. Il semble que ces développeurs comprennent qu'ils font face à des niveaux élevés de complexité et d'abstraction et acceptent qu'il y a beaucoup à apprendre dans cet espace. Mais pour les développeurs qui veulent l'abstraction et la simplicité offertes par un système de gestion de conteneurs commerciaux, de nombreuses options payantes existent, et la tarification est toujours un facteur important dans cet espace ».
Source : SlashData
Voir aussi :
Les raisons de l'adoption accélérée du langage Julia : un langage polyvalent, mais plus scientifique, supporte l'introspection et la métaprogrammation, selon Lee Phillips
Programmation : quelles sont les qualités essentielles pour être un acteur de la filière ? Quelles sont celles qui montrent qu'on est fait pour ce job avant d'entamer un programme d'études ?
La popularité de Java continue de décliner et profite à Python qui se rapproche de plus en plus de la seconde place, selon l'édition d'octobre 2020 de l'index TIOBE
Swift System est désormais open source, d'après Apple qui annonce aussi la prise en charge de Linux pour la bibliothèque de programmation bas niveau destinée à faire oublier certaines tares du C