Redimir, Es Decir Intervenir Mejor Introduciendo Recursión
Redimir, Es Decir Intervenir Mejor Introduciendo Recursión
Redimir, Es Decir Intervenir Mejor Introduciendo Recursión
“El reino será de material plástico, es un hecho. Y no que el mundo haya de convertirse en una
pesadilla orwelliana o huxleyana; será mucho peor, será un mundo delicioso, a la medida de sus
habitantes […] Es decir un mundo satisfactorio para gentes razonables. ¿Y quedará en él alguien, uno
solo, que no sea razonable?”
Hacia el negantropoceno
Dar cuenta del mundo digital, de la manera en que las redes informáticas constituyen hoy el mundo y
generan las condiciones de posibilidad de las subjetividades, es uno de los principales desafíos
conceptuales del presente.
El Antropoceno necesita ser superado, construir otro medio técnico, u otra relación con él, que
favorezca la des-automatización y el pensamiento reflexivo. Seguir el camino propuesto por Tiqqun y
Sadin es una tentación común pero poco promisoria, es buscar un afuera del mundo algorítmico, lo
“incalculable” como aquello que pudiera escapar al procesamiento de datos, a la repetición, y
funcionar como impulso a la amenazada creatividad humana. Creo que esa búsqueda sería infructuosa
pero es sobre todo innecesaria.
Gilbert Simondon proponía en la década del cincuenta construir una cultura técnica, terminar con la
exclusión espuria que la “alta cultura” hace del fenómeno técnico. Muestra luego Stiegler, siguiendo
sus huellas, que es la técnica la que da lugar a lo humano, que es el “qué” lo que da lugar al “quién”, y
no viceversa. Sabemos también desde hace tiempo que la mente humana es tal en tanto dispone de
andamiajes externos, se constituye con y gracias a ellos. Y sin embargo los humanos siguen alienados
en relación con la técnica, la inédita aceleración producida por las tecnologías digitales está
transformando drásticamente las capacidades cognitivas, extendiéndolas pero también volviendo
obsoletas ciertas habilidades. Es comprensible pero peligroso el sentimiento de miedo o alarma frente a
las crecientes capacidades de los sistemas cognitivos no humanos y la consecuente toma de posición
antagónica o nostálgica. Una pregunta que suele aparecer en los debates sobre esta encrucijada es ¿qué
queda de lo “propiamente humano”? No necesariamente tendría que existir tal cosa, pero de cualquier
manera lo que claramente esta amenazado es el imaginario de lo humano y la parte de la cultura que, no
siempre explícitamente, se construyó a partir de concepciones idealistas de la libertad, la creatividad o
la singularidad del pensamiento humano.
Ex machina
Poder determinar si una máquina puede pensar implica saber qué es pensar, y tener algún acuerdo al
respecto, algo que está lejos de existir. La posibilidad de determinar si una máquina muestra
inteligencia ha dado lugar a muchas discusiones, y se han propuesto muchos desafíos que indicarían
inteligencia por parte de un programa. Muchos han sido superados, por ejemplo jugar al ajedrez, o más
recientemente jugar al go, algo que las computadoras hacen ya mejor que cualquier humano. El
pensamiento llamado creativo también es ejercido cada vez más por diversos programas, la posibilidad
de descubrir nuevas verdades científicas o incluso encontrar propiedades inesperadas en el mundo es
realizada, cada vez más, por entidades cognitivas no humanas, que tienen una participación creciente
en los procesos de investigación.
Quizá el artículo más conocido de Turing sea el que escribió en 1950, Computer Machinery and
Intelligence, en el cual propone el famoso Imitation Game, hoy llamado también Test de Turing. En
este juego, un humano y una computadora se comunican verbalmente con otro humano, quien tiene que
ser capaz de distinguir a partir del diálogo cuál es el humano y cuál el programa. Si el programa
consigue engañar al humano, es decir, si el interrogador puede identificar correctamente quién es la
computadora solo aproximadamente la mitad de las veces, entonces el programa habrá pasado el test.
Turing nunca asume que esto probaría que la computadora piensa, o que es inteligente, es solo un test
que indicaría cierta habilidad particular. Seguir sosteniendo una posición antagónica con los programas
implicaría, en honor a la equidad, someterse a un test inverso. No nos referimos al llamado “test de
Turing inverso” que es, sintomáticamente, solo demostrar que un humano no es un robot (el
CAPTCHA). Un test inverso real sería uno en el que un humano intente engañar a un programa (¿a
cuál?) haciéndose pasar por otro. No duraría ni un milisegundo.
1 William Rapaport. Implementation is semantic interpretation. Technical Report SUNY at Buffalo. 1997
Para formalizar los procedimientos efectivos, Turing definió una máquina abstracta, formal, a partir de
un conjunto finito de estados, un alfabeto finito de símbolos de entrada y un conjunto de reglas
elementales. Dichas reglas están pensadas para ser efectuadas por un humano con lápiz y papel, y
tienen en cuenta las limitaciones humanas, tanto perceptivas como de memoria. La simpleza de las
reglas y la consecuente eliminación de toda ambigüedad, fueron esenciales para convencer a los
investigadores de la época que esos procedimientos eran efectivos o mecánicos.
El teorema que demuestra Turing no solo requiere que las máquinas definidas sean efectivas, sino
además que todo lo que es efectivo sea codificable en alguna máquina tal. Es más enigmático por qué
eso también fue aceptado entonces. Turing mostró con varios ejemplos el poder de definición que
tenían sus máquinas, pero quizá hubo uno en particular que fue el más convincente: el de la máquina
universal. Esta máquina, precursora teórica de las computadoras, es una máquina particular con su
propio conjunto de reglas cuyo comportamiento consiste en tomar una codificación de una máquina
cualquiera como dato de entrada (un programa codificado), y comportarse como ella. La creación de
esta máquina que condensa en sí misma el comportamiento de cualquier otra permite resumir en un
solo objeto las propiedades de todo el sistema formal. Una máquina que, en algún sentido, es todas las
máquinas.
Recursión y reflexividad
“The evaluator, which determines the meaning of expressions in a programming language, is just
another program.”2
La idea de recursión como forma de definición de funciones aparece en varios autores, sobre todo a
principios del siglo XX en los grupos que trabajaban en fundamentos y que trataban de resolver los
2 . Harold Abelson y Gerald Sussman. Structure and Interpretation of Computer Programs. MIT Press 1996, p. 333
desafíos propuestos por Hilbert, aunque es Dedekind, cuarenta años antes, quien primero populariza la
idea de recursividad asociada indisolublemente a la noción de número natural. Gödel define las
funciones recursivas generales, Church presenta el cálculo lambda y define la recursión como una
operación de alto orden al interior del cálculo. Fue una noción práctica y que buscaba también
formalizar el cálculo mecánico, pero que requería pasos más complejos que las máquinas de Turing y
cierta circularidad en la definición que la volvía menos convincente. La equivalencia demostrada
inicialmente por Turing entre el cálculo recursivo y sus máquinas permite identificar hoy la idea de lo
recursivo con lo efectivo.
La recursión es una forma de definir funciones en los números naturales (que puede ser extendida a
otros dominios), donde se define un valor inicial, usualmente para 0 y el valor de la función para un
natural cualquiera en términos del valor de la misma función aplicada al número anterior, es decir se
define f(n+1) en términos de f(n). Esto se hace para cualquier n, por lo cual se da ipso facto un método
de cálculo: ir reduciendo la función a la anterior hasta llegar a 0.
Una función recursiva de dos variables puede verse como una familia infinita de funciones recursivas
de una variable, donde el índice de cada función es su nombre (su codificación) y a la vez un
argumento de la misma. La universalidad de las máquinas de Turing se reproduce también al interior de
cualquier sistema de funciones recursivas, lo que permite ver que cualquier valor es también,
secretamente o no, un programa, el código de una función. Es esta una forma de reflexividad que se
expresa de diversas maneras en ciertos lenguajes de programación, y que muestra algo que tiende a
olvidarse cuando se piensa a las máquinas de Turing o a las computadoras como metáfora: la infinita
riqueza del mundo algorítmico, y la posibilidad de construcción de abstracciones, meta-abstracciones,
formas reflexivas, reflexiones acerca de las reflexiones, y así sin cota alguna. Que la mayoría de los
programas no tengan esas propiedades y sean relativamente simples, es solo un estado del arte de la aún
joven ciencia de la computación.
El aprendizaje maquínico, que aprende a partir de los datos, lo hace de una manera muy cruda. Nos
resulta intrigante ya que aprende de manera similar a ciertos procesos humanos. Sin embargo, el
aprendizaje maquínico de una máquina universal es mucho más elemental y perfecto, solo viendo el
código “aprende” el comportamiento, como el personaje Trinity en Matrix, cuando en un segundo
“aprende” a pilotear un helicóptero.
Quizá la más significativa y temprana materialización de la idea de recursión la constituyó el ya
sexagenario lenguaje LISP, diseñado por John McCarthy. Los programas y los datos en este lenguaje
tienen el mismo formato. McCarthy había definido una función Eval que daba la semántica del
lenguaje de programación. Cuando un alumno suyo le trajo la función hecha en el mismo LISP, el
bueno de John pensó que había un error, que era solo una función conceptual. Y sí, lo era, pero también
podía codificarse en el mismo lenguaje. Oh.
De acuerdo a Henk Barendregt, hay reflexión cuando se tiene un dominio de objetos que tienen un
significado activo, es decir producen determinadas acciones en un contexto dado, y se dispone de dos
propiedades para dichos objetos: codificación e interacción. Para cada objeto del dominio hay al menos
otro objeto que será considerado como su código, su representación. La acción del primer objeto puede
ser reconstruida exactamente a partir de una interacción específica con el objeto que lo codifica, en un
proceso que se llamará de decodificación. El proceso de reflexión se dará a partir de la interacción
entre un objeto con su propio código, lo cual permite, entre otras acciones, que un objeto modifique su
propio código produciendo un nuevo objeto con un comportamiento modificado. No hay nada en esto
que no pueda construirse con las elementales reglas enunciadas por Turing.
Efectividad y programabilidad.
“Hence, computing science is --and will always be-- concerned with the interplay between
mechanized and human symbol manipulation, usually referred to as "computing" and
"programming" respectively.”3
Frecuentemente se comete una falacia de composición con la cuestión de los algoritmos, asumiendo
algunas propiedades de ciertos especímenes particulares, usualmente programas que establecen
correlaciones a partir del aprendizaje asistido. Por otro lado, la misma idea de algoritmo o de
procedimiento efectivo originada en los trabajos de Turing suele ser comprendida en un sentido muy
limitado. El énfasis puesto en la noción de efectividad que era el problema concreto a resolver dejó en
un segundo plano la dimensión de la progamabilidad que igualmente aparece en su trabajo fundacional.
Consideraremos aquí dos características diferentes de los sistemas computacionales cuya intersección
constituye el mundo computacional: la efectividad y la programabilidad. Ninguno de estos conceptos es
extensional, pese a lo cual suelen aplicarse como si lo fueran.
Ya vimos el concepto de efectividad. La programabilidad es una noción relacional que se establece
entre código y comportamiento y que es condición necesaria para que existan sistemas
computacionales (aunque no siempre reconocida como tal).
Si bien ambos son constitutivos de la noción de sistema computacional -aunque no haya un acuerdo
general acerca de la ontología de los programas - la imagen que cada uno postula de algoritmo o de
programa computacional es de signo diferente y promueve concepciones sesgadas. La efectividad
3 . Edsger Dijkstra. On the cruelty of really teaching computing science. EWD Archive, 1988.
propone una visión mecanicista y determinista que remarca la brecha entre los programas y los
humanos, considerados estos últimos en su dimensión creativa.
La programabilidad suele desplazarse rápidamente hacia cierto intencionalismo que puede resumirse en
lo que Turing llamó la objeción de Lady Lovelace: una computadora solo puede hacer lo que está
programada ‘‘The Analytical Engine has no pretensions to originate anything. It can do whatever we
know how to order it to perform’’ Es decir, habría finalmente solo intencionalidad humana inscripta en
los programas. Ambas propiedades en conjunto habilitan una nueva forma insidiosa de dualismo que ha
incluso dado lugar a conocidas trivializacioness de la noción de computación, como las de Putnam o
Searle.
Estos dos ejes sobre los que se articula la noción de computación son claves para analizar la historia de
la relación entre lenguajes y mecanismos. En el siglo XIX existieron varios intentos de definir
lenguajes que permitieran describir y diseñar mecanismos (e.g. Babbage y Reuleaux), Turing definió un
proto-lenguaje para describir reglas que era ejecutado por un computador humano, pero también la
posibilidad de codificar comportamientos en otros posibles lenguajes (la máquina universal), lo que dio
lugar a que los lenguajes fueran parte constitutiva de los mecanismos. Los lenguajes de programación
evolucionaron construyendo capas de abstracción a través de interpretaciones y traducciones, lo que
reconfigura los tipos de relaciones y de interjuegos con programadores. Hoy el lenguaje natural mismo
cobra agencia en los motores de búsqueda que animan Internet. La semiosis ilimitada propuesta por
Eco o Pierce tiene entonces un correlato material.
Anti-Protágoras
El hombre no es la medida de todas las cosas.
Puede leerse esta frase en diversas claves: feminista, anti-especista, posthumana, orientada a objetos,
cognitivista, cibernética, o muchas otras. La postulamos aquí como principio estratégico de re-
construcción de las condiciones para el conocimiento como emancipación, para la superación de la
intersubjetividad como fundamento social y el inicio de un pensamiento interobjetivo, que de cuenta de
las cada vez más ricas mediaciones técnicas como constitutivas de mundos, también humanamente
habitables.