2.2. Herramientas de programación creativa
2.2.1. Introducción
En la última década se han multiplicado las herramientas destinadas a facilitar el uso de la programación en proyectos de artes visuales y diseño, en parte impulsadas por la filosofía del software de código abierto y también por la necesidad que han experimentado un grupo creciente de artistas y diseñadores de ir más allá de las posibilidades que les ofrecía el software comercial.
Si bien algunas tienen una larga historia, como el software de música electrónica Max creado por Miller S. Puckette en los años 80 y desarrollado en diferentes versiones (entre las cuales las más conocidas son Max/MSP y Pure Data), la mayoría se crean a partir del año 2000 en el contexto de estudios de diseño, escuelas y centros de investigación o agrupaciones de artistas y programadores. El objetivo común de estos entornos de programación es facilitar la creación de un tipo de proyectos que escapan a la finalidad de la mayoría de los programas de software comercial, centrados en generar un producto final, ya sea una imagen, una animación o un vídeo.
La generación de imágenes y sonidos en tiempo real a partir de datos obtenidos en internet o de otras formas de interacción requería un nuevo tipo de software, programas como Processing, openFrameworks, Max/MSP, Pure Data, VVVV y Cinder son algunos ejemplos.
La diversidad de herramientas y entornos de programación responde tanto a la historia del desarrollo de cada programa como a las necesidades que busca cubrir, y al hecho de que hay diferentes maneras de abordar la programación creativa. Casey Reas, cocreador de Processing, afirma que cada lenguaje de programación debe verse como un material diferente, de forma similar a como un carpintero trabaja con diferentes tipos de madera en función de las propiedades específicas de las mismas (Reas y McWilliams, 2010, pág. 17). En este sentido, los diferentes entornos de programación resultan más o menos útiles en función de los conocimientos previos del usuario (algunos resultan más complejos que otros) y también de lo que se pretenda lograr con ellos, puesto que unos, por ejemplo, son más adecuados para generar composiciones sonoras en tiempo real mientras que otros sirven para crear animaciones de objetos geométricos.
Así como hay muchos lenguajes humanos diferentes, hay muchos lenguajes de programación diferentes. De la misma manera en que los diferentes conceptos pueden ser transmitidos a través de diversos lenguajes humanos, los diferentes lenguajes de programación permiten a los programadores escribir diferentes estructuras de software. […] Puede ser útil pensar en cada lenguaje de programación como un material con prestaciones y limitaciones únicas. Diferentes idiomas son apropiados dependiendo del contexto.
G. Stocker, C. Schöpf (ed.) (2003). Ars Electronica. CODE – The Language of our Time (pág. 175). Osterfildern-Ruit: Hatje Cantz.
A continuación revisaremos los principales entornos de programación, herramientas y librerías que se emplean actualmente en la creación de instalaciones interactivas, animaciones generativas, performances audiovisuales y muchos otros proyectos creativos.