Línea de código fuente

La definición de línea de código fuente es esencialmente ambigua para la mayor parte del software. Su significado varía de un lenguaje de programación a otro, pero también dentro de un mismo lenguaje de programación.

Una línea de código fuente es cada una de las líneas de un archivo de código fuente de un programa informático. Habitualmente en cada línea se ejecuta una instrucción que tiene que ejecutar el programa. También es habitual tabular las estructuras de control del programa en cuestión para una lectura más fácil. Viene a ser como la oración en libros y textos escritos en general.

En ocasiones los programadores hablan del número de “líneas de código” que tiene cierto programa para hablar de la magnitud o complejidad de este.

En computación, el número de línea de una instrucción es un punto bastante útil a la hora de compilar el programa porque habitualmente los compiladores detectan errores de programación mostrando el número de línea donde se ha encontrado el error que el programador deberá corregir para una compilación satisfactoria.

Como curiosidad, algunos programadores se divierten complicando la forma de programar, bien por diversión, como reto entre programadores, o para que sea imposible de entender para un programador poco experimentado. A este pasatiempo se le denomina programación ofuscada y uno de los puntos más habituales para programar ofuscadamente es no escribir una instrucción por línea y no hacer tabulaciones, en ocasiones se escriben varias instrucciones por línea o a veces se corta una instrucción en varias líneas. Los más experimentados en este tipo de pasatiempos, se atreven incluso a realizar obras de Ascii art con las líneas de su código fuente.

En el lenguaje de programación C, por ejemplo, una línea de código puede ser:

  1. una instrucción acabada en un salto de línea,
  2. una instrucción acabada en un punto y coma,
  3. cualquier línea del programa que acabe en un salto de línea (comentarios incluidos).

Por ejemplo:

for (i=0; i<100; ++i) {printf("hola");} /* ¿Cuántas líneas tiene este programa? */

Proviene de las siglas en inglés de Source Lines of Code (SLC), en español, “Líneas de Código Fuente” (LCF) o “Líneas de Código Fuente Únicas” (LCFU).

El uso de medidas de LCF

De acuerdo a Andrew Tanenbaum, los valores de líneas de código fuente para diferentes sistemas operativos de la línea de productos de Microsoft Windows NT son las siguientes:

Año Versión LCFU (en millones)
1993 Windows NT 3.1 4-5[1]
1994 Windows NT 3.5 7-8[1]
1996 Windows NT 4.0 11-12[1]
2000 Windows 2000 más de 29[1]
2001 Windows XP 40[1]
2005 Windows Vista Beta 2 más de 50

David A. Wheeler ha estudiado el sistema operativo Red Hat (distribución de los sistemas operativos de Linux) e informó que Red Hat versión 7.1 (lanzado en abril de 2001) contiene cerca de 30 millones de LCFU físicos. También extrapoló que, de haber sido desarrollado por medios convencionales de propiedad (medida de tiempo-persona) habría requerido de unos 8.000 años/persona de esfuerzo y desarrollo y hubiesen costado más de mil millones de dólares (cotizados en el año 2000).

Un estudio similar, reveló que Debian versión 2.2 (conocido por su nombre clave "Potato") contiene unos 55 millones de LCFU y de haber sido realizado mediante las propiedades convencionales, hubiese tardado unos 14005 años/persona y costado unos 1900 millones de dólares. Más tarde se ejecutó una de las herramientas utilizadas en el informe para la siguiente versión y se reportó que Debian posee 104 millones de LCFU, y a partir del año 2005, las siguientes versiones poseerán, al menos, más de 213 millones de LCFU.

Se pueden encontrar las cifras de los principales sistemas operativos (las distintas versiones de Windows se han presentado en una tabla de arriba).

Sistema Operativo Líneas de código independientes (en millones)
Red Hat Linux 6.2 17[ cita requerida]
Red Hat Linux 7.1 30[ cita requerida]
Debian 2.2 55-59[3]
Debian 3.0 104 />
Debian 3.1 215 />
Debian 4.0 283 />
OpenSolaris 9.7
FreeBSD 8.8
Mac OS X 10.4 86[4]
Núcleo Linux 2.6.0 5.2

En comparación, las cifras de algunas herramientas gráficas.

Graphics Program LCFU (Million)
OpenOffice.org ~10[ cita requerida]
Blender 2.42 ~1[ cita requerida]
GIMP v2.3.8 0.65[ cita requerida]
Paint.NET 3.0 0.13[ cita requerida]
Other Languages
Esperanto: Linio teksta
Bahasa Indonesia: Baris