À quand une convention de nommage standardisée et surtout mise en pratique ? La Fondation Linux déplorait déjà ce manque en 2015, au moment de publier son premier recensement des composants open source les plus utilisés. Une deuxième vague vient de paraître… et le constat n’a pas changé. Avec, à la clé, la même perte de temps pour mettre les données en forme et ls analyser.
Ce n’est pas là le seul obstacle pointé du doigt. La gestion des versions pose aussi problème : les organisations qui ont tendance à adopter leurs propres numérotations une fois les composants intégrés à leurs projets.
La Fondation Linux déplore également l’importante proportion de paquets populaires hébergés sur des comptes individuels, moins sécurisables que les comptes d’organisations. Elle souligne par ailleurs l’existence d’une forme de legacy. Avec plusieurs exemples :
– minimist qui reste plus répandu que yargs, plus récent et plus fonctionnel
– L’usage encore important de FindBugs, que ses mainteneurs ont pourtant délaissé en 2017 au profit de SpotBugs
– La présence plus fréquente, sur l’échantillon pris en considération, de versions obsolètes de Log4j (1.x) que de versions 2.x
De quel échantillon parle-t-on ? D’environ 600 000 observations effectuées en 2020 sur des bibliothèques exploitées en production. Les données, anonymes, proviennent de scans manuels et automatisés réalisés par des fournisseurs d’outils d’analyse de composition logicielle.
La Fondation Linux le reconnaît : sa méthodologie n’est pas exhaustive. Et pour cause : elle n’englobe que les paquets présents au moins sur GitHub ou Libraries.io. Elle exclut en outre certains éléments. Entre autres, les dépendances signalées comme optionnelles et celles non utilisées à l’exécution.
Au bout du compte, il en ressort plusieurs top 500 des composants les plus populaires. En l’occurrence, huit. Avec trois segmentations principales. Premièrement, en tenant ou pas compte des versions. Deuxièmement, en se limitant à npm ou au contraire en l’excluant (conséquence d’une surreprésentation de JavaScript dans l’échantillon). Troisièmement, en incluant ou non les dépendances indirectes.
Dépendances indirectes incluses, le paquet npm le plus utilisé est debug (utilitaire de débogage). Hors npm, il s’agit du SDK Go d’AWS (aws-sdk-go). Si on s’en tient aux appels direct, lodash (bibliothèque de programmation fonctionnelle) arrive en tête dans la catégorie npm. Hors npm, c’est slf4j-api (API de journalisation).
Lorsqu’on tient compte des versions et des dépendances indirectes, Log4j ressort dans le top 10 hors npm. Mais dans une mouture plus prise en charge (1.2.17).
Illustration principale © monsitj – Adobe Stock
Pour développer une version 7B de son modèle Codestral, Mistral AI n'a pas utilisé de…
L’Autorité de la concurrence et des marchés (CMA) britannique ouvre une enquête sur les conditions…
Thomas Gourand est nommé Directeur Général pour la France. Il est chargé du développement de…
Pour dissuader le CISPE d'un accord avec Microsoft, Google aurait mis près de 500 M€…
Pour réduire la taille des mises à jour de Windows, Microsoft va mettre en place…
De l'organisation administrative à la construction budgétaire, la Cour des comptes pointe le fonctionnement complexe…