Il y a actuellement 24,3 millions de développeurs actifs au niveau mondial, soit 3 millions de plus qu'en octobre 2020. C’est l’estimation indépendante que fait l’équipe SlashData dans son rapport « State of the Developer Nation », en s’appuyant sur ses évaluations régulières en ligne (40 000 développeurs interrogés chaque année), la dernière menée auprès de 19 000 développeurs de 155 pays entre novembre 2020 et février 2021. Quels sont leurs langages de prédilection et pour quels usages ? Classés par nombre d'utilisateurs, JavaScript arrive en tête avec une communauté de 14 millions de développeurs, soit plus de 4,5 millions de gagnés depuis fin 2017. Il est principalement mis à contribution dans les environnements web et cloud, tandis que Python, avec ses plus de 10 millions d’utilisateurs se concentre sur la data science, l’apprentissage machine et les applications IoT. Ce dernier a gagné 1,6 million de développeurs l’an dernier et c’est la plus forte progression parmi tous les langages dépassant les 6 millions d’usagers. Il la doit à la montée en puissance des data sciences et du machine learning puisque dans ces deux domaines, 70% des développeurs disent l'utiliser.
Java suit avec 9,4 millions d’utilisateurs estimés, surtout pour les apps mobiles et le cloud, et C/C++ avec ses 7,3 millions d’adeptes est mis à profit dans l’embarqué et les apps IoT. C# et PHP ferment la marche des langages les plus pratiqués avec 6,5 et 6,3 de pratiquants. Le rapport inclut aussi les outils de développement visuel qui seraient entre les mains de 3,3 millions de personnes pour des applications desktops, AR et VR mais aucune autre précision n’est fournie sur cette catégorie qui semble s'apparenter au low-code. Parmi les autres langages évoqués, Kotlin continue son ascension avec 2,6 millions de développeurs et, dans les outils de niche, Rust et Lua sont ceux qui ont progressé le plus vite sur les 12 derniers mois.
Du matériel spécialisé suivant les volumes traités
Le rapport de SlashData zoome ensuite sur le type de données exploitées par les développeurs en ML/AI/data science (DS), montrant que 68% d’entre eux traitent des données texte non structurées. Mais ces spécialistes de l'analytique et de l'apprentissage machine travaillent aussi fréquemment avec des données de tous types, l’audio étant celui qui est le plus fréquemment combiné à d’autres types (images, vidéo ou texte). Les applications les plus courantes sur lesquels ils travaillent avec les données audio sont le text-to-speech (47%) et la reconnaissance vocale (46%). Plus de la moitié (53%) des développeurs ML/IA/DS sont professionnels, mais pas obligatoirement de façon exclusive. Les autres sont étudiants, amateurs du domaine ou combinent les trois profils. Les étudiants font beaucoup de classification d’images, 72% de ceux qui utilisent les données images le font pour ce type d’application contre 68% pour les professionnels.
Pour la plupart des développeurs ML/AI/DS, les jeux de données allant jusqu’à 25 Go peuvent être traités avec des matériels puissants mais non spécialisés. (Crédit : SlashData)
Le rapport se penche aussi sur la catégorisation des volumes de données traitées. L’objectif est ici de prendre en compte les étapes de puissance de traitement requise. « Pour la plupart des développeurs ML/AI/DS, nous prévoyons qu’un ensemble de données de 1 à 25 Go peut être manipulé avec du matériel puissant mais non spécialisé », explique SlashData. 26% des développeurs ML/AI/DS qui utilisent des données texte et 41% de ceux qui traitent des données vidéo auront besoin de recourir à un matériel spécialisé pour gérer l’apprentissage de leurs modèles, ce qui place une barrière à l’entrée pour ce type de traitement. Impossible de les réaliser sans ressources d’infrastructure suffisante. 25% d’entre eux interviennent sur des datasets allant de 1000 à 25 000 lignes de données. Cela dépend du type d’applications. Ainsi, 22% de ceux qui font de la simulation travaillent typiquement avec des jeux de 20 000 à 50 000 lignes de données, tandis que ceux qui travaillent avec des outils d’optimisation montent jusqu’à 50 000/100 000 lignes de données. Cela dépend aussi de leur profil. Les professionnels travaillent sur les plus gros jeux de données, alors qu’étudiants et hobbysts recourent à des datasets plus petits. Au deux bouts de la chaîne, 14% des développeurs ML/AI/DS utilisent des jeux de données structurées comportant moins de 1000 lignes de données, tandis qu’une proportion équivalente grimpent jusqu’à plus de 500 000 lignes.
De l'influence des développeurs sur les décisions d'achat
Le rapport met par ailleurs en évidence l’influence que les développeurs peuvent avoir au sein des organisations qui les emploient. 64% des responsables d’équipes de développement font des recommandations et sont régulièrement impliqués dans la décision d’achat de nouveaux outils. Et parmi les développeurs de terrain, ils sont 42% à faire des recommandations écoutées. Interrogés sur ce qui les intéresse le plus en ce moment, ce sont les « mini apps » qui ressortent en premier chez les professionnels, c’est-à-dire les applications embarquées dans d’autres applications, et chez les étudiants et amateurs, la robotique. Tout juste derrière arrivent les technologies de vision par ordinateur puis les voitures autonomes, les monnaies virtuelles, les applications blockchain, les drones, la biométrie, la 5G, le quantique et les plateformes de conversation. Sur les aspects formation, un 5ème des développeurs se forment sur ces sujets. Sur le quantique, l’intérêt a été multiplié par deux l’an dernier.
Concernant l’impact de la crise Covid, 37% des développeurs disent qu’elle n’a rien changé sur leur façon de travailler et 43% sur la façon dont ils apprennent. Cela veut dire que plus de la moitié des développeurs a été affectée d’une manière ou d’une autre. Seuls 11% d’entre eux pensent qu’ils vont travailler en permanence à distance. Ce sont ceux qui travaillent dans les plus petites entreprises qui ont été le moins affectés. Enfin, le rapport se penche sur le logiciel embarqué dans lequel sont engagés 10% des développeurs tout en étant impliqués en même temps dans d’autres domaines. Dans cette catégorie, ils sont aussi fréquemment engagés dans l’IoT industriel. Il y a clairement de fortes synergies entre les deux technologies, souligne le rapport. De mêmes similitudes existent avec les produits électroniques, la réalité augmentée et virtuelle. La plupart des développeurs de l’embarqué cible le poste de travail mais ceux qui le font s’intéressent alors moins à d’autres environnements. Comme langage, ils utilisent d’abord C++ (40%), C (32%), Python (30%) et Java (28%).