Charles Babbage fue matemático, filósofo, ingeniero, inventor. Nació en 1791 y se tituló de matemático en el Trinity College de Cambridge en 1814, sin dar examen de grado, tal era su brillantez. (El Trinity College tiene 32 Premios Nóbel entre sus ex-alumnos y es el alma mater de Isaac Newton, Niels Bohr, James Clerk Maxwell, Ludwig Wittgenstein y Bertrand Russell, entre muchos otros).
Hizo múltiples aportes en numerosos campos, por ejemplo, en Economía es responsable del “Principio de Babbage”, también conocido como “Principio de Balance de Procesos”, y en el ámbito industrial fue un pionero de la Investigación de Operaciones. También incursionó en criptografía, teología y en la estandarización de las constantes físicas (inexistente en esa época). Babbage influyó a Marx, a John Stuart Mill y a muchos otros.
Este genio inglés perteneció, entre otras, a la Analytical Society (que impulsaba la notación de Leibniz en el cálculo diferencial, y que es la actual, versus la de Newton, que se utilizaba en esos momentos); al Ghost Club, que se ocupaba de lo paranormal, y al Extractors Club, cuyo objetivo era sacar del manicomio a cualquiera de sus miembros que fuera ingresado a uno (es que Babbage era un loquillo).
En 1820, ingresa a la Astronomical Society. Revisando las tablas de planetas y estrellas, que utilizaban los marinos para ubicarse en alta mar, descubrió muchos errores en los cálculos, los cuales podían costar vidas. Se preguntó entonces, si acaso una máquina no podría realizar esos mismos cálculos de forma automática.
Comenzó a investigar. En primer lugar, revisó todas las máquinas de cálculo que pudo tener a su alcance. Babbage quería una máquina que:
No encontró ninguna máquina existente que cumpliera con esos criterios. Así que decidió construirla él.
Tenemos que detenernos a pensar que aunque esos conceptos parecen modernos y “obvios” para nosotros, a comienzos del siglo XIX, simplemente era impensable: era algo que no existía, sencillamente, y que pocas personas creían posible, mucho menos entendían su verdadera utilidad.
La Maquina Diferencial operada por Doron Swade, autor de su primer manual de usuario. Science Museum, Londres. |
Su primer intento, se llamó la Máquina Diferencial. ¿Qué hacía? Calculaba soluciones de polinomios, usando el método de las diferencias divididas (de ahí su nombre). Babbage logró convencer al gobierno inglés de financiar el proyecto, argumentando principalmente que cualquier error en los cálculos de navegación podría hacer que un barco de guerra llegara tarde a la batalla o se estrellara contra las rocas. Así que el Estado británico le consiguió a uno de los mejores mecánicos de la época y le facilitó 1.700 libras en 1823, que equivalen a 137.600 libras esterlinas o 144 millones de pesos de nuestros días, para que la hiciera realidad.
Sin embargo, esta primera máquina no se construyó en su momento, sencillamente porque Babbage era tan perfeccionista, que nunca pudo entregar un plano final, pues siempre estaba cambiando pequeños detalles aquí y allá. Para el momento en que al gobierno se le agotó la paciencia y abandonó el proyecto, siete años después ¡se había gastado la friolera de 17 mil libras esterlinas! (1.440 millones de pesos actuales) y sólo iba en la mitad. Por desgracia, el proyecto no sólo se paralizó, sino que lo que se había logrado construir, fue desmantelado y vendido. Lo único que quedó, fue la maqueta del proyecto, que llamaba The beautiful fragment (el bello fragmento).
Más tarde en su vida, Babbage se abocó a terminar los planos y lo logró, aunque sin llegar a construir ninguna pieza. El resultado fue la "Máquina diferencial N°2", de 1847, que constaría de 8 mil piezas, bastante menos que las 25 mil piezas que tenía el primer diseño. Esta máquina, afortunadamente, se construyó por primera vez casi dos siglos después, en 1991 (con la misma tecnología accesible a Babbage), por parte del Museo de la Ciencia en Londres, tanto para celebrar el bicentenario de su nacimiento, como para probar que su máquina efectivamente era posible de construir. Y lo fue, arrojando resultados correctos de hasta 31 dígitos. ¡Buena, Babbage!.
Nueve años después, se construyó la impresora que Babbage había diseñado para acompañar a esta máquina, pues no quería humanos transcribiendo los resultados, que pudiesen provocar algún error. La construcción fue posible gracias al financiamiento del magnate Nathan Myhrvold, ex director de tecnología de Microsoft y conocido "trol de patentes" (patent troll), quien pidió la construcción de una segunda máquina para poner en su casa, a cambio de financiar el proyecto; aunque por el momento, este segundo aparato se exhibe en el Computer History Museum de California, EE.UU.
¿Quieres verla en acción? Aquí está:
Pero volviendo a la historia: mientras construía su Máquina Diferencial, Babbage tuvo una mejor idea… y esa idea fue: “¿Por qué mejor no hago una máquina programable?”. (Sí, una computadora hecha de piezas de hierro y sin electricidad).
A esta máquina programable, Babbage le llamó la Máquina Analítica y su primer boceto es de 1834. Se trataba de una máquina que constaba de distintos módulos, cada uno cumpliendo una función. La memoria estaba pensada para guardar mil números de 40 dígitos cada uno, esto es, un equivalente a 16 kilobytes aproximadamente, lo que recién fue superado en la década de 1960 (ENIAC, la primera computadora totalmente electrónica, sólo tenia 800 bits de memoria.).
Poseía también una unidad aritmético-lógica, que ejecutaba las cuatro operaciones ariméticas, así como comparaciones y raíces cuadradas. Tal como los procesadores actuales, esta unidad tenía sus procedimientos propios, los cuales también podían ser modificados.
Aparte de arrojar resultados mediante tarjetas perforadas, también tenía diseñada una impresora, como forma de arrojar los resultados de forma más amistosa. Poseía algunas características extraordinarias para la época. Por ejemplo, podía generar impresiones de resultados, pero también moldes para impresión (de forma de poder replicar los textos masivamente) e incorporaba un plotter para dibujar gráficos.
La Máquina Analítica estaba pensada para ser programable. Y esto se realizaría a través de tarjetas perforadas, tal como lo harían los primeros computadores electromecánicos más de 100 años después. Esta idea, la tomó de los telares automáticos de Jacquard. Para ello, tenía un módulo lector, una interfaz de usuario. En ese sentido, la intuición de Babbage es asombrosa: fue el primero a quién se le ocurrió que debía existir un intérprete dentro de la máquina, que convirtiera la solicitud de los usuarios (en lenguaje de “alto nivel”, entendible para el ser humano), a órdenes básicas que sólo podían ser entendidas por la máquina (o sea, en “código de máquina”).
IZQ.: Tarjetas perforadas de programación. Karoly Lorentey. DER.: Modelo de la Máquina Analítica, en el Museo de la Ciencia en Londres. Bruno Barral. |
El lenguaje de programación de la máquina, permite loops y ciclos condicionales (tipo “si… entonces… hasta”) y tiene un cierto parecido a los lenguajes ensambladores modernos. Existían tres tipos de tarjetas perforadas, cada una con su lector específico: una para las operaciones aritméticas, otra para los números y otra para cargar o grabar información.
Además, como las tarjetas pueden trabajar en forma reversible (o sea ingresarse al revés sin dañar el sistema), eso quiere decir que era “Turing completo”. O sea, su sistema de programación es universalmente replicable. Y puede replicar a cualquier otra computadora, con el suficiente tiempo y memoria. Una maravilla. Si hasta incluye una campanita que suena, cuando la máquina se atasca.
Y como dato interesante, Ada Lovelace (hija de Lord Byron), que se carteaba con Babbage, desarrolló un algoritmo para calcular los números de Bernoulli en la Máquina Analítica, convirtiéndose así en la primera programadora de la historia. Y además, tuvo la visión de pensar que los números ingresados en esta máquina podían, quizás en un futuro, representar imágenes y música.
Porque era carísimo el proyecto y muy, muy complejo de ejecutar. Se trata de un aparato de 40 mil piezas de precisión, del porte de una locomotora. Babbage, además, ya se había desprestigiado al haber fallado en su implementación de la Máquina Diferencial. A pesar de todo, Babbage no se desanimó, y hacia el final de sus días, logró construir un segmento simplificado de la Máquina Analítica allá por 1871.
|
Dibujo esquemático de Babbage para la máquina analítica. Cada círculo representa una torre de engranajes. Universidad de Cambridge. |
Con la muerte de Babbage, el proyecto fue abandonado, pues no había nadie interesado en desarrollarlo, que además tuviese los fondos para hacerlo. Sin embargo, en esa época no contaban con el poder del crowdfunding…
En Octubre de 2010, John Graham-Cumming, lanzó Plan 28, que es un proyecto con el objetivo de construir la Máquina Analítica de Babbage, y que está financiado vía crowdfunding. (¿Quieres aportar? ¡Hazlo aquí!) El proyecto es patrocinado por la Computer Conservation Society y apoyado por el Museo de la Ciencia de Londres.
¡Llame ya! Diseño de camiseta promocional, del proyecto Plan 28. plan28.org |
Plan 28 posee tres etapas esenciales:
El primer paso es esencial, porque Babbage dejó una gran cantidad de notas y papeles, pues estaba continuamente mejorando su diseño. Por lo tanto, se debe decidir qué dejar y qué no. El segundo paso también es necesario, por un asunto práctico, pues las partes metálicas y de madera se desgastan y no soportarían una rutina exigente de “prueba-y-error”.
Este proyecto es de muy largo plazo, y el mismo Graham-Cumming estima que se demorará como mínimo hasta diez años más… es por ello, que optó por no utilizar Kickstarter para su recaudación de fondos, pues al ser un sistema de “todo-o-nada”, no podía arriesgar interrumpir el proyecto por algo así. Además, mediante el sistema de caridad que escogió, debe pagar menos impuestos sobre lo recaudado.
Actualmente, ya tienen todos los papeles de Babbage escaneados y desde el 2014, han avanzado enormemente en el entendimiento del lenguaje de programación del “procesador” de la Máquina Analítica, así como de la notación utilizada por Babbage. Asimismo, se está desarrollando un lenguaje de programación llamado FORTRAC15, que permite expresar el lenguaje expresado a través de las notaciones manuscritas de Babbage y software para este mismo lenguaje. Asimismo, para comprender mejor el funcionamiento de la Máquina Analítica, han tenido que construir una Máquina Diferencial, de la que llevan un 15% impreso en 3D. Incluso publicaron el 2013, el primer manual de usuario de la Máquina Diferencial.
De todas maneras, si quieren seguir el avance del proyecto, lo pueden hacer aqui, o via twitter. Tambien pueden ver la charla TEDx, que dio John Graham-Cumming, donde explica más en detalle la máquina y el proyecto.
Una de las razones que esgrime Graham-Cumming para la construcción de esta máquina, es la respuesta de profundas interrogantes históricas. ¿Habría sido posible una era de la computación, en plena Inglaterra victoriana? (¡steampunk auténtico!) ¿Era realmente posible construir computadores, con tecnología del siglo XIX? Aparte de esas fascinantes potencialidades, el objetivo principal de este proyecto es, en el fondo, demostrar “que es posible estar 100 años adelantado a su propio tiempo”. Y de esta forma, servir de inspiración a todos quienes, de una u otra manera, se atreven a aportar de forma única y maravillosa a la humanidad.