Pour mémoire, RedMonk combine les données de GitHub et Stack Overflow : GitHub Archive qui fournit un enregistrement de tous les événements publics sur GitHub permet d'avoir les langages utilisés pour chaque projet, et l'outil d'exploration de données de Stack Overflow permet d'extraire le nombre de tags associés à un langage donné. Il faut aussi noter que sur GitHub, RedMonk ne prend pas en compte les forks.
L'objectif de RedMonk n'est pas d'offrir une représentation statistiquement valide de l'utilisation actuelle des différents langages, mais plutôt de mettre en évidence une corrélation entre la discussion autour d'un langage (Stack Overflow) et l'utilisation du langage (GitHub) dans le but d'extraire des informations sur les futures tendances d'adoption potentielles.
Cela dit, que révèle le classement pour le troisième trimestre 2022 ?
Comme c'est devenu la norme avec les classements, les fluctuations au sein de la liste se font de plus en plus rares. Mis à part quelques cas, le top 20 de Redmonk est stable depuis plusieurs itérations.
Bien qu'il soit important de ne pas surestimer l'importance d'une seule métrique ou d'un seul classement, celui-ci inclus, Redmonk s'est intéressé à l'âge de certain de ces langages de programmation, qui peuvent être indicateur d'une plus grande maturité. Go, par exemple, est sorti il ​​y a 13 ans ; Rust, 12 ans ; Dart et Kotlin 11 ans ; TypeScript 10 ans ; et même le relativement jeune Swift est disponible depuis huit ans maintenant.
Il n'est pas raisonnable, bien sûr, de s'attendre à ce qu'un langage nouvellement créé brille de mille feux dans ces classements. Ils sont relutifs par nature et profitent donc à une utilisation et à une discussion à long terme. Mais pour l'anecdote, chez RedMonk, le baromètre ne rencontre pas vraiment de nombreux langages de programmation émergents à de rares exceptions près comme Ballerina (qui a cinq ans et est déjà classé 87e.
Envoyé par Redmonk
Voici le top 20 des langages de programmation chez Redmonk :
- JavaScript
- Python
- Java
- PHP
- C#
- CSS
- C++
- TypeScript
- Ruby
- C
- Swift
- R
- Objective-C
- Shell
- Scala
- Go
- PowerShell
- Kotlin
- Rust
- Dart
Le baromètre s'est laissé aller à quelques remarques :
- TypeScript (qui a gagné une place) : longtemps l'un de langages à l'ascension la plus fulgurante - et l'un des exemples canoniques de la raison pour laquelle l'interopérabilité avec les langages existants populaires peut être un accélérateur spectaculaire de l'utilisation et de l'adoption - TypeScript avait néanmoins stagné dans notre classement. Au cours des trois dernières exécutions, TypeScript s'est maintenu en tant que notre huitième langage le plus populaire dans l'enquête. Ce trimestre, cependant, il est septième - et à égalité avec C++. Nous avons souligné de nombreux facteurs généraux liés à la popularité des langages de programmation dans le passé, parmi lesquels : l'interopérabilité susmentionnée avec les langages existants populaires ; toute disponibilité accrue des fonctionnalités liées à la sécurité ; et des associations avec des frameworks ou des projets populaires. TypeScript a eu la chance de cocher toutes ces cases, et il y a peu de suggestions à l'heure actuelle que le langage se dirige ailleurs que vers le haut. La seule vraie question est de savoir dans quel délai.
- Go (qui a gagné une place) : contrairement à TypeScript, la trajectoire de Go a été tout sauf claire. Bien qu'il ait augmenté régulièrement et raisonnablement rapidement comme les autres langages, il semble être au point mort, ne dépassant jamais la 14e place et ayant chuté à 16e durant les trois dernières éditions. Ce trimestre, cependant, Go a grimpé d'une place dans le classement et se hisse désormais à la 15e place. En soi, il s'agit d'un mouvement d'importance limitée, car plus on descend dans le classement, moins les différences entre eux sont importantes, en termes de classement. Mais cela fait plus d'un an que nous n'avons pas vu de fluctuation de Go dans le classement, ce qui soulève la question de savoir s'il y a de la place pour une nouvelle ascension vers le haut ou s'il restera en vol stationnaire dans la fente à laquelle on pourrait s'attendre d'un langage techniquement bien considéré mais pas particulièrement polyvalent (du point de vue des cas d'utilisation).
- Kotlin (qui a gagné une place) / Rust (qui reste statique) : comme Go, Kotlin avait passé les trois dernières éditions au même niveau dans le classement. Lui et Rust avaient évolué de concert au cours des derniers trimestres, mais alors que Rust entame sa quatrième édition consécutive à la 19e place, Kotlin a réussi à obtenir une certaine séparation ce trimestre en passant de la 18e à 17e place. De grandes choses ont été attendues de ce langage syntaxe-friendly avec un accès facile à l'un des plus grands écosystèmes de langage de programmation au monde en Java, mais le maintien de sa vitesse et de son élan ascendant s'est avéré plus difficile qu'on ne l'avait prévu. Toutefois, compte tenu de l'égalité pour la 17e place, Kotlin se retrouve désormais directement derrière Go dans ce classement. Il sera intéressant d'observer cette trajectoire au cours du prochain trimestre ou des deux prochains trimestres pour voir si Kotlin se rapprochera encore plus du langage ou, avec le temps, le dépassera.
- Scala (qui a perdu une place) : pour la première fois depuis 2020, Scala est passé de la 14e place de notre classement à la 15e. Bien que, comme mentionné ci-dessus, il ne s'agisse certainement pas d'un changement significatif, cela donne l'occasion de se demander quel pourrait être l'avenir de ce langage à plus long terme. Scala est utilisé depuis des années comme un langage back-end d'entreprise hautement crédible, et rien n'a changé récemment à cet égard. Une question intéressante, cependant, est de savoir si et comment la décision de relicencier Akka - un framework Scala populaire - d'une licence open source à une alternative source disponible pourrait avoir un impact sur l'adoption de Scala. Scala est incontestablement plus grand qu'Akka, mais si les frameworks populaires peuvent accélérer l'adoption des langages sur lesquels ils sont basés, l'inverse est-il vrai ? L'impact à long terme de la nouvelle licence n'est pas encore clair, mais il existe des cas publics connus tels que Flink où cela a entraîné une dépréciation d'Akka. Il n'est certainement pas vrai de dire que comme va Akka, ainsi va Scala, mais lorsque la croissance a été plate et que le paysage des langages concurrentiels est féroce, il n'est pas possible d'exclure un impact négatif de cette décision sur le langage.
- Objective-C (qui a gagné une place) : depuis son pic mi-2018 à la 9e place, Objective-C est sur une trajectoire largement baissière. Au cours des sept dernières éditions, il n'a gagné des places qu'une seule fois, ce qui n'est pas vraiment une surprise. Le langage sorti pour la première fois la même année que Ghostbusters (l'original), Indiana Jones et le Temple maudit étaient en salles doit l'essentiel de sa popularité dans ces classements à sa position de langage de choix initialement sanctionné pour l'écosystème iOS, l'un des marchés de consommation les plus importants et les plus lucratifs au monde. Quand Apple a nommé le Swift moderne comme son successeur en 2014, l'horizon du langage semblait être obscurci. Imaginez notre surprise, alors, de voir Objective-C remonter d'une place, de la 13e à 12e. Il y a de fortes chances que cela - comme le deuxième trimestre de 2020 - soit un accident temporaire sur une trajectoire descendante progressive, mais nous serons à l'affût de toute nouvelle ou évolution suggérant qu'il s'agit de quelque chose de plus durable.
Chez Tiobe également, Rust fait son entrée dans le top 20
Selon l'édition d'octobre 2022 de l'index Tiobe, le langage de programmation Rust gagne en popularité parmi les développeurs. Il est désormais placé en 20e position, contre une 26e place durant la même période l'année dernière. Il s'agit de la seconde fois qu'il entre dans le top 20 de Tiobe, après avoir culminé à la 18e position en septembre 2020, quelques mois après avoir atteint la version 1.0.
Paul Jansen, PDG de Tiobe Software, voit en Rust comme une « petite menace » pour C et C++ », deux langages qui pourraient être remplacés par Rust dans de nouveaux projets, selon certains développeurs, en raison de sa meilleure gestion de la sécurité de la mémoire.
Envoyé par Paul Jansen
Pas représentatif de la popularité des langages de programmation dans l'Hexagone
Tout comme le classement de Redmonk, l'index de la communauté de programmation TIOBE est un indicateur de la popularité des langages de programmation. L'index est mis à jour une fois par mois. Les évaluations sont basées sur le nombre d'ingénieurs qualifiés dans le monde, de cours et de fournisseurs tiers. Les moteurs de recherche populaires tels que Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube et Baidu sont utilisés pour calculer les notes. Il est important de noter que l'index TIOBE ne concerne pas le meilleur langage de programmation ou le langage dans lequel la plupart des lignes de code ont été écrites.
L'index peut être utilisé pour vérifier si vos compétences en programmation sont toujours à jour ou pour prendre une décision stratégique sur le langage de programmation à adopter lors du démarrage de la création d'un nouveau système logiciel.
L'étude internationale Tiobe basée sur des données web n'est absolument pas représentative du marché Pro en France, pour vous faire une meilleure idée sur le paysage professionnel dans l'Hexagone :
Emploi informatique 2021 : les langages de programmation les plus demandés et les mieux payés
Sources : Redmonk, Tiobe, Developpez.com rub emploi
Et vous ?
Que pensez-vous du baromètre qu'est Redmonk ? L'indice Tiobe ? Le(s) trouvez-vous pertinent ? Pourquoi ?
Y a-t-il, dans leurs tops 10, un (des) langage(s) que vous pratiquez ? Le(s)quel(s) ?
Python, Java, C et C++ s'accaparent à eux seuls de 55% de parts de marché, selon Tiobe. Trouvez-vous cela crédible ?
Quels critères vous intéressent le plus lorsque vous voulez apprendre un nouveau langage (sa courbe d'apprentissage, la demande au niveau des entreprises, les similitudes dans les syntaxes que vous utilisez déjà dans votre langage de programmation, etc.) ?