El arte y la programación

Hace un tiempo comparé la programación con la literatura , ahora seré algo más general.

Gracias a un amigo conocí la definición de arte de Umberto Eco, que no recuerdo literalmente, y que además está expresada en un lenguaje sumamente técnico, pero que en definitiva es algo como esto: Algo artístico es aquello donde el contenido trasciende al significado… bueno no exactamente, aquí habría que cambiar “algo” por mensaje, contenido por denotación y significado por connotación. En general esto es que un cuadro, un relato, una pieza musical llegan a ser arte cuando de alguna manera se bastan así mismas para existir…, para generar significados según por quien sean apreciados.

Como estamos en el siglo XXI usemos las definiciones de Internet:

El término arte procede del término latino ars. En la Antigüedad se consideró el arte como la pericia y habilidad en la producción de algo. Es solo a partir de finales del siglo XV, durante el renacimiento Italiano, cuando, por primera vez se hace la distinción entre el artesano y el artista (artesanía y bellas artes) y equivalentemente entre artesano, productor de obras múltiples y artista, productor de obras únicas. ...
http://es.wikipedia.org/wiki/Arte



La mezcla de estas dos definiciones pueden ayudar a descubrir hasta que punto la programación puede ser artística (quede claro que hablamos de la programación en sí, de la escritura de código, no del resultado final, algo así como lo que menciona Thomas Mann su Doctor Faustus cuando dice que muchas obras musicales tienen dos formas de ser apreciadas, con los oídos y con la vista, está ultima se refiere a la partitura y solo está destinada a los conocedores o iniciados).

Entonces, que es programar? Básicamente escribir código, pero en realidad es mucho más que eso, hacer un buen programa recuerda mucho a la anécdota china del emperador, el pintor y el cangrejo:

“Un día el Emperador quiso tener el dibujo más perfecto posible de un cangrejo, así que mandó a llamar al mejor dibujante del imperio y le dijo:

- Te doy una casa, sirvientes, una pensión y todas las comodidades que necesites, para que me pintes el cangrejo más perfecto que se haya dibujado jamás.

El dibujante, feliz, aceptó y se fue a su nueva casa.

Se sucedieron los días, los meses, los años, se fueron 30 años y el Emperador no tuvo noticias del pintor, cansado de esperar hizo que lo trajeran a su presencia.

- 30 años pasaron desde que te pedí el dibujo del cangrejo, mi paciencia se ha agotado y te exijo que me muestres tu trabajo.

El pintor asintió y pidió que le trajeran tinta, un pincel y papel, y en presencia del Emperador, en apenas unos instantes dibujó un cangrejo perfecto”

Claro que ya quisiéramos los programadores estas condiciones, pero en general para crear un programa de calidad debemos irnos a un rincón y rumiar los requerimientos del sistema y encontrar el mejor diseño posible, para luego, poco a poco, a veces a base de prueba y error (creo que a esto último le llaman programación evolutiva), lograr que nuestro sistema se apegue lo más posible a la realidad idealizada del cangrejo.

Pero este chino era un artista?

O un artesano?

Si luego de los tantos siglos que pudieran haber pasado, alguno de nosotros se encuentra con el dibujo perfecto de un cangrejo, seguramente lo admiraríamos, seguramente quisiéramos colgarlo en una pared de nuestra casa, pero… es arte?

Según Oscar Wilde lo artístico debe ser inútil y bello, el dibujo del cangrejo sería el caso.

Regresemos a Eco, a la parte de la connotación, como interpretar esto? Yo pienso que esta connotación personalizada solo puede lograrse mediante el reconocimiento de uno mismo en la pieza artística que se contempla(o que se oye o que se ve), por ejemplo, cuando me leí “El Extranjero”, de Camus, el cinismo y la apatía del protagonista, calaron profundamente en mí, no es que quisiera ser así, ni que lo sea, pero de alguna manera me vi reflejado en este libro, no como un todo, no hablo del retrato, hablo de ver ese pedazo de vida transcurrir frente a mí, mostrándome una realidad existente y falsa al mismo tiempo, yo la hacia existir y sin embargo era falsa. Yo fui parte del relato, no porque lo leí, sino porque conjugando la lectura con mis pensamientos, con mi propia vida, le encontré un significado a la novela que la hace única para mí, y que la haría única para otra persona que la lea.

