La ligne de code est-elle la meilleure unité de mesure d'un projet informatique ?
Un diagramme les classe suivant l'importance de leur code source

Le , par Stéphane le calme, Chroniqueur Actualités
L'infographiste David McCandless a publié un diagramme classant les logiciels informatiques et les sites web suivant l'importance de leur code source, du plus petit nombre de lignes de code (un simple jeu pour iPhone) au plus important (le site web healthcare.gov).

Pour réaliser ce travail, il s'est inspiré de diverses sources parmi lesquelles la NASA, Quora, Ohloh ou encore des rapports de presse. Cinq catégories sont représentées par des couleurs différentes pour différencier les systèmes d'exploitation, les jeux vidéo, les applications, les navigateurs web et les machines. Des arcs ont également été apposés pour montrer l'évolution du code à travers le temps (comme le noyau Linux, Windows ou encore Microsoft Office).

Le diagramme révèle par exemple que le nombre moyen de lignes pour réaliser une application iPhone se compte en centaines de milliers. Avec plus de 50 millions de lignes de code pour sa plateforme, le réseau social Facebook est classé devant des systèmes d'exploitation comme Windows 7 ou Windows XP, qui requièrent chacun un peu moins de 40 millions de lignes de code.


La ligne de code est un indicateur. C'est un élément, parmi d'autres, qui est souvent employé pour quantifier l'effort qui sera exigé pour développer un programme informatique, ainsi que pour estimer la valeur d'un logiciel produit.

A comparer les codes

Code : Sélectionner tout
var result = methodOne(methodTwo(a, methodThree(b)), c, d);


et

Code : Sélectionner tout
1
2
3
var result3 = methodThree(b); 
var result2 = methodTwo(a, result3); 
var result = methodOne(result2, c, d);
Lequel vous semble le plus efficace ? Un exemple encore plus simple pour établir une comparaison.

Code : Sélectionner tout
for (i=0; i<100; ++i) printf("hello"); /* Ici 1 ligne de code */
et

