Ada Lovelace, ¿La Primera programadora?

Ada Lovelace, ¿la primera programadora?

Hay muchas figuras en la historia de la programación que bien merecen un espacio propio para hablar de ellas, y en mayor o menor medida nos encargaremos de ello, pero toda historia debe tener un comienzo y se han vertido ríos de tinta sobre la cuestión de la primera persona programadora. En este programa vamos a tratar sobre la figura de Ada Lovelace, a la cual se le ha atribuido este primer puesto, aunque no sin generar debate, ¿será cierto este hecho?

La conocida Ada Lovelace se trataba de Ada King, condesa de Lovelace cuyo nombre original fue Augusta Ada Byron o Lady Byron. Nació el 10 de diciembre de 1815 y falleció el 27 de noviembre de 1852 a la edad de 36 años, y aún habiendo vivido una corta vida, gracias a sus dones con las matemáticas fue conocida como la Hechicera de los Números. Es importante destacar que también hablaba y escribía con fluidez varios idiomas como el francés y el italiano, más adelante veremos por qué esto nos interesa.

Pero antes de comenzar a relatar la Historia conviene aclarar los términos que están aquí en disputa.

¿Qué es un computador o una computadora?

Un computador según el diccionario de la Real Academia de la Lengua Española es algo o alguien que computa o calcula. Un computador electrónico sin embargo se define como:

Máquina electrónica que, mediante determinados programas, permite almacenar y tratar información, y resolver problemas de diversa índole.

Esta definición es bastante sesgada y deja fuera muchos de los primeros computadores, que eran mecánicos y no electrónicos. Entre ellos la Máquina Analítica de Charles Babbage. No obstante, si indicamos que la máquina pueda ser electrónica o no, quizás estemos abriendo demasiado la definición, aportando confusión pues aparatos tan rudimentarios como un ábaco entraría en ella.

Máquina Analítica de Charles Babbage
Máquina Analítica de Charles Babbage

La segunda parte de la definición nos ayuda a matizar un poco al tocar el tratamiento y almacenaje de la información mediante programas. Aunque los primeros computadores no disponían de programas propiamente dichos. Estos ejecutaban instrucciones introducidas a través de tarjetas perforadas o mediante una consola. El programa solo existía en papel y se traducía a la forma de operar de la máquina para obtener los resultados manualmente.

Si quisiéramos afirmar que Charles Babbage es el padre de la computación, la definición debería indicar que la computadora como una máquina electrónica o no, capaz de procesar una serie de pasos en los que ejecuta un programa consistente en operaciones con números introducidos y/o almacenados para modificar estos números almacenados y/o generar otros números como resultado.

Esta es una definición mucho más compleja y por lo tanto seguro tiene algún error que necesita ser subsanado, pero lo más importante en este punto es tener una definición aproximada y más o menos exacta que nos ayude a comprender tanto qué es hoy en día una computadora como qué fue en los inicios una computadora.

Pero hay otra pregunta a la que debemos responder antes de continuar

¿Qué es un programa?

De nuevo recurrimos al diccionario de la Real Academia de la Lengua Española para leer en sus acepciones 11 y 12 las posibles respuestas, comenzando con la 11 que es la más simple, un programa es:

Cada una de las operaciones que, en un orden determinado, ejecutan ciertas máquinas.
Esta definición es muy amplia e incluye no solo a los programas almacenados en disco, memoria, o cualquier medio de almacenamiento, sino también a la interpretación de tener el programa en papel e ir escribiendo línea a línea cada orden en una consola.

De hecho, Alan Turing publicó sus intentos de hacer un programa para las máquinas de la época en la década de 1950. Su implementación no fue posible pero demostró la efectividad del programa a través de una larguísima ejecución a mano en una partida de ajedrez contra Alick Glennie mientras Alan Turing iba calculando los datos a mano haciendo de máquina, leyendo cada instrucción y realizando el cálculo, modificando los datos y dando el resultado del posible movimiento a realizar.

Por lo que, si consideramos un programa como la expresión de los pasos a realizar por la máquina con la organización de los datos, dónde se guardan, cómo se toman y la forma de las operaciones, podemos considerar cualquier definición de estas características como un programa y a quien lo especifica como un programador.

Entonces

¿Dónde surge la controversia?

