martes, 13 de febrero de 2018

Ada Lovelace y el primer código

Bill Gates, Steve Jobs y Ada Lovelace entran a un bar...

Gran parte de nuestro mundo actual está moldeado siguiendo el trabajo que guiaron Steve Jobs y Bill Gates. A estas alturas tendríamos que incluir Google, Facebook y muchas otras cosas, pero para mucha gente, estos dos individuos construyeron el mundo moderno en sus cocheras. 


No tenemos que irnos mucho más atrás. Seguro recuerdas en alguna de las veinte películas de Steve Jobs cómo le grita a Bill Gates por haberle pirateado su interfaz gráfica. Esa fue la gran innovación de Macintosh o Windows: de pronto, las computadoras eran accesibles para casi todos y no solo para quienes pudieran programar. 

(Cuando tuvimos la primera computadora en casa, una IMB, iniciaba MS-DOS y había que darle unos rápidos comandos para que abriera Windows. Los juegos los teníamos en disquettes de 3 1/2 que mi papá me confesó que compraba pirateados del Metro de la Ciudad de México y se iniciaban desde MS-DOS, accediendo a la unidad en C:)


El vecino rico

Bueno, lo que Bill Gates ha dicho un par de ocasiones es que


que lo pude haber escrito pero se ve mejor así. Y es verdad, Xerox tenía todo listo y simplemente no supo aprovecharlo. Hubo un momento en que los más brillantes programadores trabajaban para Xerox y hoy en día básicamente los recordamos por la fotocopiadora. 


Pero en realidad no vamos a hablar de ellos. Hay dos personas que tienden a pelearse la paternidad de la computadora: Alan Turing y Charles Babbage. Nos falta alguien más: Ada Lovelace, quien a veces llaman la primera programadora. ¿Cómo es toda esta combinación posible? (¿Y qué pasa con los inventos creados siglos antes?)

Charles Babbage (1791 - 1871) sería el primero en la lista. Babbage ingenió una máquina teórica que podría hacer los cálculos que hacían las computadoras de la época, es decir, las personas dedicadas a hacer con lápiz y papel todas las cuentas necesarias para construir las tablas de logaritmos o funciones trigonométricas. La primera máquina de Babbage se llamaba Máquina Diferencial (difference engine, en inglés) y aproximaba el valor de funciones calculando diferencias finitas de un polinomio que las aproximaba, de ahí su nombre. 

Babbage no terminó la máquina y, durante su construcción, ideó una máquina mucho más general: la Máquina Analítica (analytical engine, en inglés). Esto es de lo que hablamos cuando hablamos de una computadora de Babbage: 


No se parece mucho a lo que entendemos por computadora pero su arquitectura básica es la misma que una máquina moderna: tenía memoria, tenía una manera de pasar instrucciones, aceptaba ciclos y condicionales. 

Augusta Ada King, condesa de Lovelace

Un bonito artículo cuenta que Lord Byron, padre de Ada, fue un héroe para los griegos (greeks). En cambio, Ada es una heroína para los geeks (geeks). Tuvo muchísimos nombres: nació Ada Byron, como su padre, luego Ada King, como su esposo William, y finalmente Ada Lovelace, cuando William pasó de vizconde de Ockham a conde de Lovelace. 



Ada Lovelace es frecuentemente llamada la primera programadora, título que seguramente sería mucho mayor si no hubiera muerto a la edad de 36, víctima de cáncer de útero. 

La familia Byron era frecuente en la corte y podía rodearse de los grandes pensadores y científicos de la época como Mary Somerville. El propio Augustos De Morgan (sí, el de las leyes de De Morgan) fue su tutor con un pequeño detalle: le comunicó a su padre que Ada no solo se conformaba con aprender las lecciones, que preguntaba para ir más allá y él no estaba de acuerdo pues, como hombre de su época, creía que el cerebro de las mujeres no estaba diseñado para el alto razonamiento. No duró mucho más como tutor privado. 

En un evento de alta sociedad, Ada conoció a Charles Babbage (entonces 18 y 44 años) y tuvieron una relación intelectual muy provechosa. Muchos años más tarde, Ada le escribió una carta a Babbage pidiéndole trabajar juntos. El trabajo de Ada consistió en traducir un trabajo de Luigi Federico Menabrea, Nociones sobre la máquina analítica de Charles Babbage. Si el nombre no te suena es porque las notas de Ada, publicadas simplemente como Notas, son una obra mucho más notable (y mucho más larga). 

Ada hizo muchísimas observaciones muy importantes. Sobre todo: era claro que veía en la máquina de Babbage un potencial que él mismo no veía. En las notas, Ada incluía la tabla que ahora llamamos el primer algoritmo de computadora en la Nota G, para calcular números de Bernoulli: 


Para muchas personas, es un pequeño estirón llamar a Ada Lovelace la primera programadora, estrictamente, su programa arriba nunca fue realmente programado, pues la máquina analítica no terminó de construirse. El propio Babbage escribió un par de programas similares, aunque muchísimo más sencillos (y confirmados por revisión de manuscritos, ciertamente no son mundialmente conocidos). Una enorme diferencia es cómo Ada imaginaba que la máquina analítica podía "pensar", podría "crear" cualquier cosa que nosotros mismos supiéramos hacer: obviamente matemáticas, pero también música, por ejemplo. En cambio, Babbage la veía como una súper calculadora.  

Llegamos a una conclusión que debía ser clara desde antes: todos los "primeros", "padres", "madres" de las ciencias, teorías, inventos o independencias son simplificaciones. Los usamos para dar reconocimiento especial pero la historia detrás es muchísimo muy rica y vale la pena conocerla. En el caso particular de Ada Lovelace, es innegable que el trabajo y aportación de las mujeres a la ciencia y matemáticas es con frecuencia ignorado o atribuido erróneamente, que es un eufemismo bastante grande. El legado de Lovelace es importantísimo y su historia es inspiración para muchas niñas jóvenes que quieren estudiar computación; su trabajo es de mucho valor y es necesario reconocerlo. 




No hay comentarios.:

Publicar un comentario