
Envoyé par
yildiz-online
T'es quand même le seul à avoir évoqué la qualité de code, faudrait savoir...
yildiz, bien que certains de tes arguments précédents soient pertinent, je me dois de te faire remarquer que celui-ci fait preuve d'énormément de mauvaise foi :
Aeson : " Le nombre de ligne de code ne veut rien dire sur la qualité du code. "
Aeson faisait simplement remarquer /rappeler que parler de nombre de lignes d'un code n'est pas un indicateur direct de sa qualité. Une remarque qui à toute sa légitimité dans un site côtoyé à la fois par des experts et des profanes. Les gué-guerres de visibilité à coup de "c'est moi qui ai la plus grosse" sont d'une banalité aujourd'hui... et c'est peut-être le cas (consciemment ou inconsciemment) de cet article, qui n'expose que des chiffres, sans réellement étayer ces derniers par leur implication dans ce qu'il faudrait pouvoir en déduire... car après tout, c'est une news, pas une vulgarisation de statistique.
De plus, à la défense d'Aeson, pour juger de la qualité d'un code, autre que son aspect esthétique (ex: l'aération), il faut connaitre le langage, et le paradigme utilisé (un langage inconnu /pas-maîtrisé et un paradigme d'aspect complexe donne vite l'impression de programmation spaghetti).

Envoyé par
Aeson
(...) le nombre de ligne de code n'as aucun rapport avec la qualité ou la popularité d'un projet (...)

Envoyé par
esperanto
(...) le nombre de lignes est un mauvais critère, surtout en C où une ligne a de bonnes chances de se réduire à '}' (...)

Envoyé par
Vulcania
@Aeson je suis pas d'accord, le nombre de lignes d'un projet ne témoigne pas de sa qualité dans l'absolu, mais déclarer que ça veut rien dire...
Quand on supprime 2 millions de lignes de code inutilisé, pour moi ça traduit par moins de bordel dans le code à gérer, (...)
Je rejoins Vulcania, un code source se décrit, entre autre, par sa taille. Ce n'est évidement pas un critère principal, mais c'est un facteur parmi d'autres. Le vrai problème si l'on retient ce critère pour juger de la qualité, c'est de ne pas le mettre en corrélation avec des critères nettement plus significatifs... on appel ça un biais cognitif, ou encore "réduire qqch à".
Se séparer du support de matériels préhistoriques fait sûrement du bien au code, je suppose que la décision à été prise à l'encontre de l'intérêt de ces utilisateurs finaux concernés, à cause de leur extrême minorité. De plus, de mémoire, une partie de ce code n'étais plus maintenu.

Envoyé par
yildiz-online
Moi la qualité du kernel, c'est le dernier de mes soucis, je suis utilisateur final, donc tant que ça fonctionne et que c'est bien maintenu, c'est tout ce qui m'intéresse.
Je ne suis pas développeur non plus, mais pour ma part, au contraire, j'y place une grande importance. Je ne pars pas de Windows pour un autre Windows-like (#Ubuntu), ni pour un noyau qui fonctionne, mais est bourré d'instabilité, vérolé de back-door, ou autres failles de sécurité... très peu pour moi.

Envoyé par
esperanto
(...) le nombre de lignes (...) ça peut même avoir une connotation négative, on peut se demander si il n'y a pas parmi ces lignes des bouts de code qui n'ont rien à faire dans un noyau (...)
Je ne connais pas les critères d'admission des implémentations de fonctionnalités noyau (ou des couches plus basses), mais je suppose que ça comporte au moins l'interface avec le hardware (d'où une taille toujours croissante), ainsi que des mécanismes de sécurisation avec les couches supérieures ...quand à savoir quelle est la distinction pour qu'une fonction soit "noyau" ou "applicative", je donne ma langue au chat.

Envoyé par
Vulcania
Ya plein d'outils d'analyses qui vont justement compter le nombre d'instructions par ligne pour obtenir une complexité/densité de code. Bref, ça reste un indicateur pertinent (et surtout dans le cas présent, quand on parle d'un grand ménage).
Il me semble que j'en avais vu un qui comptabilisait les lignes par analogie à des blocs insécables (1 corps de fonction = 1 ligne), exemple d'une portion compté comme une ligne :
1 2 3 4
| switch(1) {
case 1 : cout << '1'; // prints "1",
case 2 : cout << '2'; // then prints "2"
} |
2 |
0 |