Nouvelle analyze de la popularité des languages sur Github

Github vient de sortir une analyze de la popularité des languages par nombre de repo (incluant les repo privés) :

Pour 2015 :

1 JavaScript
2 Java
3 Ruby
4 PHP
5 Python
6 CSS
7 C++
8 C#
9 C
10 HTML

Je pense qu’au fil des années Github va devenir représentatif de l’activité de l’industrie dans son ensemble, ça explique la chute de Ruby (qui n’a jamais été N°1, en dehors de Github) et la monté de Java.
Il y a encore des choses un peu surprenante comme Ruby et Python au dessus de C#. Mais vu que tout le code converge vers Github, tout ça devrait se lisser au fil des années.

Ca sera peut être un bon moyen de distinguer des languages existant mais moins actif (ex: PHP) et des languages moins répandu mais en plus grande croissance.

P.S: Pour ceux qui veulent jouer avec les data de Github, tout est disponible dans des dataset public sur Google big Query.
On peut obtenir un classement au delà de la 10e place (mais uniquement sur les repo public donc ça diverge légèrement du classement Github), voilà la requête pour 2014 :

    SELECT repository_language, COUNT(*) as num_repositories
       FROM [githubarchive:year.2014]
       WHERE type="CreateEvent"
       AND IS_EXPLICITLY_DEFINED(repository_language)
       GROUP BY repository_language
       ORDER BY num_repositories DESC
       LIMIT 20
Row repository_language num_repositories
1 JavaScript 1273811
2 Java 930359
3 Ruby 769712
4 Python 630549
5 PHP 601101
6 C 473113
7 CSS 445501
8 C++ 355996
9 C# 183349
10 Objective-C 165102
11 Shell 163328
12 Perl 109831
13 Go 75762
14 CoffeeScript 69778
15 Scala 60205
16 R 48574
17 Haskell 28121
18 Lua 25592
19 VimL 25027
20 TeX 23461
4 « J'aime »

C’est intéressant, mais la multitude de repository NodeJS vient un peu fausser les chiffres je pense.

Sur NPM (et donc github), on trouve un nombre énorme de modules minimalistes, comme si chaque classe du JDK ou chaque module intégré à python constituait un repository à part entière.

Il faudrait peut-être relativiser tout ça en comptant le longue de lignes pour chaque repository, pondéré par un facteur de “verbosité” du langage (Je ne sais pas si c’est possible avec big query …).

2 « J'aime »

J’ai immédiatement pensé comme @Toilal.
Que ce soit NodeJS, mais aussi tout projet simple (un site PHP qui utilise bootstrap, dépendant de JQurey) peut contenir un langage, sans pour autant qu’il fasse partie du développement dans le projet.

Et toujours suivant la même remarque, dans ces langages, lesquels sont utilisés pour des petites applications, lesquels pour des grosses ? Ça m’étonnerai qu’il y ait beaucoup de grosses applications uniquement en JS. Par contre, de simples applications avec un nombre assez restreint de fonctionnalités complètement en JS ne me choquera pas.
Par grosse application, je parle en terme de fonctionnalités et non du nombre de lignes en raison de la verbosité et des frameworks utilisés.

Bref, ces statistiques, comme n’importe lesquelles peuvent facilement être mal interprétées.

3 « J'aime »

Pour Java c’est peut être tout simplement dû à l’envol des applications Android et Ruby est surtout utilisé pour du Web donc comparé les deux ce n’est peut être pas super génial.

1 « J'aime »

Bref, ces statistiques, comme n’importe lesquelles peuvent facilement être mal interprétées.

No offence, mais c’est votre subjectivité qui fausse votre interprétation ici. Qu’y a-t-il de faux ou de mal interprêté à constater que le nombre de repo JS est largement supérieur aux autres langages plébiscités ?

Je suis d’accord avec @xmaximin le constat est surtout que sur github, le code client génère un nombre important de repository.

Tout autre interprétation flirte dangereusement avec du troll (la mienne aussi d’ailleurs :) )

2 « J'aime »