Entonces es esto, aventurémonos a soltar una definición: Arte es aquello que es capaz de conjugarse con su público para alcanzar una nueva dimensión única, y tantas como público exista.

Que les parece, y la programación?

Desafortunadamente un programa es siempre el mismo programa, quizás las condiciones en que fue creado, las condiciones en que es distribuido pueden generar sentimientos distintos y únicos, pero jamás el código mismo, el código es solamente una pieza de artesanía, nada más.

PD: No se han fijado que en todas las revistas, programas, o lo que sea siempre se dice: "Arte y Literatura"? Nunca se han preguntado por qué? Eso lo dejamos para el próximo artículo.

4 comentarios:

Unknown dijo...

Haces referencias a muchas definiciones de arte y no dices cuál es la que defiendes o usas prioritariamente.
Puede ser que Wilde tenga razón en que algo artístico siempre deba ser bello (de ahí la parte estética del arte), pero que tenga que ser inútil obligatoriamente hace que esa proposición sea falsa y ella misma inútil, estéril.
La parte «artesanal» (ingenieril) de la programación no tiene por qué contraponerse a las demás (científica, artística), sólo es un complemento, una parte.
Al final tienes una contradicción con la primera parte, lo que es único es la denotación del programa. Lo que interpreta cada programador que pueda ver un código es único y diferente al resto de las interpretaciones o apreciaciones. Es en eso que se basa el decir que la programación es arte.

Anónimo dijo...

Bien, en realidad no estoy de acuerdo con Wilde, solo lo mencioné como una alternativa simplista y romántica del problema.

Luego es totalmente irrelevante si una pieza de \\\"algo\\\" es o no util, pero eso que dices al final: . \\\"Lo que interpreta cada programador que pueda ver un código es único y diferente al resto de las interpretaciones o apreciaciones.\\\" No le veo mucho sentido, quizas hayas visto más codigo fuente ajeno que yo, pero en todo caso un programador viendo el codigo fuente ajeno se le pueden ocurrir diversas ideas de que hacer con él, pero no eso sería identificarse con el codigo, sino simplemente tener ideas, nada más.

Anónimo dijo...

Creo que al leer un código ajeno -o no- bien escrito, bien diseñado, bien estructurado -sin pretender acotar que significa este "bien"- uno puede llegar a identificarse con él. Los programadores aman programar (yo lo hago) supongo que tanto como un pintor la pintura o un escritor a las obras literarias. Se puede disfrutar un código, yo lo he experimentado, incluso tu propio código.
La habilidad del artesano puede llevarlo a ser un artista en tanto su habilidad pueda tornar un objeto común en una obra de arte única. Una vasija, un lienzo o un código en C++;
< imaginación >Pon a D'vinci a pintar junto un estudiante de pintura, luego pon a Ritchie a program sentado a mi lado...< /imaginación > en ambos casos es pintar, en ambos casos es programar pero con connotaciones muy diferentes...

Alexander Cordero dijo...

Confieso que no se me ocurrió jamás la idea de que programar fuese arte, o que tuviera una parte de arte. Incluso cuando lo escuché en la conferencia de Medardo pensé simplista en “las ventanitas y los colores”. Y al escuchar su explicación me quedé boquiabierto, como en casi toda la conferencia. En algo si estoy de acuerdo con todos. Cuando veo líneas de código experimento sensaciones, más que “entendí” o “estoy botao”. Existe satisfacción y realización. Entera entrega a la obra-programa hasta llegar a la desesperación. Se abstrae del resto del mundo y se quiere la perfección, aunque por momentos de apuro recurra a los parches. Y cuando veo códigos ajenos siento admiración, envidia, codicia o total desprecio. Esa sensación de poder o impotencia me parece mágica. Jamás lo llamaría artesanía. Aunque reutilizara una y mil veces el código. Puede que peque de soberbia pero estimo en mucho la programación.