jueves, abril 06, 2006

CONSTRUYE Y LUEGO ADORNA


En algún momento leí o escuché que programar puede ser una forma de arte, no presté mucha atención en aquel momento ni cuestioné dicha afirmación. Mucho tiempo después al ponerme a decidir en si programar es un arte o no, pensé en el estilo del programador el cual debe ser limpio y modular pero al mismo tiempo ese código debe funcionar y debe ser entendido por otros programadores para que ellos lo modifiquen. Aclaro que no soy un programador en el sentido profesional de la palabra; he programado es cierto pero lo he hecho solo por placer y nunca he tenido necesidad hasta ahora de que alguien mas modifique y entienda mi código, por lo tanto tengo la mala costumbre de no agregar comentarios a dicho código, lo cual es desafortunado porque pienso que eso me ahorraría tiempo al tratar de entender de nuevo un programa que yo mismo abandonara por mucho tiempo.

Esas reglas de limpieza y de agregar comentarios tiene un fin que no tiene que ver con el arte, el fin es el mantenimiento del programa para que sea fácil de entender y de modificar. Hay una regla de la arquitectura que dice: "primero construye y luego adorna pero no construyas y adornes al mismo tiempo", curiosamente esa misma regla se puede aplicar al programar ya sea desarrollando un juego por ejemplo lo cual me hace considerar el aceptar la idea que programar es un arte. Hasta este momento no puedo concluir nada pero para explorar esa idea pensemos en una bella ciudad Granada y su joya arquitectónica Alhambra , la cual es bella y funcional a pesar del paso de los siglos; los constructores originalmente construyeron y se concentraron en que dicha construcción no se derrumbara fácilmente pero aunque posiblemente el adorno fue hecho después de construir, era necesario decidir las dimensiones de dicha construcción es decir tener en mente cual seria el resultado final una vez que estuviera adornada.

¿Es aplicable la analogía anteriormente mencionada para la programación? Me inclino a pensar que sí.

No hay comentarios.: