La importancia de escribir buen código

GNOME es un proyecto de software libre muy ambicioso y, como tal, está compuesto por muchos paquetes de software que son más o menos independientes el uno del otro. Mucho del trabajo en GNOME lo realizan voluntarios; programadores que vienen y se van en cualquier momento y que serán capaces de dedicar diferentes cantidades de tiempo al proyecto GNOME. Muchas personas trabajan en software libre en su tiempo libre o como un pasatiempo, así, si sus responsabilidades del ‘mundo real’ cambian, se verá reflejado en la cantidad de trabajo que dedicarán a proyectos de software libre.

Se tarda mucho tiempo en escribir software y supone una gran cantidad de trabajo. Es por esto que muchos de los voluntarios de tiempo parcial no pueden comenzar grandes proyectos por sí mismos; es mucho más fácil y gratificante contribuir a proyectos existentes, puesto que los resultados son inmediatamente visibles y usables.

Teniendo esto en cuenta y el hecho que los programadores de software libre tiene recursos escasos, concluimos que para los proyectos existentes es muy importante facilitar, tanto como sea posible, que otras personas puedan contribuir. Una forma de hacerlo es asegurándose de que los programas sean fáciles de leer, entender y modificar.

El código desordenado es difícil de leer y las personas pueden perder interés si no son capaces de descifrar lo que el código intenta hacer. Además, es importante que los programadores sean capaces de entender el código rápidamente, y así poder comenzar a contribuir reparando fallos y extendiéndolo en un período breve de tiempo. El código fuente es una forma de comunicación, y así como a alguien podría no querer leer una novela con errores ortográficos y mala puntuación, los programadores deben intentar escribir buen código de tal forma que sea fácil de entender y modificar por otros.

Existen algunas cualidades que son importantes en un buen código y por qué son importantes para los desarrolladores de software libre:

Limpieza

Un código limpio es fácil de leer; permite a las personas leerlo con un mínimo esfuerzo y así pueden entenderlo más fácilmente.

Consistencia

El código consistente permite más fácilmente que las personas entiendan como funciona el programa; cuando se lee código consistente, subconcientemente uno se forma un número de supuestos y expectativas acerca del funcionamiento del código, de esta forma es más fácil y seguro realizarle modificaciones.

Extensibilidad

El código de propósito general es más fácil de reutilizar y modificar que el código demasiado específico con muchos supuestos escritos directamente en el código (hardcoded). Cuando alguien desea agregar una nueva característica a un programa, obviamente será más fácil hacerlo si el código fue diseñado para ser extensible desde el inicio. El código que no fue escrito de esta forma hará que las personas deban implementar hacks muy feos para poder añadir características.

Corrección

Finalmente, el código diseñado debe ser correcto para que las personas pierdan menos tiempo preocupándose de los errores y se ocupen en extender las características de un programa. Los usuarios también apreciarán un código correcto, ya que a nadie le gusta que un programa se caiga.

En resumen, los programadores a menudo contribuyen en su tiempo libre a proyectos de software libre, y aún quienes contribuyen de forma regular pueden detenerse en cualquier instante del tiempo, así que es muy importante que el código sea bueno y les permita modificarlo facilmente. El resultado final será un mejor software al que los programadores querrán extender.