$30 off During Our Annual Pro Sale. View Details »

Comment choisir les « bons » composants open source ? (Capitole du Libre 2023)

Comment choisir les « bons » composants open source ? (Capitole du Libre 2023)

Comment bien choisir son composant open source / libre / ethical source ?
On peut être tenté de regarder le nombre de commits, le nombre de contributeurs ou vaguement la licence du composant. Mais il y a d'autres choses à prendre en compte pour essayer de faire le choix le moins mauvais.
Sans parler du fonctionnel du composant, voici quelques astuces à garder en tête pour éviter d'être biaisé dans son choix, avec tout plein d'exemples.

Support de présentation sous licence CC BY-SA.

Vous avez aimé ce support ? Offrez-moi une bière, merci <3
(https://pylapersonne.info/buymeacoffee)

Pierre-Yves Lapersonne

November 17, 2023
Tweet

More Decks by Pierre-Yves Lapersonne

Other Decks in Programming

Transcript

  1. Composants open source
    Comment choisir les « bons » et éviter les pièges ?
    ✿✿✿✿ ʕ •ᴥ•ʔ/ 【デ═

    Version 8
    27/11/2023

    View Slide

  2. ❤🔥

    View Slide

  3. Pierre-Yves
    Lapersonne
    Artisan du logiciel
    @pylapp

    View Slide

  4. FLOSES
    FOSS, FLOSS, FLOSES, open source, libre, ethical source… Question de vocabulaire !
    4

    View Slide

  5. FreeLOSES
    5

    View Slide

  6. FLibreOSES
    6

    View Slide

  7. FLOpen SourceES
    7

    View Slide

  8. FLOSEthicalS
    8

    View Slide

  9. FLOSESoftware
    9

    View Slide

  10. - Un super collègue
    « L’open source est consubstanciel de l’informatique »
    10

    View Slide

  11. fi
    rstdonoharm.dev
    Des milliers de projets sous licence Hippocratic
    (au 17 novembre 2023)
    11

    View Slide

  12. GitHub
    + 160 000 projets sous licence LGPL
    (au 17 novembre 2023)
    12

    View Slide

  13. GitHub
    + 2,4 millions de projets sous licence Apache 2.0
    (au 17 novembre 2023)
    13

    View Slide

  14. GitHub
    + 2,9 millions de projets sous licence GPL
    (au 17 novembre 2023)
    14

    View Slide

  15. GitHub
    + 10 millions de projets sous licence MIT
    (au 17 novembre 2023)
    15

    View Slide

  16. Lorsque l’on cherche une brique FLOSES,
    comment choisir si possible la « bonne »
    en évitant quelques pièges et biais ?
    16 On va faire simple, on n’abordera pas le fonctionnel ni le service rendu des briques logicielles
    🧱

    View Slide

  17. L’excès de con
    fi
    ance
    envers les auteurs du projet
    #1
    17

    View Slide

  18. Trop de con
    fi
    ance tue la con
    fi
    ance
    2017 : Facebook utilise la licence BSD+Patent avant de changer
    2018 : MongoDB dégage la AGPL 3.0 au pro
    fi
    t de la licence SSPL
    2021 : Elastic jette la Apache 2.0 pour Elastic v2 et SSPL
    2021 : Grafana passe de Apache 2.0 à AGPL v3
    2021 : animate.css passe de MIT à Hippocratic 2.1
    2023 : HashiCorp abandonne la MPL 2.0 pour la BSL avec fracas
    2023 : Element choisit la AGPL v3 mais avec un Contributor License Agreement
    2023 : Sentry passe de la BSL à la licence FSL
    18

    View Slide

  19. Rester prudent avec les licences actuelles
    qui peuvent changer
    pour des raisons stratégiques
    #1
    19

    View Slide

  20. Les petites lignes vicieuses
    au sein même des licences
    #2
    20

    View Slide

  21. 21 Pourquoi GitHub ne reconnait pas automatiquement la licence ?

    View Slide

  22. Toujours véri
    fi
    er les licences
    qui peuvent contenir
    des clauses supplémentaires problématiques
    #2
    22

    View Slide

  23. L’obsession des compteurs
    et la folie des nombres
    #3
    23

    View Slide

  24. Plus il y a de commits, mieux c’est ? Quelles sont les natures et compositions des commits ?
    24

    View Slide

  25. Quelles utilisations des forks et stars ont les usagers de GitHub ? Pour quoi en faire ?
    25

    View Slide

  26. Des bugs ? Des trolls ? Une grosse roadmap ? Des problèmes ?
    26

    View Slide

  27. Plusieurs contributeurs actifs ? De passage ? Bien identi
    fi
    és dans le dépôt Git ?
    27

    View Slide

  28. Rester prudent avec les nombres
    de commits, stars, forks, issues, contributeurs…
    qui peuvent être totalement trompeurs
    et interprétés de manières différentes
    #3
    28

    View Slide

  29. Ne pas regarder sous le capot
    et ignorer ce qu’il y a dedans
    #4
    29

    View Slide

  30. Toujours regarder les rouages
    Y a-t-il des alertes de sécurité ? Corrigées ?
    En quoi est écrit le code source ? Peut-on l’améliorer ?
    Comment est testé le composant ? Peut-on le corriger ?
    Dans quel état est la documentation ? Est-elle suf
    fi
    sante ?
    Comment est organisé le projet, techniquement et humainement ?
    Dommage de choisir une brique FLOSES sans regarder dedans, non ?
    30

    View Slide

  31. Regarder le composant en détails
    permet d'en savoir plus
    sur sa conception, sa maintenabilité
    et ses perspectives d’avenir
    #4
    31

    View Slide

  32. Ne pas assez considérer
    les humains derrière le projet
    #5
    32

    View Slide

  33. humain++ ; // Ne pas oublier
    Notepad++ et Je Suis Charlie, Gilets Jaunes, Free Uyghur
    Linux et son créateur au caractère compliqué
    colors.js et faker.js corrompus par leur auteur
    #NoTechForICE
    33

    View Slide

  34. Penser aux gens derrière le projet
    qui peuvent être usés, démotivés,
    indisponibles, engagés, compliqués…
    #5
    34

    View Slide

  35. Ne pas savoir
    pourquoi le composant est… là
    #6
    35

    View Slide

  36. Pourquoi c’est là ?
    Attirer des contributeurs rapidement comme CovidTracker ou Duniter et Ğ1
    Faciliter l’adoption d’un outil avec une communauté comme Hurl ou Boosted
    Adhérer aux philosophies* comme les projets du fediverse
    Être conforme avec les licences à copyleft
    Être transparent comme Twitter et son algorithme ou Stop Covid
    Se distinguer des concurrents en s’af
    fi
    chant comme Nvidia
    Partager de la valeur entre sociétés sans facturation comme des design systems
    (*) open source, libre ou ethical source par exemple
    36

    View Slide

  37. Se demander ce qui motive
    le choix de ce fonctionnement
    #6
    37

    View Slide

  38. Ne pas faire attention
    à l’endroit où est le composant
    #7
    38

    View Slide

  39. Pourquoi là ?
    GitHub est réputé, mais racheté par Microsoft, bloque certains
    utilisateurs et soumis à la censure Digital Millennium Copyright Act
    GitLab est réputé… mais soumis au DMCA et aux sanctions
    américaines aussi
    Et les autres forges ? Et celles auto-hébergées ?
    #GiveUpGitHub
    39

    View Slide

  40. Évaluer les risques de dépendre
    de la forge logicielle qui héberge
    #7
    40

    View Slide

  41. Lorsque l’on cherche une brique FLOSES,
    comment choisir si possible la « bonne »
    en évitant quelques pièges et biais ?
    41
    🧱

    View Slide

  42. Il y a des bonnes et des mauvaises briques,
    mais aussi des bons et des mauvais choix,
    tout dépend de comment ils ont été faits,
    pourquoi et par qui
    42
    🤔

    View Slide

  43. Et trop souvent les gens s’en
    fi
    chent, car ce serait
    un combat d’arrière garde mené par des Rambos*
    qui en deviendrait tragique*
    43 (*) merci à Matt Asay (MongoDB) ainsi que Dave McJannet (HashiCorp) pour ces pleurnicheries libertariennes
    🤯

    View Slide

  44. Pour aller plus loin

    View Slide

  45. Présentation largement inspirée de mon billet de blog à ce sujet
    45

    View Slide

  46. Merci !

    View Slide

  47. View Slide

  48. Diapos

    View Slide

  49. Ce support a été rédigé afin de partager aux personnes curieuses

    quelques pistes de réflexion documentées sur les biais et pièges que l’on peut rencontrer

    dans le choix de composants logiciels open source, libre ou ethical source,

    ceci dans le cadre de l’édition 2023 du Capitole du Libre

    et en 25 minutes.

    Les opinions exprimées sont les miennes, et ne représentent aucunement celles de tiers

    (employeurs, associations etc.)

    avec lesquels j’ai pu être ou suis encore en relation.

    Je rappelle à toute fin utile que ma déclaration d‘intérêts est en ligne (pylapersonne.info/declaration).

    Support sous licence CC BY-SA 4.0.

    Tous les liens hypertextes ont été consultés et vérifiés au plus tard le 17 novembre 2023.

    View Slide

  50. View Slide