Ada Lovelace, ¿la primera programadora?

Did Ada Lovelace write the first computer program, or did Charles Babbage? Historians disagree. Lovelace translated Luigi Menabrea's notes on Babbage's Analytical Engine and added an algorithm for Bernoulli numbers in 1843, but Babbage had written dozens of programs years earlier. Her real legacy may be seeing what computers could become.
Chapters
Ada Lovelace ha pasado a la historia por ser la primera programadora. No solo la primera mujer programadora, sino la primera persona que realizó un programa para un computador. Pero, ¿es 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. Esta nació el 10 de diciembre de 1815 y falleció el 27 de noviembre de 1852 a la edad de 36 años. Y aun 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 también que hablaba y escribía con fluidez varios idiomas como el francés y el italiano.
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á estemos abriendo demasiado la definición, aportando confusión, pues aparatos tan rudimentarios como un ábaco entrarían en ella.
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 sólo 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 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 que 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, en relación a esto, 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ó su efectividad a través de una larguísima ejecución a mano en una partida de ajedrez contra Alec Glenney, en la que Alan iba haciendo los cálculos a mano y simulaba ser una máquina, leyendo cada instrucción y realizando un cálculo, modificando los datos y dando el resultado manual del posible movimiento a realizar. Por lo que, si consideramos un programa como la expresión de los pasos a realizar por una máquina, con la organización de los datos, dónde se guardan, cómo se toman y la forma de sus 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 e interesante 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 simposio del segundo centenario del nacimiento de 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, Alan Bromley agrega en un artículo su opinión al respecto: No sólo 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. Y como segundo problema, asumir que estos programas son lo suficientemente complejos para ser considerados programas propiamente y no solamente trozos de código o ejemplos.
La afirmación de Alan 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.
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 Gooly 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. Y 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 sus otras aportaciones. Según el historiador Swaith, 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.
Y, para acabar, en palabras de Lovelace: 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.
More from Manuel

Historia de los Lenguajes de Programación: años 1960-1969 #basic #apl #simula #lisp #logo

¿Compilador o intérprete? La historia de una rivalidad que comenzó en los años 40