Code : Sélectionner tout
1
2
3
4
for (i=0; i<100; ++i) 
{ 
    printf("hello"); 
} /* Ici 4 lignes de code */
Sources : Information Is Beautiful(Diagramme complet), [URL="http://programmers.stackexchange.com/questions/203684/is-fewer-lines-of-code-always-better"]Stackexchange[/URL.

Et vous ?

La ligne de code est-elle la meilleure unité de mesure d'un projet informatique ?

Quelle est, selon vous, la meilleure unité de mesure possible ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de transgohan transgohan - Expert éminent https://www.developpez.com
le 30/10/2013 à 18:50
Toute seule elle ne sert à rien et n'est représentative de rien.
Avatar de SylvainPV SylvainPV - Rédacteur/Modérateur https://www.developpez.com
le 30/10/2013 à 19:32
Savoir résoudre un problème en exprimant la solution sous sa forme la plus simple est une marque d'intelligence, une qualité indéniable pour tout codeur.

Mais la ligne de code en soi n'est pas un indice suffisant. Il faudrait fixer des règles précises pour l'indentation, le nommage, les sauts de ligne et la factorisation des fonctions. Puis s'assurer que le code suit parfaitement toutes ces règles. Enfin, on pourrait comparer ce qui est comparable. Mais la comparaison ne devrait pas se faire sur le nombre de lignes de code, plutôt sur le temps d'assimilation par un tiers.

Enfin, survoler en diagonale un code et regarder le nombre de lignes à la fin reste un moyen assez efficace pour se faire une première idée de la qualité du code.
Avatar de koyosama koyosama - Membre confirmé https://www.developpez.com
le 30/10/2013 à 19:56
Moi je dis la meilleur unité de mesure doit-être les ticket de bugs sur la même année de production ().
Avatar de Zefling Zefling - Membre émérite https://www.developpez.com
le 30/10/2013 à 19:56
Ça peut rien dire, quand passes 2 jours pour réduire de 3000 lignes ton codes, en l'améliorant. Le nombre de ligne peut donner une idée de la quantité de travaille, mais je mettrais le temps hommes avant le nombre de lignes comme indice.

Quand tu bosses sur un algo, ça peut te prendre un temps bien plus long pour écrire 15 lignes, que les 1000 qui vont te servir à faire un rendu dans une interface.

Bref, pour moi, seul, ça ne veut pas dire grand-chose.
Avatar de JackIsJack JackIsJack - Membre habitué https://www.developpez.com
le 30/10/2013 à 19:59


1/ Ce qui est intéressant, c'est de pouvoir estimer le coût d'un projet informatique AVANT qu'il soit développé. Ici on ne parles donc pas de ça.

2/ Sauf stratégie perverse, plus le code est décomposé, plus il est lisible. Plus il est lisible, plus 'il y a d'effort derrière. Plus il est lisible, plus la maintenance sera facile. Complexifier le code en réduisant le nombre de ligne n'a de sens que pour la temps d'exécution.

3/ Il ne faut pas confondre "quantité d'effort" et "qualité du résultat". On peut très bien voir mille personnes creusé un trou au milieu du désert - et ça s'arrête là.

4/ Quand on est un prestataire informatique et que l'on souhaite justifier ses coûts à son client. Il peut être intéressant de le justifier par le nombre de ligne de code ; et pourquoi pas même : le nombre de ligne de code par fonctionnalité <fonctionnelle>
Avatar de micka132 micka132 - Membre expert https://www.developpez.com
le 30/10/2013 à 20:07
Si les données sont exactes, alors pour facebook il faut plus de ligne que pour un OS.
En considérant que la ligne de code est la meilleur unité de mesure alors facebook est un projet plus ambitieux qu'un OS moderne...
Ca cloche quelque part
Avatar de DonQuiche DonQuiche - Expert confirmé https://www.developpez.com
le 30/10/2013 à 20:10
Citation Envoyé par Faridsarl  Voir le message
Non.
La meilleure unité de mesure selon moi, cest l'espace mémoire necessaire pour l'execution des codes et le temps d'execution.

Donc si j'optimise mon code pour qu'il soit plus rapide et prenne moins de mémoire, il est plus simple et a moins de valeur ?
Ou alors au contraire faut-il comprendre que notepad.exe vaut davantage que tout windows puisqu'il requiert moins de mémoire ?
Ou encore faut-il comprendre que la comparaison doit se faire pour un même résultat, auquel cas un code 10% plus rapide mais trois fois plus complexe est préférable ?

Comme quoi on peut faire pire indicateur que la ligne de code.
Avatar de Francis Walter Francis Walter - Expert éminent sénior https://www.developpez.com
le 30/10/2013 à 20:24
Citation Envoyé par DonQuiche  Voir le message
Ou encore faut-il comprendre que la comparaison doit se faire pour un même résultat, auquel cas un code 10% plus rapide mais trois fois plus complexe est préférable ?

Oui la comparaison doit se faire pour un même résultat mais dans ce cas, seule la rapidité ne compte pas mais aussi l'optimisation des resultats obtenus.

Ou alors au contraire faut-il comprendre que
notepad.exe vaut davantage que tout windows
puisqu'il requiert moins de mémoire ?

Les ambitions de notepad ne sont pas les mèmes que celles d'un OS. Faut pas vouloir comparer l'incomparable

Comme quoi on peut faire pire indicateur que la ligne de code.

Bah ça va de soi.
Avatar de claudetom claudetom - Futur Membre du Club https://www.developpez.com
le 30/10/2013 à 20:33
C'est un ensemble de détails :
la complexité
Le temps passé à son étude et développement.
Les fonctionnalités.
Temps conception / corrections de bugs !!
Sa lisibilité !
les ressources mémoire..
Avatar de moldavi moldavi - Membre émérite https://www.developpez.com
le 30/10/2013 à 21:24
Citation Envoyé par Stéphane le calme  Voir le message

Et vous ?

La ligne de code est elle la meilleure unité de mesure d'un projet informatique ?

Non certainement pas. Ca peut donner une idée sur l'ampleur, mais c'est tout. D'ailleurs comparer le nombre de lignes de code C/C++ avec du php, faut être téméraire.

Pour moi, que Facebook ait plus de ligne de code qu'un OS comme Windows, me conforte dans l'idée que le développement Web, c'est encore plus de la bidouille que le développement d'application classique. Je dirai même qu'aujourd'hui le développement Web a atteint des sommets de bidouillages extrêmes... ( C'est peut-être pour cela qu'ils sont tous à fond sur le html5...).

Avec le designer Visual Studio (en windowsForm) , je te ponds 1000 lignes de code en 1 minute... Juste quelques clicks de souris.

Citation Envoyé par Stéphane le calme  Voir le message

Quelle est, selon vous, la meilleure unité de mesure possible ?

Il n'y en a a pas. Le développement, ça tient plus de l'art que du travail à la chaîne. C'est inquantifiable. Mais bon il y en a qui cherche à quantifier, peut-être qu'un jour ils y arriveront... Ce jour là, je leur dirai bravo.
Contacter le responsable de la rubrique Accueil