IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quels sont les langages de programmation les plus utilisés par les développeurs ?
Une analyse des évènements publics sur GitHub

Le , par Michael Guilloux

1.4KPARTAGES

9  0 
Ben Frederickson, un développeur et blogueur, s'est amusé à dresser un classement de la popularité des langages de programmation en comptant tout simplement le nombre de personnes qui les utilisaient sur les plateformes d'hébergement de code, et en particulier GitHub. Pour cela, il a utilisé les projets GitHub Archive et GHTorrent comme sources de données pour son analyse.

L'archive GitHub fournit un enregistrement de tous les événements publics sur GitHub depuis le début de l'année 2011. Elle crée un événement chaque fois que quelqu'un a créé un nouveau code, un fork ou un référentiel, ou a ouvert un ticket sur la plateforme. Tout le projet GitHub Archive a plus de 1,25 milliard d'événements sur plus de 75 millions de dépôts différents. Avec GHTorrent, il a pu aller plus loin pour déterminer les langages de la plupart des dépôts.

Un autre élément qui lui permettra d'affiner son analyse est qu'il y a des noms d'utilisateur associés à chacun de ces événements, ce qui signifie qu'il est possible de compter le nombre de personnes différentes utilisant chacun des langages. Pour ce faire, chaque fois qu'un utilisateur interagit avec un référentiel, Ben Frederickson compte cet utilisateur comme utilisant le langage de ce référentiel, puis il fait les cumuls pour chaque mois afin de calculer le nombre mensuel d'utilisateurs actifs (MAU) de chaque langage.

Puisque les données remontent jusqu'à sept ans en arrière, le développeur a pu également montrer l'évolution de chaque langage de programmation au fil du temps, et déceler certaines tendances intéressantes. Il a pu ainsi faire un classement sur la popularité des langages, mais aussi déterminer les langages de programmation qu'il vaudrait la peine d'apprendre et ceux qu'il faudrait peut-être éviter. Cela dit, que nous révèle son analyse ? C'est ce que nous allons découvrir dans la suite.

Classement des langages en fonction de leur base d’utilisateurs mensuels actifs




Bien que le classement général dise déjà beaucoup de choses, il sera plus intéressant d'examiner de plus près comment ces langages se sont comportés au fil du temps.

Focus sur les principaux langages

Les principaux langages de programmation ont une utilisation relativement stable, et sont principalement ceux que vous attendez : JavaScript, Python, Java, C ++, C et C#.


JavaScript enregistre sur toute la période le plus grand nombre d'utilisateurs mensuels actifs, avec une bonne longueur d'avance sur les autres. Ce n'est toutefois pas une surprise, car comme le souligne Ben Frederickson, c'est le langage que tous les programmeurs ont dû ou devront utiliser à un moment donné. On voit également que Python a progressivement gagné du terrain et finit par dépasser Java pour devenir le deuxième langage le plus populaire sur GitHub. Pour en arriver là, Python a probablement bénéficié de l'intérêt croissant pour le machine learning, où il est désormais l'un des langages les plus prisés. On voit également que C++ est monté en popularité au détriment de C. Cela a du sens, d'après Ben Frederickson, dans la mesure où même des projets comme GCC ont été convertis de C en C ++ pour avoir accès à certaines fonctionnalités en C ++.

Langages à apprendre en 2018

Il s'agit des langages avec les bases d'utilisateurs ayant les plus fortes croissances, en ce qui concerne le pourcentage de développeurs qui les utilisent sur GitHub. Cela concerne donc en général les jeunes langages qui semblent avoir la cote auprès des développeurs. En tête du classement se trouve le langage Go développé par Google, suivi de TypeScript, le surensemble typé de JavaScript qui est développé par Microsoft.


À la troisième place vient Kotlin qui semble être principalement utilisé pour le développement d'applications Android. On remarque au niveau de son évolution un changement de pente ; ce qui indique une augmentation brusque de sa base d'utilisateurs. Ce qu'il est intéressant de remarquer, c'est que ce changement coïncide plus ou moins avec le moment où Google a annoncé le support de première classe de Kotlin dans Android Studio en mai 2017. Le langage développé par JetBrains a donc probablement bénéficié d'un coup de pouce de la firme de Mountain View.

