La afirmación es, en el mejor de los casos, ingenua.
SLOC no es exactamente una métrica confiable para nada útil, excepto quizás comparar el tamaño de dos o más proyectos. Además, hay dos tipos distintos de SLOC, LOC físico y LOC lógico, y estos pueden diferir significativamente. Considere este ejemplo, de Wikipedia :
for (i = 0; i < 100; i += 1) printf("hello");
Aquí tenemos un LOC físico, pero dos lógicos ( for
y printf
declaraciones). Pero, por supuesto, podríamos escribir el ejemplo como:
for (i = 0; i < 100; i += 1)
printf("hello");
Lo que nos daría dos LOC físicos y dos lógicos. Creo que está claro que cualquier medición de "error por loc" que dependería de los LOC físicos estaría contaminada por el estilo de programación, por lo que nuestra medición sería en gran medida inútil.
Si, por otro lado, utilizamos LOC lógicos, nuestra medición dependería en gran medida de las idiosincrasias sintácticas del lenguaje. Aunque la métrica resultante podría ser un poco útil al comparar proyectos escritos en el mismo idioma, sería bastante inútil para proyectos escritos en diferentes idiomas.
Una posible fuente para el reclamo son las fallas de software de Les Hatton, locuras y falacias :
Podemos concluir que la elección del lenguaje de programación está, en el mejor de los casos, débilmente relacionada con la confiabilidad.
Más adelante, el artículo menciona densidades de defectos similares para C y C ++:
En un estudio reciente que comparó dos sistemas similares de tamaño similar (alrededor de 50,000 líneas cada uno), uno en C y otro en C ++ diseñado por objetos, se demostró que las densidades de defectos resultantes eran aproximadamente iguales en 2.4 y 2.9 por 1000 líneas respectivamente.
Sin embargo, esto no significa que el "error por LOC" sea constante en todos los lenguajes de programación, o que sería significativo si lo fuera.