RoLLodeQc, les trois premiers mois publié le lundi 30 novembre 2015 04:30

Le RoLLodeQc est un bottin de développeurs qui fait l'aggrégation périodique de statistiques sur les langages, les licences et la productivité des programmeurs dans plus de cent villes au Québec, pour dresser un portrait sous forme de cartes et de graphiques.

Introduction

En pleine organisation de la Semaine québécoise de l'informatique libre (SQIL), je m'étais donné comme objectif de mettre en ligne le RoLLodeQc. Seul petit problème, le projet n'existait pas. J'avais bien partagé cette maquette au début de l'année, motivé entre autre par l'annonce du Système d'appel d'offres en TI et logiciels libres du Québec, mais c'était loin de ce qui est disponible depuis la SQIL.

Sortie publique

Le RoLLodeQc repose uniquement sur les données de GitHub pour le moment. À l'heure où j'écris ces lignes, il s'agit d'une base de données CouchDB de 500,000 documents pesant 1.5 GB au total. C'est 7000 développeurs au Québec dont le 3/4 à Montréal (3% à Québec, 1% à Sherbrooke et Gatineau, etc.) qui se partagent 45000 projets écrits en 155 langages dans 129 villes.

Si votre fiche sur GitHub indiquait «Montréal», «Québec» ou une autre chaîne que je reconnaissais comme appartenant à notre province au début de septembre 2015, vous avez été repéré et inclus dans le RoLLodeQc.

Voilà le genre d'information que j'avais en main pour ma première présentation publique du RoLLodeQc à la Journée internationale du logiciel libre qui lançait la SQIL. Au lieu d'un bottin de programmeurs ou de projets, c'est sous forme de statistiques par villes et langages que cette présentation s'est donnée. On peut consulter les graphiques ensemble ou séparément:

Notez que ces graphiques et tableaux peuvent prendre 10-15 secondes avant de s'afficher. Une fois chargée cependant, les sélections se font instantanément.

Contretemps anticlimatique

J'avais aussi mon billet en main pour participer au Salon du Logiciel Libre du Québec (S2LQ) et Martial Bigras m'avait même invité à présenter le RoLLodeQc au Meetup Linux en conclusion du S2LQ. Malheureusement, ça coïncidait avec une journée où mon moral n'était pas à la hauteur de mon ambition pour le projet. J'ajouterai seulement que se battre avec la dépression presque tous les jours ne devrait tout de même pas mettre un frein à nos rêves à plus long terme.

Le bottin des programmeurs

Un peu plus tard, je mettais en ligne le répertoire des codeurs du Québec, invitant tout le monde à le consulter avec différents parametres comme les langages utilisés et la ville identifiée. Initialement, on pouvait classer les développeurs par leur nombre de projets, de followers ou leur ancienneté sur github.

Puis j'ai ajouté un champ très pratique pour chercher les programmeurs par mots-clés extraits des descriptions de leurs projets. On pouvait dorénavant chercher pour des projets comme «drupal» et «wordpress» ou encore une combinaison comme «devops chef puppet ansible» par exemple.

Finalement, sur la suggestion de Marc Laporte, j'ai ajouté un classement par productivité hebdomadaire, mesurée simplement par nombre de commits. La première itération de ce classement compait les semaines mais terminait mercredi (parce que le 1ier janvier 1970, le fameux unix epoch, c'était un mercredi). Notez que cet interval termine maintenant vendredi, pour commencer la semaine samedi.

Ces données sur les événements permettent aussi l'affichage des activités des programmeurs du Québec sous forme d'un graphique historique, par semaines.

Emphase sur le logiciel libre

Ce n'est qu'en publiant les licences les plus populaires par langage que le RoLLodeQc c'est réconcilié avec ses deux «L» majuscules.

C'est là qu'on découvre que le Python est un des rares langages avec plus de projet sous licences GPLv3 que GPLv2 (bien que plusieurs projets GPLv2 sont vraiment «v2 ou subséquent»).

Cette page interactive permet de comparer les 155 langages répertoriés au Québec et de comparer l'usage des licences par nombre de projet ou par nombre de lignes de code.

Mettre les programmeurs sur la map

J'ai eu l'opportunité de donner une présentation éclair au Club Linux Atomic où je comptais montrer la carte des langages utilisés au Québec. Ça faisait quelques jours que c'était en ligne et j'avais bien hâte d'en faire la démonstration. Les dieux des démos n'étaient pas en ma faveur ce soir là, la carte n'a pas coopérée, mais le reste des démonstrations se sont bien déroulées. Il faut dire que ça c'était aussi bien passé à l'Atelier du libre précédent. Si vous êtes membres du Club Linux Atomic, j'y ai fait un appel aux testeurs auquel je vous invite à répondre.

À venir

Je reviendrai bientôt avec une série d'articles sur ce projet. Le prochain portera probablement sur un roadmap possible, puis j'irai en détail sur l'implémentation avec NodeJS, CouchDB et Yeoman/Gulp/Bower et sans jQuery ni Bootstrap ;-)

Conclusion

Il reste beaucoup de travail à faire, autant pour le look (ah oui?) que pour l'automatisation des tâches de mises à jour des données. Je suis toujours à la recherche de partenaire pour mener tout ça à terme, autant des partenaires financiers qui voient la valeur de ces statistiques sur ce domaine important du marché québécois, autant ceux qui pourraient contribuer techniquement, le RoLLodeQc étant un ensemble de logiciels libres, bien sûr.

J'ai peut-être déjà répondu à vos questions ici ou dans les FAQ. N'hésitez pas à me contacter pour discuter. Vous pouvez aussi me suivre sur le compte @RoLLodeQc sur Twitter. À bientôt!