Alors que Rust se développe plus lentement que les autres langages ici, Ben Frederickson note que ce langage est tout de même utilisé dans de nombreux projets intéressants. Il fait également remarquer une condition très souvent nécessaire pour qu'un nouveau langage ait du succès : « Une chose intéressante que tous ces langages ont en commun est qu'ils sont tous sponsorisés par de grandes entreprises : Google a lancé Go, Microsoft avec TypeScript, JetBrains avec Kotlin et Mozilla avec Rust », dit-il. « Lancer avec succès un nouveau langage de programmation demande beaucoup d'efforts – il ne suffit pas de développer un langage élégant, il faut aussi développer la communauté et l'écosystème derrière le langage. Des choses comme le support de l'EDI, les bibliothèques et les paquets pour les tâches courantes, les outils et la documentation ont énormément d'importance pour amener les gens à utiliser un langage, ce qui nécessite des efforts considérables », a-t-il ajouté.

Langages qu'il faut peut-être éviter

S'il y a des langages à apprendre, il y a aussi des langages qu'il faut peut-être éviter (notamment pour de nouveaux projets), en se basant sur le même critère : la hausse en ou la baisse en popularité. Les langages à éviter sont définis ici comme les langages avec les pourcentages d'utilisateurs le plus en baisse. Il s'agit ici de Ruby, PHP, Objective-C, CoffeeScript et Perl.


Ces langages ont tous vu leur pourcentage d'utilisateurs sur GitHub diminuer de manière significative au cours des sept dernières années. Ruby a connu la plus forte baisse sur cette période, en passant du deuxième langage le plus populaire en 2011 avec plus de 18 % des utilisateurs au 11e plus populaire aujourd'hui avec 3,2 % des utilisateurs. « Bien que ce soit un déclin choquant, il est intéressant de souligner que ces statistiques sont données en pourcentage de la base d'utilisateurs de GitHub – et GitHub se développe rapidement », précise Ben Frederickson. Cela ne veut donc pas dire que la base d'utilisateurs de Ruby (ou encore PHP, Objective-C, CoffeeScript ou Perl) a forcément diminué, mais seulement que par rapport à l'ensemble des langages utilisés aujourd'hui, sa part de marché s'est vue réduite. Il faut par exemple noter que le nombre d'utilisateurs sur GitHub a été multiplié par plus de 20 entre 2011 et maintenant. Cela dit, comme on peut le voir dans le graphique ci-dessous, même des langages dont la part de marché diminue peuvent avoir une base d'utilisateurs croissante : cas par exemple de PHP.


À propos de la forte base d'utilisateurs de Ruby en 2011, Ben Frederickson rappelle que GitHub a été lancé par des membres éminents de la communauté Ruby, et une grande partie de leur code est écrit en Ruby. Cela les a donc amenés à attirer un grand nombre de programmeurs Ruby à leurs débuts, ce qui a fait que Ruby a été surreprésenté à l'époque. Mais au fur et à mesure que GitHub augmentait sa base d'utilisateurs, la plateforme a naturellement commencé à attirer des programmeurs utilisant d'autres langages.

Autres résultats intéressants

Ce qu'il est intéressant de noter ici également est que certains nouveaux langages tendent à récupérer la base d'utilisateurs d'autres langages plus anciens. Ci-dessous, on voit par exemple que la baisse de l'utilisation d'Objective-C correspond à la hausse de Swift. De même, CoffeeScript semble avoir été remplacé par TypeScript.



Source : Ben Frederickson

Et vous ?

Que pensez-vous des différents classements ? Comment expliquez-vous ces tendances ?
Que pensez-vous de la méthodologie utilisée ici par rapport à celles de TIOBE, PyPL ou autres indicateurs ?

Voir aussi :

Pourquoi les langages C et C++ auraient-ils encore de nombreuses années devant eux ? Donnez votre avis
Les développeurs nés dans les années 70 auraient commencé à écrire leurs premières lignes de code plus tôt que les générations suivantes
Index TIOBE : C sacré langage de programmation de l'année 2017, Python enregistre encore la plus forte progression annuelle sur PYPL

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de grunk
Modérateur https://www.developpez.com
Le 29/01/2018 à 10:11
Que pensez-vous des différents classements
J'en pense que si il y'a bien une chose dont il faut se méfier en développement c'est les tendances.

Les développeurs JS le subissent particulièrement avec des FW qui du jour au lendemain devient THE fw à utiliser puis un an après il disparaît au profit d'un autre. Fun quand tu développes pour t'amuser , pas du tout quand tu as besoin d'une certaine perénité/stabilité dans les développements.
7  0 
Avatar de tmcuh
Membre habitué https://www.developpez.com
Le 29/01/2018 à 13:24
sans parler que ce sont des statistiques sur bases de l'open source donc pas "tous les programmeurs" ... à part le web qui publie beaucoup d'open source pour une question de survie, les professionnels du dotnet publie très peu...
6  1 
Avatar de Marco46
Expert éminent sénior https://www.developpez.com
Le 30/01/2018 à 9:44
JavaScript casse tout parce que le web casse tout et que JavaScript est le langage du web.