Ahora sí podemos empezar con la Historia, y para ello nos vamos a remontar a 1840. Charles Babbage viajó a Italia, a la Universidad de Turín, para explicar el concepto de la Máquina Analítica ante una audiencia entre cuyos miembros había un ingeniero militar y matemático llamado Luigi Menabrea. Menabrea decidió publicar sus notas de la conferencia en francés. ¿Os acordáis que antes señalamos la importancia de que Ada Lovelace supiera idiomas? Adivinad a quién se le encargó la traducción de este texto del francés al inglés. Exactamente. Esta además de traducir el texto, agregó un apéndice mucho más extenso consistente en 7 notas etiquetadas de la A a la G. En estas notas es donde se encuentra el algoritmo para el cálculo de los números de Bernoulli. Este algoritmo, según el historiador Michael R. Williams puede ser usado en una máquina de cálculo mecánico, por lo que parece un programa válido para una computadora. Si aceptamos este algoritmo como un programa válido, debemos considerar a su creadora la primera programadora, ¿no?

No es tan sencillo, el historiador Doron Swade, un prominente experto mundial en el trabajo de Charles Babbage, intenta zanjar la polémica con nuevos datos mostrados en el simposium del segundo centenario del nacimiento de Lovelace:

Diagram for calculating Bernoulli numbers, 1842
Diagram for calculating Bernoulli numbers, 1842, Autores: Luigi Menabrea and Ada Lovelace

Confirmo que la evidencia del manuscrito muestra claramente que Babbage escribió «programas» para su máquina analítica en 1836 y 1837. Es decir, entre 6 y 7 años antes de la publicación del artículo de Lovelace en 1843. Hay alrededor de 24 “programas” con características idénticas a las del famoso primer programa de Lovelace.

Por su parte, Allan G. Bromley agregaba en un artículo su opinión al respecto:

No solo no hay evidencia de que Ada alguna vez haya preparado un programa para la Máquina Analítica, sino que su correspondencia con Babbage muestra que no tenía el conocimiento para hacerlo.

Con estas afirmaciones tenemos dos problemas, porque mientras el algoritmo de Lovelace es fácil de encontrar en Internet, estos 24 programas de Babbage no lo son, entonces como primer problema debemos tener fe en lo que nos cuentan los historiadores y asumir lo que ellos dicen: “estos programas son mucho más simples y propensos a errores” y como segundo problema asumir que estos programas son lo suficientemente complejos para ser considerados programas y no solamente trozos de código o ejemplos.

La afirmación de Allan Bromley se basa en una suposición. Es decir, teniendo en cuenta que la Máquina Analítica no ha sido creada y su creador es la única persona con toda la información sobre qué es y cómo funciona, los programas pensados para esta máquina deben ser concebidos por su creador y es difícil que cualquier otra persona pueda hacerlo. Pero, teniendo presente la visión de Lovelace más allá de la visión de Babbage de emplear la Máquina Analítica no solo para números, también cabe pensar que el conocimiento abstracto de qué se podía crear en esa máquina pertenecía más a Ada que a Babbage.

La controversia va incluso más allá porque el biógrafo y escritor Benjamin Woolley dijo que la polémica es complicada por el hecho de que la gente ha intentado hacer de la aportación de Lovelace una cuestión de género. Así que te toca decidir a ti, basándonos en lo expuesto superficialmente ¿crees que Ada fue realmente la primera programadora? Déjanos un comentario con tu opinión.

Aportaciones de Ada Lovelace

Antes de terminar, queremos dejar claro que sea o no la primera programadora, Lovelace hizo grandes aportaciones y su figura merece ser recordada también por otras aportaciones, según Swade:

La obsesión con el «programa» de Bernoulli por parte de aquellos que desean promover la figura de Lovelace ha oscurecido mucho la contribución mucho más significativa que hizo, una comprensión original de dónde reside el poder y el potencial de las computadoras.

Nadie sabe el potencial que encierra este poderoso sistema; algún día podrá llegar a ejecutar música, componer sinfonías y complejos diseños gráficos.

Ada Lovelace
Ada Lovelace

Luigi Menabrea
https://www.christies.com/en/lot/lot-4443500

Fuentes:

Yanes J. Diciembre 9 2015, Ada Lovelace: Original and Visionary, but No Programmer, Openmind BBVA

DeMichele T. Octubre 13, 2015, Was Ada Lovelace the First Computer Programer? Who Wrote the First Computer Program?, Fact / Myth

Compujedrez 2016, Programas de ajedrez. Primeros pasos: Turing y su programa de papel

The Editors of Encyclopædia Britannica, Last Updated: Oct 8, 2023, Ada Lovelace British mathematician, britannica.com

Gregersen E. Ada Lovelace: The First Computer Programmer, britannica.com

wikipedia, Ada Lovelace

Granta U. Can Ada Lovelace be regarded as the first programmer?

MENABREA L. F. from the Bibliothèque Universelle de Genève, October, 1842, No. 82, Invented by Charles Babbage, fourmilab.ch

Deja un comentario