El arte de la programación

Más allá del todo

Muchas personas antes de mí han puesto su granito de sal con respecto al tema y creo que es hora de que yo haga lo mismo. La cuestión no parecerá muy complicada a simple vista, pero pregúntenle a cualquier programador y véanlo entrar en crisis.

El título ya adelantó un poco lo que está a punto de venir, pero aún así quiero recalcar la pregunta: ¿bajo qué clasificación entra la programación?

Como hipótesis, digamos que la programación es: ciencia, ingeniería o arte. Incluyo las anteriores porque son las categorías más populares (y descarto la religión porque no es un sistema cultural); antes de empezar con mi argumento, debería de mencionar las definiciones que emplearé a lo largo de este artículo.

Una ciencia es el nombre que le damos a las ramas del conocimiento humano, sistemáticamente estructuradas, obtenidas mediante la observación y el razonamiento. Las ciencias permiten la deducción de principios y leyes generales con capacidad predictiva. Por ejemplo, la química es una ciencia, respaldada por el método científico y reconocida como tal.

Por otro lado, tenemos a la ingeniería como un conjunto de conocimientos y herramientas orientados a la invención y aplicación de las ciencias para mejorar la calidad de vida. Aquí podemos resaltar la diferencia principal entre una ingeniería y una ciencia: la ciencia explica la vida, la ingeniería mejora la calidad de vida.

Ahora viene la parte verdaderamente complicada: la definición del arte. A lo largo de la historia, muchas personas han intentado definir el arte y llegan al mismo problema.

La estética es la rama de la filosofía que estudia lo que es bello, cómo lo percibimos y qué es el arte. Y a pesar de existir desde hace siglos, todavía no han podido decidir que es “lo bello” y “el arte”; algunos catedráticos, como Marchán Fiz, dicen que el problema es la naturaleza subjetiva del arte chocando con el punto de vista objetivo de un concepto.

A manera de explicación (y en parte de excusa para poder hablar del tema) pondré un ejemplo. Lozano Fuentes en su libro Historia del arte, menciona lo siguiente:

[…] se entiende por el Arte al conjunto de reglas para hacer algo bien; hablando en un sentido general el arte es toda actividad humana que, basándose en ciertos conocimientos, los aplica el artista para alcanzar un fin bello.
― José Manuel Lozano Fuentes

Expongo el caso de Guernica hecha por Pablo Picasso. Esta obra no es considerada bella para varias personas de Jaque y el autor no aspiraba la belleza, quería evocar un sentimiento.

Guernica, Picasso (1937)

Y esto está a punto de alejarse más de la definición de Lozano; Juan Pablo II, en su carta a los artistas de 1999, dijo lo siguiente:

La belleza es en un cierto sentido la expresión visible del bien, así como el bien es la condición metafísica de la belleza.
― Juan Pablo II

Las personas que se dedican a la historia del arte y los aficionados al arte concuerdan en algo (a lo que podríamos llamarle milagro en nuestra época): la temática trata sobre los horrores de la guerra.

¿Cuándo fue la última vez que escucharon que la guerra fuera algo bueno? Puede que tenga consecuencias positivas, pero la muerte, la hambruna, la destrucción que deja a su paso… voy a asumir que el consenso general es no, la guerra es mala.

Según la definición que nos da Lozano, tenemos una pintura que no es arte, a pesar de que mi instinto (y la opinión popular) dice que Guernica sí lo es. Entonces, ¿esta pintura es o no arte?

Daré poco de trasfondo sobre la escritura de este artículo. En este punto, estaba un tanto decepcionado porque todas las definiciones que encontraba tenían un claro contraejemplo. Y ahí fue donde llegó Katia a salvar el día con la siguiente definición:

Arte es algo que no sirve para nada que no sea ser visto, admirado y que te produzca sentimiento positivo o negativo
― Katia González García

Puede ser que suene muy simple, al menos yo al principio estaba un poco escéptico, pero como dice la estética, el arte es totalmente subjetivo; bajo este argumento puedo decir que para mí, es una definición acertada.

Ahora, con los tres conceptos aclarados, podemos proseguir a analizar la etiqueta que podemos darle a la acción de programar.

Programa “Hello World” en C

Programar es dar una serie de órdenes lógicas a la computadora para generar un programa; de esto no podemos sacar principios y resultados verificables, entonces programar por sí mismo, no es una ciencia.

Claramente no es un arte, ya que es un conocimiento aplicado, es decir, tiene un propósito además de ser visto. A veces necesitas contar cuantas personas usan una aplicación, aprender una nueva tecnología o simplemente terminar la tarea a tiempo; el objetivo prevalece.

Lo que nos queda es que sea una ingeniería. A pesar de ser una parte muy importante en múltiples ingenierías, ¿me creerías si te digo que la programación no es una ingeniería por sí misma? Un ejemplo lo clarificará, ¿lo siguiente mejora tu calidad de vida o es innovador?

sourcecodepoetry.com

Si necesitas ver más programas como el anterior, te recomiendo visitar sourcecodepoetry.com y el libro de Angus Croll, If Hemingway wrote Javascript, del cual saqué lo siguiente:

Código inspirado por Lewis Carroll

El primer código está programado en Java mientras que el segundo, como el título del libro sugiere, es Javascript. Entonces, si la programación fuera una ingeniería, los dos programas tendrían alguna utilidad más allá de ser vistos y evocar un sentimiento.

Si nos fijamos detenidamente, en la última oración acabo de mencionar la definición que di para clasificar al arte. Ahora mi pregunta es: ¿qué está pasando?

La programación ayuda a la ingeniería, puede generar obras de arte y ayuda a las ciencias. Un ejemplo de esto último es el uso dado por las ciencias de la computación, cuyo campo de estudio son los algoritmos.

Ahora tenemos algo más allá de las tres categorías populares, porque la programación es herramienta de cada una, pero sin ser parte de alguna. Y volvemos a la cuestión inicial: ¿qué es la programación?

En este punto, podría divagar sobre todas las etiquetas que intenté ponerle a la programación sin éxito alguno, pero nunca terminaría de escribir esto. Es prácticamente imposible definir algo mediante lo que no es (aunque es muy divertido intentarlo).

Parecerá que me lo saqué de la manga, pero la programación no es más que un método; un procedimiento que sigue cierto orden para llegar a un resultado. En este caso, el resultado es desarrollar un programa.

Sí, a veces la verdad es más sencilla de lo que parece, pero tiene sentido. ¿De qué otra manera algo puede ser usado por una terna de cosas muy diferentes entre sí?

Programar es el acto de crear un programa, aunque suene muy redundante. Podemos programar en diferentes lenguajes, paradigmas y tener un fin estético, práctico o demostrativo. Ahí yace la belleza de todo este lío.

La estamos clasificando a la par de otras actividades, como la pintura o la escritura. Puedes pintar una pared de forma funcional o puedes hacer un mural al estilo de Alfaro Siqueiros. También puedes escribir un texto científico, una crítica o un poemario. Al final de cuentas, tenemos libre albedrío.

La programación es algo dinámico, puede producir una gama impresionante de resultados, desde imprimir en pantalla un saludo hasta crear una obra de arte. Por cosas como esta, es que me fascina programar y no planeo dejar de hacerlo en el futuro.

¿Tú qué opinas? Sé valiente y deja tu comentario acerca del tema. Cuestiones como estas mantienen a la mente despierta y al corazón latiendo.