Dans ce fil on parle des codes sources mais que ce passe-t-il lorsqu'on regarde les livrables ?



Tout démarre en 2009 lorsque sortent ES5 et Node.js, ça met un peu de temps à maturer et c'est l'explosion autour de 2013/2014.

C'est très récent et c'est pour cette raison qu'il y a beaucoup de packages et de frameworks disponibles, ce que les anglophones appellent la "JavaScript fatigue". Ça va durer encore quelques années puis ça se stabilisera, mais clairement la bataille des langages pour le web est terminée : Ça sera JavaScript pour de looongues années.
5  0 
Avatar de Pol63
Expert éminent sénior https://www.developpez.com
Le 29/01/2018 à 14:10
Citation Envoyé par abriotde Voir le message
C'est pourquoi les classements qui utilisent plus de sources (offre d'emplois notamment) sont plus fiables.
les offres d'emplois ne permettent pas non plus un classement d'utilisation, juste un classement des langages qui permettent de trouver un emploi.

certaines SSII ont un turn over énorme
une éditeur de logiciel ou une entreprise qui créée ses softs en interne peuvent garder une équipe pendant 15 ans, sans grossir et ces développeurs sont difficilement comptabilisables (que ca soit sur git ou sur les offres)
4  0 
Avatar de AoCannaille
Expert confirmé https://www.developpez.com
Le 29/01/2018 à 11:14
Pour moi, la position du JS est a relativiser. Combien de dépôts mettent une bonne copie de jQuery en local, faussant ainsi les stats de pas mal de kloc ?
2  0 
Avatar de v1cent
Membre éclairé https://www.developpez.com
Le 29/01/2018 à 14:29
Citation Envoyé par Pol63 Voir le message
les offres d'emplois ne permettent pas non plus un classement d'utilisation, juste un classement des langages qui permettent de trouver un emploi.
Et encore même pas ! Car les annonces non pourvues restent plus longtemps, donc plus d'annonces à un instant t n'est pas forcément corrélé directement avec le nombre d'embauches.

Des annonces peuvent rechercher des gens avec des panels de compétences irréalistes, ce qui donne une absence d'embauche réelle mais des annonces qui restent (genre développeur expert JS/JAVA/PHP/.NET en même temps)
2  0 
Avatar de grunk
Modérateur https://www.developpez.com
Le 30/01/2018 à 15:07
Citation Envoyé par Marco46 Voir le message
mais clairement la bataille des langages pour le web est terminée.
Y'a pas de bataille puisque y'a pas d'alternative coté client . Aujourd'hui faire un site (un temps soit peux moderne et sexy) sans JS c'est pas possible.

Perso heureusement que des transpiler comme Typescript existent sinon je me serait pendu depuis longtemps
1  0 
Avatar de Bam92
Membre régulier https://www.developpez.com
Le 02/02/2018 à 10:01
L'étude n'est pas du tout fausse. Elle s'est basée uniquement sur GH. J'aurais aimé que d'autre études soient ménées puis faire une conclusion générale. Qu'est-ce qu'il faut apprendre, qu'est-ce qu'il ne faut pas apprendre? Il y a énorméments de facteurs à prendre en compte avant de conclure. J'en citerai quelques-un:
  • de quel univers appartiens-tu, free/open source ou propriétaire?
  • es-tu un débutant, étudiant ou en phase de migration
  • veux-tu travailler sur un projet précis (WordPress, MediaWiki, Debian, ...)?
  • quelle est votre motivation?
  • etc.


C'est en ayant les réponses à ces questions qu'on peut bien déduire. Les languages populaires d'aujourd'hui deviennent impopulaires demain et ainsi de suite. Tout le monde sait néanmoins que les C, le PHP, le Python, le JS essaient de se maintenir et gagne en maturité.
Les nouveaux langages proopulsés par les géants du Web sont parfois à craindre parce que qui sait si demain ils seront abandonnés au profit d'autres?
1  0 
Avatar de jcmauss
Candidat au Club https://www.developpez.com
Le 10/02/2018 à 14:03
Je ne suis pas étonné pour JavaScript mais assez surpris de voir Python en 2e position. Quoique Python est très en vogue pour le deep learning donc c'est peut-être pour cela.
1  0 
Avatar de bilgetz
Membre averti https://www.developpez.com
Le 29/01/2018 à 10:45
Pour en arriver là, Python a probablement bénéficié de l'intérêt croissant pour le machine learning, où il est désormais l'un des langages les plus prisés.
Je pense qu'il y a aussi ansiblle-galaxy qui aide un peu.
Les module pour Ansible étant en python et les role galaxy étant posé sur github, ça doit aider un poil.
0  0