En théorie, la cause
est entendue: l'ouverture à tout un chacun du code
d'un logiciel augmente mécaniquement le nombre
de développeurs pouvant contrôler la qualité
de celui-ci, donc diminue le nombre de bogues et améliore
les performances (fiabilité, stabilité,
sécurité, rapidité). Mais encore
faut-il vérifier quantitativement ce raisonnement
logique.
Le cabinet de conseil américain Reasoning s'est
ainsi penché sur l'implémentation des protocoles
Internet (TCP/IP) au sein du noyau Linux (version 2.4.19),
et de plusieurs systèmes d'exploitation propriétaires
(non cités, mais dont les implémentations
disposent, pour quatre d'entre eux, d'une maturité
de plus de dix ans).
Une
collection de 200 projets pris comme référence
La méthode
utilisée par Reasoning pour évaluer la qualité
du code repose sur un outil (propre au cabinet) permettant
d'automatiser l'identification des défauts de programmation
pouvant potentiellement causer des plantages ou une corruption
de données (mauvaise gestion de la mémoire,
erreurs sur les variables, les pointeurs, les tableaux...).
Reasoning a choisi comme référence un échantillon
représentatif de 200 projets commerciaux, totalisant
35 millions de lignes de code, et dont à été
déterminé la "densité de défauts",
soit le nombre de défauts par millier de lignes
de code. Ces projets sont divisés en trois groupes
égaux en nombre: ceux dont la densité en
question est inférieure à 0,36, ceux pour
lesquels elle est comprise entre 0,36 et 0,71, et enfin
ceux pour lesquels elle dépasse 0,71.
Comparaison
en faveur de Linux, mais difficilement généralisable
Résultats:
la même évaluation pour l'implémentation
TCP/IP du noyau Linux étudié place ce dernier
dans le premier tiers de l'échantillon, avec une
"densité de défauts" égales
à 0,10 (pour un nombre de lignes de code d'environ
81,9 milliers), tandis que ce chiffre, pour l'ensemble
des implémentations commerciales, atteint 0,55
(pour un nombre de lignes de code d'environ 568 milliers
au total).
Quelle conclusion donner ?
D'une part, l'étude est limitée à
la "pile TCP/IP", et ne concerne donc pas l'architecture
de l'ensemble du système d'exploitation. D'autre
part, Reasoning ne citant pas les OS propriétaires
évalués (même si deux Unix propriétaires
feraient partie du lot, selon LWN.net), nous ne pouvons
savoir d'où proviennent les piles TCP/IP qu'ils
utilisent (et qui sont, peut-être, Open Source pour
partie: rappelons-nous que Microsoft avait concédé
que celle de Windows était dérivée
de l'implémentation xBSD...).
Bref, il serait plus qu'hasardeux de conclure "scientifiquement"
à partir de cette comparaison spécifique
que la qualité globale des logiciels opensource
est supérieure à celle des logiciels propriétaires.
|