Programar es un Arte

785 palabras · 3 minutos

28/08/2010

De entre mis primeros recuerdos como estudiante se encuentra una transparencia de aquel al que llamabamos "El Capitán Pescanova". Le bautizamos así porque por su aspecto era muy fácil imaginársele vestido de marinero pescando atunes con redes en el Cantábrico, aunque la dura realidad era que se dedicaba a pescar besugos con exámenes en campus universitarios.

El caso es que este buen hombre en una de sus clases mostró una transparencia que decia lo siguiente:

Programar NO es un arte

Toma ya, así, sin anestesia. Como un ataque trapero y por la espalda: rápido, conciso, directo y sin avisar. Si lo sé ese día me quedo en casa. Vistió una opinión suya de verdad universal y nos la soltó envuelta en una frase de cinco palabras. Alguno de sus alumnos seguro que todavía la usa, escondido detrás de alguna corbata, para quedar estupendamente en las reuniones.

El caso es que si buscas arte en la RAE verás que aparecen, entre otras, las siguientes definiciones:

A lo que yo me pregunto:

¿Es que simplemente somos monos que aporreamos teclados?. Ya lo creo que NO.




Vamos a ver si tocando teclas de cualquier manera me gano un platanito.


Cualquiera que haya disfrutado o disfrute tirando líneas mientras programa sabrá y entenderá que programar es un arte. He participado en muchos proyectos, he revisado y auditado el código de software escrito en otros continentes y, cuando un software está bien creado, cuando se ve un diseño detrás, orientación al producto, preocupación por el acabado, ingenio, simplicidad y pequeños detalles que denotan calidad alguien que entienda de esto ve elegancia. En cambio, cuando te encuentras con un código desestructurado, con sobreingenieria, con un montón de puntos débiles y de posibles problemas ves lo que viene a ser un desastre. Todo esto independientemente de que el producto que utiliza el usuario final sea más o menos bonito por fuera.

En este sentido creo que ocurre lo mismo que con los cuadros. Muchos de nosotros no podemos ir más allá de su apariencia y simplemente sabemos decir si un cuadro nos gusta o no, pero los entendidos pueden ir más allá y dar un contexto mayor a la obra: influencias con otros autores de la época, trazos, profundidad, combinación de colores, etc.

También podemos leer una novela y disfrutar o no leyéndola sin entrar en las técnicas empleadas para dar velocidad, intensidad, el uso de las terceras personas, etc.

Está claro que la pintura, la escultura, la música o el cine son actividades que requieren de creatividad, ya que el autor tiene que ver la obra en su cabeza antes de plasmarla en un pentagrama, un lienzo o una escena. Es muy romántico imaginarse a un pintor con un cuadro en la cabeza y un lienzo delante que no dormirá, no comerá y que hasta sufrirá hasta que no vea su obra creada. Por contra todo el mundo sabe que los ordenadores son frios y los programadores unos frikis. ¿Un ordenador es frio y un lienzo no?, el pintor que se tira una semana encerrado en casa pintando un cuadro ... ¿es un artista o un friki?, ¿y un chaval que se tire una semana encerrado en casa haciendo un videojuego?

Para crear cualquier cosa que se te imagine o para resolver un problema que no habías resuelto antes necesitas, quieras o no, creatividad. Puentes, edificios, coches, barcos, aviones, trenes, teléfonos o televisores son elementos que también estuvieron en la mente de una o más personas antes de ser plasmadas en algo físico y tangible. ¿Acaso eso no es arte?, ya lo creo que si. ¿Por qué debería ser diferente con el software?.

Un estudiante de derecho que toca el piano por las tardes para crear una obra tiene algo de artista. ¿Acaso no tiene lo mismo de artista un estudiante de economía que toca el teclado por las tardes para crear un programa?.

Entiendo que alguien quiera justificar sus años de carrera ante los demás puede decir que "programar no es un arte" para intentar aparentar ser más profesional. En este contexto quizá aquello de "programar es como poner los ladrillos de un edificio" encaje, aunque esto último, no nos engañemos, no deja de ser mentira, pero eso, queridos amigos, es otra historia.

Así es que si te gusta programar y alguien te dice que "programar no es un arte", ¡que no te engañe!, ¡eres una persona creativa, no un mono que pulsa teclas!




ACTUALIZACIÓN: Con los años, y gracias a Rafael Luque, he tenido la ocasión de poder leer 'Hackers & Painters' de Paul Graham. Lectura muy recomendada que, entre otras cosas, demuestra que hay multitud de rasgos y de sensibilidades que tanto los hackers como los pintores compartimos.