1.3. El software como cultura
Como hemos visto, el software forma parte de nuestra sociedad y está profundamente integrado en las infraestructuras y los sistemas que determinan nuestras acciones cotidianas. Además, el software tiene una dimensión cultural que conecta con el deseo de crear y manipular el mundo por medio de la palabra o de un conjunto de códigos (presente en las religiones y rituales de todas las culturas), así como mediante los experimentos con instrucciones y permutaciones en arte y literatura.
La relación entre software y literatura es posible dado que el código fuente es en realidad texto, un texto que no solo puede leerse sino que se ejecuta, hace algo en el contexto en que ha sido creado mediante un lenguaje específico. Pero el código fuente no es simplemente abstracto o matemático, ha sido creado por personas en un determinado momento histórico y partiendo de ideas que responden a un contexto social y cultural específico. En el libro 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 diez autores llevan a cabo de forma colectiva un estudio de una única línea de código en lenguaje BASIC que se popularizó en la guía de usuario del Commodore 64 en 1982, dado que permitía generar un patrón geométrico siempre diferente (figura 1). Esta simple instrucción da lugar a una exploración del contexto social y cultural en el que se emplearon los primeros ordenadores personales, la manera en que se escribían los lenguajes de programación y el desarrollo de estrategias para crear composiciones algorítmicas. Los autores concluyen:
Finalmente, el código es un recurso cultural, no trivial y solo instrumental, sino vinculado al cambio social, a los proyectos estéticos y a la relación de las personas con los ordenadores. En lugar de ser descartado como críptico e irrelevante para cuestiones humanas como el arte y la experiencia del usuario, el código debería ser valorado como texto con significado tanto para la máquina como para los humanos, algo que se produce y opera dentro de la cultura.
[…] Cuando se escriben programas de ordenador, se escriben utilizando palabras clave que contienen restos de la historia de las tecnologías textuales y otras tecnologías, y se escriben en lenguajes de programación con pasados complejos y dimensiones culturales, que se encuentran en la intersección de docenas de otras prácticas sociales y materiales.
N. Montfort, P. Baudoin, P. J. Bell et al. (2013). 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 (pág. 8 y 262). Cambridge / Londres: The MIT Press.
PENDIENTE FIGURA 1
Como artefacto cultural, el software merece ser estudiado y criticado de la misma manera que se analizan otros productos culturales. El investigador en medios de comunicación Matthew Fuller afirma que es posible emplear las herramientas de las diversas teorías culturales, sociales, políticas y estéticas para estudiar el software y superar así «el mito de su neutralidad como herramienta» (Fuller, 2003, pág. 16). Habitualmente, vemos los ordenadores como máquinas de una sola pieza, impenetrables y misteriosas, con las que interactuamos a través de las herramientas que nos facilita el software y que, según hemos asumido, son exactamente las que necesitamos. No obstante, como indica Fuller, cada programa determina cómo vemos, comprendemos y actuamos en el mundo, siendo a su vez un reflejo de como los creadores del software entienden que debe verse el mundo y actuar en él. Es, por tanto, adoptar una actitud crítica hacia el software y cuestionar la máquina que tenemos delante, que no es un objeto único sino un ensamblaje de circuitos electrónicos, un sistema operativo, numerosos programas, sus respectivas interfaces; y también licencias de uso, protocolos de conexión a las redes y un largo etcétera. Todos estos elementos han sido diseñados según unos criterios que han moldeado tanto las intenciones de los diseñadores y programadores como los imperativos económicos, legales y los intereses de las empresas que los comercializan. En este sentido, cada elemento del ordenador y el software que lo ejecuta pueden ser analizados y criticados (Fuller, 2003, pág. 21).
Sistemas heredados
La práctica de los sistemas heredados en la industria del software ejemplifica su complejidad. Según señala la programadora Ellen Ulman, la inversión que se hace en software es tan grande que no se puede descartar una vez queda obsoleto, así que se tiene que adaptar, retocar, actualizar. Con el tiempo, nadie sabe como funciona, pero hay que seguir usándolo. Ulman recuerda haber trabajado con un programa en lenguaje COBOL que tenía 16 años de antigüedad y en el que habían trabajado 96 programadores. Tenía errores que nadie había sabido arreglar en diez años (Ulman, 1997, pág. 116). Según el experto en computación Peter J. Bentley, debido a los sistemas heredados «[…] el código de hoy en día no funciona. Hemos alcanzado el límite de la complejidad del software y las únicas opciones que quedan son reducir la complejidad o encontrar otra manera de escribir código» (Stocker y Schöpf, 2003, pág. 34).
Matthew Fuller enumera tres tipos de software que abren la posibilidad de realizar un análisis crítico del programa y, por medio del mismo, cuestionar tanto su propio diseño como sus implicaciones en la experiencia del usuario y el contexto cultural en el que ha sido creado:
- Software crítico: es el software que hace visible su propia estructura y sus elementos de manera que revela bajo qué presupuestos ha sido creado, en ocasiones como un programa que funciona pero ha sido desprovisto de sus elementos más decorativos o narrativos. Este es el caso, por ejemplo, del proyecto SOD (1999) del dúo de artistas JODI (Joan Heemskerk y Dirk Paesmans), que consiste en una modificación del videojuego Wolfenstein 3D en el que se han sustituido los decorados y otros elementos por texturas abstractas en blanco y negro.
- Software social: el software creado a partir de una interacción o socialización más estrecha entre usuarios y programadores que da lugar a unos programas cuyas funciones teóricamente se acercan más a las necesidades reales de los primeros. El software de código abierto entra en esta categoría si bien, como advierte Fuller, «quien está «más cerca de la máquina» posee el espacio de posibilidades en el que se exploran estas relaciones [entre usuarios y programa]» (Fuller, 2003, pág. 26).
- Software especulativo: el software que explora las posibilidades potenciales de la programación pensando más allá de las categorías y los usos establecidos, es el que permitiría reinventar el software partiendo de nuevos supuestos que, idealmente, no se verían limitados por la tecnología actual, los lenguajes de programación existentes o los imperativos de la industria tecnológica dentro de un mercado capitalista.
«El software es siempre un problema no resuelto», afirma Fuller, quien apunta así a la necesidad de pensarlo como proceso en los aspectos que van más allá del propio programa. Este es el objetivo de la disciplina conocida como Software Studies, establecida entre 2006 y 2008 a partir de las aportaciones de teóricos como Marshall McLuhan, Friedrich Kittler, Lev Manovich o el propio Fuller, uno de sus principales impulsores.
Empleando perspectivas teóricas, culturales y orientadas a la práctica, los Software Studies exploran los objetos y procesos del software a partir de las aportaciones de programadores, diseñadores, ingenieros y artistas.
Integra así las disciplinas de las humanidades y la sociología con las ciencias de la computación, el arte y el diseño. Como indica Fuller en el prólogo de Software Studies. A Lexicon la disciplina se identifica como unos estudios, textos críticos y especulativos que proponen un «ejercicio de prototipado rápido de aproximaciones transversales y críticas» al software (Fuller, 2008, pág. 1). Este planteamiento responde a los continuos y acelerados cambios que se producen en la industria tecnológica y que requieren estudiar el software desde una perspectiva más ágil, que evite visiones monolíticas y reconozca sus múltiples estratos y ramificaciones.
Una rama de los estudios del software se centra concretamente en el análisis del código fuente: son los Critical Code Studies (CSS), que aplican la teoría crítica al código fuente no solo al texto sino también a la manera en que está construido y cómo refleja un determinado contexto. Según afirma uno de sus impulsores:
[…] a través de los CSS, los investigadores pueden criticar los sistemas informáticos y humanos, desde el nivel del ordenador al de la sociedad en las que estos objetos elaborados con código circulan y ejercen su influencia.
M. Marino (2006, diciembre). «Critical Code Studies». Electronic book review [en línea]. <http://www.electronicbookreview.com/thread/electropoetics/codology>
JODI, SOD (1999)
Joan Heemskerk y Dirk Paesmans (JODI) elaboran, a finales de los años 90, una serie de modificaciones de videojuegos en los que experimentan con sus posibilidades estéticas y analizan su estructura modificando el aspecto de sus elementos manteniendo la interacción. Uno de los videojuegos modificados es Wolfenstein 3D (id Software, 1992) que se convierte en una composición geométrica abstracta por la que se puede navegar, abriendo puertas y matando a los enemigos, ahora convertidos en formas geométricas.
El videojuego puede descargarse desde http://sod.jodi.org/ aunque no es compatible con los sistemas operativos más nuevos.