"Il y a encore des choses un peu surprenante comme Ruby et Python au dessus de C#. "
Pour ma part, j’ai essentiellement des projets C#, mais Github détecte ces projets ASP.NET MVC comme des projets JavaScript (à cause des nombreuses librairies JS qui sont inclues de base) alors que nous sommes bien sur du C#.
Si on a des comportements identiques pour des projets Java/Ruby, ça ne m’étonne pas que JS soit largement devant.

Github utilise la gem Linguist pour analyser le language d’un repo. Il est possible de spécifier à la main quelle est le language principal de son repo : https://github.com/github/linguist#overrides

Effectivement ce genre de situation doit augmenter le score de javascript. Cela étant dit je ne suis pas vraiment surpris que ce soit le langage le plus utilisé sur Github.
C’est à la fois un langage très ancien, très répandu dans tous les types de projets web (entreprise, start up, page perso, etc) et très populaire en ce moment. Je ne vois pas d’autres langages qui cochent toutes ces cases ;)

1 « J'aime »

Ce simple constat est vrai, pas de doute la dessus. Mais le titre du sujet mentionne la “popularité” des langages, et donc ce chiffre ne suffit pas, il faudrait intégrer la “taille” des repositories, mais aussi le nombre de stars/forks pour obtenir un vrai indice de popularité des langages sur github …

C’est ça que je voulais dire, je développe aussi bien en Java, en Python ou en JS(Front ou NodeJS), donc loin de moi l’idée de troller sur le sujet :). Mais aucun doute que javascript a le vent en poupe sur Github, on ne peut pas le nier.

Tout comme Android (qui n’est pas un langage à part entier, tout comme NodeJs) qui est mixé avec Java dans cette philosophie.

1 « J'aime »

D’un coté c’est vrai que faire une app en Node ou un petit widget jquery ça n’a pas grand chose à voir.
Mais si on part sur ce genre de distinction j’ai peur que ce soit sans fin : faire du machine learning en Python ou du web avec Django c’est aussi très différent…
Idem en Java : faire une app Swing, du GWT, Android c’est aussi hyper différent

Arriver à analyser le code pour faire le trie entre ces différents cas d’usages c’est un projet de malade je pense : quand on regarde les issues sur Linguist on voit que c’est déjà un gros boulot juste pour bien réussir à classer le langage principal du repo !

1 « J'aime »

J’aurais bien aimé avoir les stats en terme de lignes de code / caractères (car beaucoup de libs en JS ont une seule ligne de code mais font des dizaines de Ko…), du coup javascript doit changer de position de façon drastique avec l’extrême popularité de PHP (e-commerce, frameworks, etc.)

La popularité de Javascript doit aussi s’expliquer par le fait qu’on peut l’utiliser pour héberger des “modules” ?

Il n’y a rien de surprenant à cela, ce sont deux langages très utilisés dans le domaine de l’opensource et disposant d’un nombre important de composants tiers.

Surtout que beaucoup de projet C# se retrouve sur https://www.codeplex.com/.

Mais @blueicefield a raison cela m’étonne point que dans l’opensource Python soit devant C#. Même le classement Redmonk le place devant http://redmonk.com/sogrady/2015/07/01/language-rankings-6-15/ et chez Tiobe il est juste en dessus de C# http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Le classement de Github prend en compte les repo privés donc il n’est pas spécifique à l’open source.

Depuis qu’ils ont levée 350M$ l’ambition de Github c’est de conquérir l’entreprise, si ils y arrivent ce genre de classement devrait devenir réellement représentatif de la popularité des langages en général. Ce que je voulais dire c’est que dans les années à venir Ruby et Python devrait baisser dans ce classement au profit de Java et C#.

Ça changera peut-être d’ici quelques années, mais pour l’instant les entreprises qui prennent des repository privés sur Github sont souvent celles qui ont un pieds dans l’opensource et tournées vers les nouvelles technologies.

Il ne faut pas oublier que de nombreuses équipes au sein des entreprises travaillent encore avec SVN …

1 « J'aime »

C’est clair, ça sera pas demain. Mais c’est l’objectif de Github et aujourd’hui je pense que c’est eux les mieux placé pour y arriver.

1 « J'aime »
Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s