La vie, la mort, le logiciel libre
Titre : La vie, la mort, le logiciel libre
Intervenant : Florent Fourcot
Lieu : Toulouse - Capitole du Libre
Date : 17 novembre 2024
Durée : 24 min 26
Diaporama support de la présentation
Licence de la transcription : Verbatim
Illustration : À prévoir
NB : Transcription réalisée par nos soins, fidèle aux propos des intervenant·es mais rendant le discours fluide.
Les positions exprimées sont celles des personnes qui interviennent et ne rejoignent pas nécessairement celles de l'April, qui ne sera en aucun cas tenue responsable de leurs propos.
Description[modifier]
Les logiciels libres dépendent d'humain(e)s disponibles, parfois de quelques un(e)s seulement (voir un(e) seul(e), en réalité). Certains développeurs sont ainsi présents depuis le début d'un projet (le plus célèbre d'entre eux étant probablement Linus Torvald), et vieillissent. Si les drames humains peuvent arriver à tout âge, une augmentation de la moyenne d'âge des participant(e)s aux logiciels libres ne pourra que les augmenter.
Transcription[modifier]
Bienvenue. Nous sommes en fin de journée, fin de week-end, on va donc un peu quitter le monde de la technique, même beaucoup. Le titre c’est « La vie, la mort, le logiciel libre ». Je vais vous raconter un peu pourquoi.
Il y a plusieurs parties dans ma présentation.
Je vais commencer par vous raconter un peu ma vie, mon expérience personnelle, justement, de ce qui a pu arriver aux gens que je connaissais dans le logiciel libre.
Je vais essayer, ensuite, d’aller chercher quelques données. Honnêtement, ce n’est pas facile, donc j’espère que vous ne serez pas trop déçus.
Et une discussion un peu sur ce qu’on peut faire, si jamais il faut faire quelque chose.
Qui suis-je ?[modifier]
Tout d’abord, qui suis-je ?
Je m’appelle Florent Fourcot, je suis développeur. J’utilise et je contribue au logiciel libre. Il y a quelque chose qui m’énerve vraiment dans le logiciel quand il ne fonctionne pas et que je ne peux pas regarder pourquoi.
Je travaille pour Wifirst depuis à peu près une dizaine d’années. Wifirst est un opérateur internet. J’aime le réseau, j’aime le noyau, j’aime le Python, donc, globalement, c’est plutôt raccord avec ce que je fais.
Je ne vais pas vous donner mon âge, même si c’est un peu central dans cette conférence, mais j’ai bientôt quatre enfants et j’ai un commit dans le noyau qui date de 2008.
Le contexte[modifier]
Je vous ai dit que je vais raconter un peu ma vie.
Sur le contexte, il y a une bibliothèque qui s’appelle pyrooute 2, qu’on utilise beaucoup au travail. Ça permet, en Python, de parler avec le noyau et de configurer les interfaces réseau, ce genre de chose.
Cette bibliothèque est vraiment très cool pour ce qu’ont fait. Quand on l’a découverte, on a beaucoup interagi avec le mainteneur. Il a toujours été très réactif, les merges se sont toujours très bien passées. On avait suffisamment d’interactions pour qu’il finisse par passer à Paris, on l’a invité dans nos locaux, il est venu avec son fils manger des pizzas chez moi. Voilà ! Globalement, tout se passait bien, dans le meilleur des mondes, donc une toute petite communauté, sincèrement, notre entreprise contribue, lui, quelques autres personnes, mais ça reste une toute petite communauté.
Dans ce contexte, un jour – excusez-moi, parfois je suis un peu ému – ça a commencé à se passer un peu moins bien, dans le sens où il a arrêté de répondre sur la forge. On avait des merge requests qui étaient assez importantes, qui sont restées assis inactives.
Au bout de quelques semaines, j’ai essayé de prendre un peu de ses nouvelles par mail – j’ai un peu de mal avec ça, mais la fin est bonne, ne stressez pas trop. J’ai reçu ce mail où la première ligne c’est « je suis encore pas là pendant une semaine, ce n’est pas très grave », mais il m’a aussi dit « si jamais je ne reviens pas pour le projet et occupe-toi-en. » La bonne nouvelle, c’est qu’il est revenu..
On a également d’autres cas, des gens avec qui j’ai moins discuté. Vous avez fait mon Simon Kelley, de dnsmasq, qui a disparu pendant des mois.
Vous avez un autre contributeur avec qui on a pas mal échangé sur pysnmp, qui lui est vraiment décédé.
On a David Miller, un contributeur émérite au noyau, il a vraiment fait énormément de choses, qui, en 2020, a eu une attaque. C’est le noyau, donc ça s’est très bien passé au fur et à mesure.
Voilà, les mainteneurs ne sont pas éternels.
Forcément, j’ai sorti, ce petit ??? [3 min 19], que vous connaissez sûrement tous. Il y a des projets, clairement comme dnsmasq, qui, à mon avis, sont ici.
Ces exemples sont des exemples personnels, absolument non exhaustifs. Ce sont des personnes avec qui j’ai pu interagir soit par mail, soit en conférence, soit directement. Je pense que vous avez tous eu des situations comme cela, ça arrive. Moi qui traîne dans le logiciel libre depuis quelque temps, je me suis posé une question : est-ce que ça arrive plus qu’avant ? C’est une question un peu centrale. Des malades et des morts, il y en a partout, mais, depuis quelques années j’ai eu plusieurs cas comme ça, qui se sont parfois bien terminés, parfois mal, est-ce que ça arrive plus qu’avant ?
Quelques données[modifier]
Déjà, je vais enfoncer des portes ouvertes.
Ce sont les courbes de mortalité en France en fonction de son âge. La ligne est bien droite. La mauvaise nouvelle, c’est que c’est une échelle logarithmique. Donc globalement, en fonction de votre âge, une fois que vous avez survécu à la petite enfance, votre probabilité de mourir dans l’année augmente de façon exponentielle. Ce n’est pas forcément une grande surprise, mais voilà.
Une fois qu’on sait ça, j’ai essayé d’aller chercher un peu de données sur la communauté du logiciel libre, qui sont ses membres, quel âge ont-ils, d’où vient-il, et ainsi de suite.
Il y a eu pas mal de recherches, au sens universitaire, au début des années 2000. C’était un sujet assez à la mode parce que c’était assez nouveau : des gens qui, sans forcément être payés, viennent contribuer à un truc commun. Il y a donc eu pas mal de recherches à ce moment-là. Après, la recherche s’est un peu arrêtée parce que, finalement, ça avait déjà été fait, il n’y avait plus grand-chose de nouveau. J’ai bien trouvé un papier de 2013, mais qui était globalement inexploitable.
Récemment, on a un peu plus de données qui ne sont pas faites par des chercheurs, qui sont faites plutôt par des grandes entreprises comme GitHub. Forcément, du coup, il n’y a pas de suivi de méthodologie, on n’a pas de longues séries temporelles pour réussir à avoir des comparaisons.
Après, je ne dis pas du tout que c’est facile. Imaginez essayer de contacter l’intégralité des développeurs de logiciels libres, voire des mainteneurs, c’est juste impossible aujourd’hui. On peut approximer que GitHub est à peu près une forge principale, mais, clairement, ça ne regroupe pas tout le monde. Et après, si vous voulez aller dans les détails, entre les mainteneurs, les développeurs, les utilisateurs, c’est globalement impossible.
Néanmoins, je vous ai fait ce petit graphique là.
En 2002, c’est ce que je vous disais, il y avait beaucoup de publications, donc c’était assez facile. J’en ai choisi une qui m’avait l’air plutôt pas mal. Il y avait aussi une méta-analyse des différentes publications qui disait globalement : toutes les données sont à peu près semblables, il y a forcément des différences en fonction de l’échantillon sondé, mais globalement on s’en sort.
2017 et 2024, que vous voyez là, ce sont des chiffres de GitHub, ça tombe bien, ils viennent d’en sortir une toute nouvelle. Donc, sur ce graphique-là, on peut voir qu’il y a toujours des jeunes, clairement, d’ailleurs, ça se voit à cette conférence, il y a des jeunes, il y en a toujours, mais on commence à avoir une population qui augmente plus sur la droite. Je vous renvoie vers le graphique précédent, forcément, vu que c’est exponentiel, même si vous n’avez pas beaucoup de gens par là, ça peut faire beaucoup de cas, en particulier, plus vous êtes sur la droite.
C’est bien d’avoir des utilisateurs, voire des développeurs jeunes, mais je me suis aussi posé la question : qu’en est-il des mainteneurs ?
J’ai trouvé une entreprise qui prétend faire des sondages, qui s’appelle Tidelift, qui a fait, sur des petits échantillons, ça va de 250 à 350 personnes sondées. Je suis pas convaincu qu’en trois ans la courbe ait pu autant bouger, sincèrement, néanmoins je pense que ça montre que les mainteneurs sont probablement un peu plus âgés que la moyenne des utilisateurs/développeurs, ce qui me semble assez cohérent, de toute façon, avec ce que vous pouvez constater au jour le jour.
Que peut-on en tirer ?[modifier]
Du coup, qu’est-ce qu’on peut en tirer ?
Je vous l’ai dit, à mon avis, il y a toujours des jeunes qui s’intéressent au logiciel libre, il y en a beaucoup dans cette conférence, il y en a beaucoup aux bons endroits.
Les plus anciens apparaissent forcément au début des années 2000. Quelqu’un qui dit qu’il est depuis 30 ans dans le logiciel libre est assez peu crédible, on va dire.
Sur les rôles les plus visibles du logiciel libre, vraiment les porte-drapeau, ceux que tout le monde connaît, on a Linus Torvalds qui a 58 ans ; on a Andreas Tille, actuellement project leader de Debian qui a 57 ans ; Guido van Rossum, de Python, n’est plus chef, néanmoins il est encore important, il a 68 ans ; le mainteneur de Curl a 53 ans.
Quand vous voyez ces logiciels, Curl, c’est partout, Linux aussi, Debian, ce sont des projets qui sont anciens, avec des personnes qui ne sont plus toutes jeunes à leur tête. C’est assez logique quand on y réfléchit. Si vous avez un projet qui est déployé partout, qui est assez ancien, il est très probable que le mainteneur ne soit plus très jeune, s’il y avait eu un peu une rupture de continuité, les chances que ce projet continue de perdurer diminuent.
Que faire ?[modifier]
Une fois qu’on a dit tout ça, qu’est-ce qu’on peut faire ?
Des questions sans réponses[modifier]
Pour moi, ce sont des questions un sans réponses.
Déjà, première question, c’est : est-ce qu’il existe des barrières d’entrée sur les vieux projets ? Les vieux projets auxquels je contribue, ce sont encore des mailing listes, ce sont encore des patchs qui sont envoyés par mail. Donc, je voulais faire rapidement un petit sondage : qui, ici, a déjà utilisé Git sans e-mail pour envoyer un patch ? Et qui a déjà utilisé une forge comme GitHub, GitLab et ainsi de suite ? On sent que l’échantillon diminue d’un coup fortement. Ce ne sont pas forcément des choses qui sont difficiles, mais ce ne sont pas forcément des choses qui sont le réflexe pour beaucoup de contributeurs.
L’autre question que je me pose, c’est : est-ce que la maintenance est suffisante pour intéresser les nouveaux arrivants ? On a eu le cas de NTP [<em<Network Time Protocol] qui permet de synchroniser les horloges dans tous les ordinateurs. Le mainteneur est resté tout seul pendant longtemps, vraiment très longtemps. Vers 2011, il s’est dit « en fait, je suis tout seul, ce n’est quand même pas terrible pour le futur. » Il a fait une fondation parce que, clairement, on n’avait pas des évolutions sur NTP tous les matins.
À partir de là, en tant que contributeur de logiciel libre, si vous arrivez, vous cherchez quelque chose un peu fun, c’est peu probable que vous vous dirigiez naturellement vers ce genre de projet.
En tant qu’utilisateur/institution[modifier]
Après je me suis posé un peu la question en tant qu’utilisateur/institution, qu’est-ce qu’on pourrait faire ?
En tant qu’utilisateur, vous pouvez essayer de vous intéresser à la chaîne complète, forcément, de ce qui fonctionne. On a énormément de couches bas niveau qui sont très anciennes, qui fonctionnent.
Je reviens à dnsmasq, que nous utilisons énormément. Il faut se dire que dnsmasq, c’est un peu comme Linux et ainsi de suite : un type avait un besoin, il voulait avoir un routeur à la maison dans les années 2000. Ça n’existait pas, il a codé son serveur DHCP/DNS et, aujourd’hui, ce logiciel est partout. Vous en avez dans vos box ; au boulot, nous en avons plus de 10 000 qui sont en prod. C’est quelque chose qui est vraiment partout, c’est vraiment une brique de base.
Une initiative que j’ai trouvée intéressante, ce sont les Blue hats de la DINUM, la Direction interministérielle du numérique, qui a distribué quatre prix cette année, je crois que c’est avec une prime de 10 000 mille euros, c’est quand même assez sympa, et le premier prix qu’ils ont distribué, c’était justement à dnsmasq. Ça permet de mettre en valeur ces projets. Je ne dis pas que ça résout le problème de la maintenance, mais déjà, je pense que les mettre en valeur, ça peut donner à des gens envie de s’y intéresser.
J’étais aussi mainteneur, un moment, d’un projet. J’avais été contacté par un universitaire. Tous ses étudiants, en groupes de deux ou trois, devaient tous les ans choisir un projet et essayer d’y faire accepter un patch. J’avais trouvé la démarche assez intéressante, je crois qu’il était de l’Université de Lille. Il nous prévenait avant, parce que, forcément, des étudiants arrivent et il faut essayer d’être un peu tolérant, c’était leur première fois, c’est normal. En tout cas, j’avais trouvé que si on arrive à leur faire rentrer ça dans la formation, ça peut être des sujets intéressants.
Une autre façon de rentrer dans un projet, notamment très ancien, parfois c’est essayer d’écrire des tests ou de faire des suites de tests. Chez dnsmasq, aujourd’hui il y en a zéro. Red Hat a commencé à lancer, justement, des tests fonctionnels, être capable de les lancer, vérifier qu’il y a des DNS qui répondent, vérifier qu’il y a du DHCP qui tourne et ainsi de suite. Je pense que c’est plutôt pas mal.
En tant que mainteneur[modifier]
En tant que mainteneur, si jamais vous l’êtes, c’est vraiment une question qui n’est pas facile.
Responsabiliser, sûrement, et accompagner les nouveaux. Vous avez un projet que vous connaissez sur le bout des doigts depuis des années et des années, comment faire quand quelqu’un arrive, s’intéresse à son projet, essaye d’y aller.
Ça veut dire aussi essayer de ne pas rester seul sur le droit de merge. Ça veut dire avoir confiance en quelqu’un. Le droit de merge, je ne l’ai pas écrit, pour moi ça va plus loin que ça. Si je reprends toujours mon exemple de dnsmasq, les serveurs ce sont les siens, la mailing liste est gérée par lui, et ainsi de suite. Tous ces outils-là, qui permettent au projet de vivre, dépendent d’une personne.
J’ai mis la documentation parce que je crois que c’est un facteur, mais c’est aussi clairement, pour moi, une réponse un peu facile à tout. Quand quelque chose ne fonctionne pas dans logiciel libre, on dit souvent « c’est parce qu’il n’y a pas de doc ». Je pense que c’est un peu plus compliqué que ça, mais, si vous n’en avez pas, clairement, vous partez un peu avec un handicap.
Et pour essayer de faire peur à des gens comme moi, si vous pouvez communiquer sur les absences prévues. Vous vous occupez d’un projet, vous avez une communauté, vous partez pendant trois mois pour déménager, un petit message aux personnes avec qui vous interagissez régulièrement, ça peut être assez sympa.
Je vois que j’ai encore pile-poil dix minutes, ce qui va me permettre un peu de passer aux questions, question/interrogations. Je me pose beaucoup de questions et j’aimerais bien qu’on puisse interagir, justement.
Questions du public et réponses[modifier]
Public : Inaudible.
Florent Fourcot : Je vais essayer résumer ce qui a été dit.
Un projet, je ne sais pas lequel, a migré sur des architectures, entre guillemets « plus modernes », des outils « plus modernes », ce qui a permis d’améliorer énormément la communication, qui a été multipliée par 2,5 [Il s’agit d’Orekit, NdT].
Je peux comprendre. Après, je suis un peu de la vieille école, j’aime bien IRC, j’aime bien les mails. Je sais que c’est régulièrement un sujet, notamment dans la communauté du noyau Linux. Les mainteneurs sont hyper-habitués, ils ont une productivité de dingue en fait, avec ce qu’ils font avec les outils actuels. La question, c’est aussi comment on ne limite pas cette productivité des gens déjà en place, parce que sinon, on va avoir une ??? [15 min 20] qui est très faible tout en permettant d’avoir des outils peut-être avec plus de couleurs, plus web et ainsi de suite.
Public : Inaudible.
Florent Fourcot : Une précision : est-ce qu’on veut effectivement augmenter la communauté ou rester entre soi ? Effectivement, ce n’est pas toujours facile.
Public : Inaudible.
Florent Fourcot : La question : est-ce qu’il existe des bons élèves en termes d’encadrement de nouveaux arrivants, que ce soit pour pouvoir rentrer dans le code ou pouvoir rentrer dans les contributions.
À titre-là, je n’ai pas forcément d’expérience personnelle. J’ai vu des projets, comme le noyau Linux, où il y a une mailing liste spéciale pour les nouveaux arrivants. Il me semble que Debian a aussi le même genre de fonctionnement qui permet d’accompagner, de faire du mentorat pour former un petit peu des nouveaux arrivants.
Mon meilleur conseil pour un nouveau, c’est d’essayer d’aller sur quelque chose qui lui plaît, vraiment un sujet qui lui tient à cœur, un logiciel qu’il utilise. Je pense que c’est vraiment très important pour une première expérience.
Personnellement, je ne suis pas passé par ce genre de mentorat, c’était plus via des amis, des choses comme ça, qui m’ont permis de rentrer. J’ai commencé à faire du logiciel libre quand je suis devenu mainteneur, c’était complètement par hasard. J’étais là, il y avait de la lumière, je n’aimais pas du tout le langage, mais maintenant j’en ai fait mon métier. Donc…
Public : Inaudible.
Florent Fourcot : Là, on a un commentaire sur le noyau qui essaye maintenant d’avoir des groupes de mainteneurs. C’est vrai que c’est assez récent et ça évolue plutôt pas mal, je ne sais pas si dans les sous-systèmes, c’est vraiment vrai.
L’expérience que j’ai effectivement sur le réseau, avant son attaque, David Miller n’était pas le seul à le faire, mais il était quand même très clairement celui qui mergeait plus de 90 % des patchs. Il avait une réactivité assez dingue : quelle que soit l’heure à laquelle vous lui envoyiez un mail, quel que soit le fuseau horaire, il vous répondait dans la journée, il vous faisait des retours, il mergeait, c’était vraiment assez impressionnant.
En tant que développeurs, nous avons vu, au moment où il a disparu – enfin, il est encore là – au moment où il n’était plus disponible pour faire ce travail, il y a eu un moment de flottement. Ça a fini par s’organiser. Personnellement, je trouve que ça fonctionne aujourd’hui, mais c’est vrai que la dernière fois que j’ai soumis un patch, j’ai senti qu’il n’y avait plus la même réactivité, ce qui n’est pas grave ça, ça reste très relatif, mais il n’y avait plus la même réactivité, le même genre de choses, parce que je pense aussi que quand la responsabilité est distribuée, c’est parfois un peu plus difficile de s’organiser.
On parle de David Miller. Je pense que, plus tard, cela n’a pas forcément aidé pour ses ennuis de santé. C’est sûr que quand il y a plusieurs personnes, d’ailleurs ça peut avoir des avantages si elles sont sur différents fuseaux horaires, ça permet d’avoir du 24/24.
J’ai vu quelque chose qui s’est fait récemment sur le noyau Linux : il y a vraiment une formalisation des mainteneurs dans les fichiers, qui n’étaient pas forcément maintenus à jour, au moins sur la partie réseau. À chaque fois, je vois, maintenant, qu’il y a de plus en plus de commits : je rajoute telle personne comme mainteneur, j’enlève telle personne, ce qui me semblait être moins le cas avant.
Public : Inaudible.
Florent Fourcot : On a un commentaire Il ne faut pas se comparer à David Miller qui, effectivement, avait un taux de réactivité, mais en moyenne, globalement, la maintenance collégiale a tendance à améliorer justement la réactivité et les réponses aux contributeurs, ce qui semble assez logique.
Public : Inaudible.
Florent Fourcot : La question c’est : est-ce que je connais le mob programming et la réponse est non. Je n’en ai jamais entendu parler et, personnellement, je n’en ai pas vu.
Public : Inaudible.
Florent Fourcot : La remarque, c’est que le mob programming semble plus développé dans le privé, dans le logiciel propriétaire que dans logiciel libre.
Je pense qu’il y a des événements qui permettent de faire du hackathon, ce genre de chose, dans le logiciel libre. En tout cas, je contribue naturellement au logiciel libre quand j’ai le temps, deux minutes. D’ailleurs, je n’y contribue presque plus parce que, comme je l’ai dit, j’ai un peu trop d’enfants. Donc, je pense qu’il y a ça : il y a ceux qui travaillent sur le logiciel libre, qui ont déjà leurs contraintes professionnelles et, une grande partie, ce sont des volontaires qui le font dès qu’ils ont cinq minutes et ce n’est pas forcément très visible.
Public : Inaudible.
Florent Fourcot : Là on a un retour d’expérience de quelqu’un plutôt déçu qui a essayé de contribuer à un projet et l’entrée dans le projet n’a pas forcément été facile.
J’ai eu aussi, à titre personnel, ce genre d’expérience. Un jour, j’ai essayé d’envoyer un patch à Django, qui me semblait assez trivial. Ça ne s’est pas bien passé parce que je n’ai pas respecté… Effectivement, en fonction des projets, les règles de contribution ne sont pas forcément toujours les mêmes.
On me signale que c’est fini. Je crois qu’il y avait encore une question, on peut volontiers en discuter.
Merci.
[Applaudissements]