Poética del Software

“El software moderno es un desastre”.

Esta frase es muy interesante por varios motivos, pero siendo el desarrollo del mismo una actividad relativamente jóven, es una gran oportunidad para detenernos y preguntarnos ¿por qué es así?

Y no es justo sólo preguntarse el por qué de aquella frase, también deberíamos pensar y analizar el cómo llegamos aquí y por qué, si la tecnología y el hardware avanza cada día, el software queda relegado.

El software como poesía

He aquí el título, “Poética del Software”. Poética viene del griego ποιέω que significa hacer, fabricar, producir, crear y otros sinónimos de la acción humana del hacer. Hacemos software y por eso el software es poesía1.

Pero el software no es sólo poesía por el hacer, también es poesía por sus características. Los antiguos griegos decían que la poesía era bella y la Belleza tenía dos características primarias, συμμετρία y αρμονια. Simetría y armonía. La primera era todo lo bello a la vista, como la poesía escrita; mientras que la última se dedicaba a todo lo bello para el oído, como la poesía recitada.

El software es poesía, también, porque la poesía ha sido una herramienta importante para el ser humano en su búsqueda por conocer las cuestiones que nos afligen. Parménides de Elea, por ejemplo, uno de los filósofos presocráticos más importantes de la antigua Grecia y uno de los que promovió la pregunta sobre “el ser”, hacía filosofía a través de sus poemas. Y nosotros, hoy en día, buscamos solucionar problemas con el software. Buscamos solucionar problemas de la vida cotidiana, problemas en la comunicación y hasta intentamos buscar soluciones a problemas que podrían venir en nuestro futuro.

Poesía y arte

A su vez, la poesía es arte, por lo tanto, el software es arte. Arte viene del latín ars y a su vez del griego τέχνη, su significado en ambos idiomas es también el de técnica. Para los filósofos antiguos el “arte” era todo lo producido por el ser humano y en el Renacimiento también se le llamaba arte a la destreza que un ser humano debía tener para poder realizar una actividad. El desarrollo de software requiere de una destreza y es también una técnica, eso hace que el software sea arte y programadores, los artistas.

El problema de la Belleza

Entonces, si el software es poética y arte, ¿es posible que exista software “feo”?

Naturalmente a lo largo de nuestra historia hemos establecido filtros con respecto al arte y la poesía. Sin dudas podemos hablar de subjetividad respecto a la Estética o Belleza de un arte u otro, pero tenemos ciertos cánones definidos en la objetividad que nos permiten clasificarlas. Si vemos al software como una forma de arte, podríamos entonces pensar en cuáles son sus cánones de Belleza, y así poder clasificarlo.

De hecho, lo mencionado anteriormente como características primarias de Belleza2, hoy es considerado un reduccionismo de este concepto.

En la modernidad nos podemos enfocar en lo subjetivo de este concepto. Kant definía a lo bello como la representación que produce un placer inmediato. Posteriormente, en el idealismo romántico, la Belleza era lo grandioso y sobreacogedor. Entonces, según desde la escuela filosófica a la que se lo mire, la Belleza puede tener muchos significados. De hecho, pueden ser cosas como lo grato, lo deseado, lo deseable o lo armónico.

Volviendo al software, podemos ver características bien marcadas de lo que constituye a la Belleza. En el caso de la experiencia de usuario, está claro que software difícil de comprender o de utilizar es considerado software “feo”. Nosotros, los programadores, tenemos esta visión incorrecta de que el código debe ser legible, que debe ser como “leer un libro”, y de hecho se han escrito muchos libros al respecto. Pero, en realidad, el problema yace en las concesiones que damos con tal de conseguir esta legibilidad en el código.

Conclusión

La Belleza es subjetiva. Y está claro que, creer que hay respuestas objetivas para estos tipos de problemas es un error filosófico. Pero de los errores se aprende.

Tomando en cuenta las características que constituyen a un software “feo” según lo demostrado previamente, deberíamos poner el foco en el rendimiento (o “performance”) del software. Las carreras especializadas, como Ingeniería en Sistemas, tienen ramas específicas para analizar estos problemas.

Si nos enfocamos en el performance del software, podríamos llegar a un punto en donde utilizaríamos todos los beneficios que el hardware tiene en la actualidad, ya que esta debe ser una relación recíproca de progreso y desarrollo.