A comienzos del siglo XIX, mucho antes de la electrónica y de los
primeros ordenadores, científicos, ingenieros, navegantes y astrónomos
dependían de extensas tablas numéricas para realizar sus cálculos. Estas
tablas eran indispensables, pero su elaboración se basaba en un trabajo
humano lento y propenso a errores.
El matemático británico Charles
Babbage imaginó entonces una solución
radical: construir una máquina capaz de calcular automáticamente los
valores de una tabla y, con el tiempo, imprimirlos sin intervención
humana.
Esta máquina, conocida como máquina diferencial (Difference
Engine), no llegó a completarse en su primera versión durante la vida
de Babbage. Sin embargo, su principio era perfectamente realizable. Más
de un siglo después, una reconstrucción basada en los planos de Babbage
demostraría que su diseño podía funcionar realmente.
La máquina diferencial constituye así una etapa esencial entre las
antiguas máquinas mecánicas de cálculo y la idea mucho más ambiciosa del
ordenador programable.
Cuando los cálculos se hacían a mano
A comienzos del siglo XIX, numerosos ámbitos científicos y técnicos
utilizaban tablas matemáticas.
Permitían consultar rápidamente logaritmos, funciones trigonométricas o
valores útiles para la astronomía y la navegación.
Estas tablas evitaban tener que repetir cálculos largos y complejos cada
vez que se necesitaban.
Pero su producción planteaba un problema.
Los valores debían ser calculados por personas y después copiados,
compuestos e impresos. Cada etapa podía introducir un error.
Una simple cifra incorrecta en una tabla destinada a la navegación podía
tener consecuencias importantes.
En aquella época, la palabra inglesa computer todavía no designaba
necesariamente una máquina en el sentido moderno. Podía referirse a una
persona encargada de realizar cálculos.
Babbage se enfrentó a estas tablas y a sus imperfecciones. Poco a poco
se impuso una idea: si los cálculos son repetitivos y siguen reglas
precisas, ¿por qué no confiárselos a una máquina?
Charles Babbage y la idea de automatizar las tablas
Charles Babbage fue matemático, inventor y miembro de la Royal Society.
A comienzos de la década de 1820 trabajó en la elaboración de tablas
matemáticas con el astrónomo John Herschel.
La cantidad de errores que encontraron lo convenció del interés de la
automatización.
En 1822, Babbage presentó ante la Royal Astronomical Society un proyecto
de máquina destinada a calcular tablas mediante un método matemático
denominado método de las diferencias finitas.
La idea llamó la atención del gobierno británico.
A partir de 1823, el Estado aceptó financiar el desarrollo de una
máquina mucho más ambiciosa: la que posteriormente se conocería como
Difference Engine No. 1.
El proyecto era extraordinario para su época.
No se trataba simplemente de una pequeña calculadora de escritorio.
Babbage imaginaba una gran máquina mecánica compuesta por miles de
piezas de precisión.
¿Por qué se llama «máquina diferencial»?
El nombre procede del método matemático utilizado para simplificar los
cálculos: las diferencias finitas.
El principio es especialmente ingenioso porque permite calcular
determinadas funciones polinómicas utilizando esencialmente sumas.
Consideremos una sucesión muy sencilla:
1, 4, 9, 16, 25
Son los cuadrados de los números enteros:
(1^2, 2^2, 3^2, 4^2, 5^2)
Calculemos ahora la diferencia entre cada valor:
3, 5, 7, 9
Y después las diferencias entre esas diferencias:
2, 2, 2
La segunda diferencia es constante.
Esto significa que podemos generar los valores siguientes repitiendo
únicamente sumas.
Partiendo de 25, de la diferencia 9 y de la segunda diferencia 2:
la siguiente primera diferencia pasa a ser 9 + 2 = 11;
el siguiente valor pasa a ser 25 + 11 = 36.
Después:
11 + 2 = 13;
36 + 13 = 49.
Obtenemos correctamente (6^2 = 36) y después (7^2 = 49).
Para funciones más complejas se necesitan más niveles de diferencias,
pero el principio sigue siendo similar.
¿Por qué era este método ideal para una máquina mecánica?
Las multiplicaciones y divisiones son relativamente difíciles de
realizar con un mecanismo del siglo XIX.
Las sumas son mucho más sencillas.
Gracias a las diferencias finitas, Babbage podía transformar el cálculo
de muchos polinomios en una sucesión sistemática de sumas.
La máquina no necesitaba «comprender» la fórmula matemática.
Solo debía:
conservar varios valores;
sumarlos en un orden determinado;
propagar las llevadas;
repetir el proceso.
Es precisamente el tipo de tarea que puede realizar un mecanismo de
engranajes.
Esta separación entre un problema matemático complejo y una sucesión de
operaciones elementales anticipa una idea fundamental de la informática:
descomponer un cálculo en instrucciones sencillas que una máquina
pueda ejecutar mecánicamente.
Columnas de ruedas dentadas para representar los números
La máquina diferencial es completamente mecánica.
Los números se representan mediante ruedas decimales.
Cada rueda puede adoptar diez posiciones correspondientes a las cifras
del 0 al 9.
Varias ruedas superpuestas permiten representar un número de varias
cifras.
Cuando una rueda pasa de 9 a 0, debe transmitirse una llevada a la
posición siguiente, exactamente igual que cuando realizamos una suma
sobre papel.
Pero en una gran máquina con numerosas cifras, la gestión de las
llevadas se convierte en un importante desafío mecánico.
Babbage diseñó mecanismos capaces de propagarlas de forma coordinada.
La máquina debía ser precisa: una pequeña holgura mecánica repetida en
cientos o miles de componentes podía terminar produciendo un resultado
incorrecto o bloqueando el mecanismo.
Una ambición que va más allá del simple cálculo
Babbage no quería limitarse a automatizar las operaciones matemáticas.
También pretendía eliminar los errores que podían aparecer después
del cálculo.
¿De qué serviría una máquina que produjera resultados exactos si un
operador los copiaba después de forma incorrecta?
Por ello, su proyecto también preveía mecanizar la producción del
resultado.
La máquina debía poder preparar los valores para su impresión, incluso
mediante placas o mecanismos que evitaran una nueva transcripción
manual.
El objetivo era extraordinario: automatizar una cadena que iba desde el
cálculo hasta la publicación de la tabla.
Desde una perspectiva moderna, esto ya se parece a un auténtico
tratamiento automatizado de datos: una entrada, una serie de operaciones
y una salida producida sin volver a introducir manualmente la
información.
Difference Engine No. 1: un proyecto gigantesco
La primera gran máquina imaginada por Babbage se conoce hoy como
Difference Engine No. 1.
El gobierno británico financió el proyecto y Babbage trabajó, entre
otros, con el ingeniero y fabricante de herramientas Joseph Clement.
La construcción exigía una precisión mecánica excepcional para la época.
Una parte del mecanismo llegó a construirse.
Pero el proyecto se volvió progresivamente más caro, más lento y más
difícil de gestionar.
Babbage también modificaba determinados aspectos del diseño a medida que
evolucionaban sus ideas.
Las relaciones con Clement se deterioraron y la construcción terminó
deteniéndose.
En 1842, después de haber gastado una suma considerable, el gobierno
británico puso fin definitivamente a la financiación.
Por tanto, la primera máquina diferencial completa nunca llegó a existir
durante la vida de Babbage.
¿Por qué fracasó el proyecto?
Sería tentador concluir que la máquina era simplemente imposible de
construir con la tecnología de la época.
La historia es más matizada.
Se combinaron varios factores:
el coste muy elevado del proyecto;
la necesidad de fabricar numerosas piezas con gran precisión;
dificultades de organización y gestión;
desacuerdos entre Babbage y Joseph Clement;
cambios continuos en el diseño;
el creciente interés de Babbage por una máquina todavía más
ambiciosa.
El problema no era, por tanto, exclusivamente técnico.
Babbage era un inventor excepcional, pero dirigir un enorme proyecto
industrial financiado por el Estado también exigía estabilidad de
diseño, organización y control de costes, aspectos especialmente
difíciles de conseguir.
Mientras la máquina diferencial seguía sin terminarse, Babbage empezó a
pensar en una máquina mucho más general.
La Difference Engine era especializada.
Sabía realizar un tipo determinado de tratamiento matemático: calcular
tablas mediante el método de las diferencias.
Babbage imaginó entonces una máquina capaz de ejecutar diferentes
secuencias de operaciones según las instrucciones que se le
proporcionaran.
Este nuevo proyecto se convirtió en la máquina analítica
(Analytical Engine).
La diferencia es fundamental.
La máquina diferencial automatiza un cálculo concreto.
La máquina analítica aspiraba a ser programable.
Babbage previó, entre otros elementos, una unidad de cálculo, una
memoria, mecanismos de control y el uso de tarjetas
perforadas para proporcionar
instrucciones.
Fue en este contexto cuando Ada
Lovelace estudió la máquina analítica y
escribió sus célebres notas, entre ellas un algoritmo destinado al
cálculo de los números de Bernoulli.
Por tanto, la máquina diferencial es importante no solo por lo que debía
realizar, sino también porque condujo a Babbage hacia un diseño mucho
más cercano al ordenador moderno.
Difference Engine No. 2: un diseño mejorado
Babbage no abandonó por completo la idea de la máquina diferencial.
Entre 1847 y 1849 diseñó una segunda versión, conocida hoy como
Difference Engine No. 2.
Esta nueva máquina se benefició de la experiencia adquirida durante sus
trabajos sobre la máquina analítica.
El diseño era más elegante y requería muchas menos piezas que la primera
versión, aunque seguía siendo capaz de realizar cálculos de gran
envergadura.
Pero tampoco se construyó durante su vida.
Los planos permanecieron sobre el papel durante más de un siglo.
Precisamente esta segunda versión permitiría, mucho tiempo después,
responder a una pregunta histórica esencial:
¿Podían funcionar realmente los planos de Babbage?
El Science Museum acepta el desafío
A partir de la década de 1980, el Science Museum de Londres
emprendió un estudio detallado de los planos de Difference Engine No. 2.
Bajo la dirección de Doron Swade, un equipo decidió construir la máquina
respetando en la medida de lo posible los dibujos de Babbage.
El proyecto tenía una enorme importancia histórica.
Si la máquina funcionaba, demostraría que los principios de Babbage eran
mecánicamente viables.
Si fracasaba debido a errores fundamentales en los planos, la
interpretación histórica sería muy diferente.
En 1991, con motivo del bicentenario del nacimiento de Babbage, el
Science Museum terminó la sección de cálculo de Difference Engine
No. 2.
La máquina funcionó.
Calculó correctamente valores mediante el método de las diferencias.
¿Y la impresora?
Babbage también había diseñado un mecanismo de salida capaz de imprimir
automáticamente los resultados.
Por ello, el Science Museum continuó el proyecto.
En 2000 se terminó la impresora correspondiente a la máquina.
No solo podía imprimir los resultados sobre papel, sino también producir
placas destinadas a la impresión.
Este detalle confirma el alcance de la ambición original de Babbage.
No pretendía únicamente acelerar un cálculo.
Quería eliminar los errores humanos a lo largo de toda la cadena, desde
el cálculo hasta la reproducción del resultado.
¿Demuestra la reconstrucción que la máquina podría haberse construido en el siglo XIX?
La reconstrucción moderna se presenta a menudo como la prueba de que
Babbage «tenía razón».
En términos conceptuales es cierto en gran medida, pero conviene
introducir un matiz.
El Science Museum construyó la máquina utilizando medios modernos de
fabricación, aunque el objetivo era respetar tolerancias que la
industria victoriana habría podido alcanzar.
El éxito demuestra sobre todo que el diseño mecánico de Babbage era
coherente y funcional.
No demuestra que construir una máquina completa hubiera sido sencillo,
económico o práctico en las condiciones exactas del proyecto original.
Fabricar miles de piezas precisas, ensamblarlas y mantenerlas suponía un
enorme desafío industrial.
Por tanto, el ingenio del diseño y las dificultades prácticas del
proyecto pueden ser ciertos al mismo tiempo.
Una máquina decimal, no binaria
Los ordenadores modernos suelen representar la información mediante bits
y trabajan con el sistema binario.
La máquina de Babbage funcionaba de otra manera.
Era decimal.
Sus ruedas representaban directamente las cifras del 0 al 9.
Esto recuerda que el sistema binario no es una condición obligatoria
para construir una máquina de cálculo.
La elección de la representación depende de la tecnología utilizada.
Para un dispositivo mecánico formado por ruedas dentadas, representar
diez posiciones decimales podía resultar natural.
Los ordenadores electrónicos adoptarían masivamente el sistema binario
porque dos estados físicos distintos son especialmente fáciles de
representar mediante circuitos electrónicos.
¿Era la máquina diferencial un ordenador?
La respuesta depende de lo que entendamos por ordenador.
La máquina diferencial era capaz de:
representar números;
realizar operaciones automáticamente;
conservar valores intermedios;
encadenar cálculos;
producir resultados.
Pero no era una máquina generalista programable como un ordenador
moderno.
Su mecanismo estaba diseñado para aplicar un método concreto.
Por tanto, es más preciso describirla como una máquina automática de
cálculo especializada.
La máquina analítica que Babbage imaginaría posteriormente daría un paso
conceptual adicional al introducir la idea de una máquina capaz de
seguir diferentes programas.
De las tablas numéricas a los pipelines automatizados
La máquina diferencial ilustra una idea que sigue siendo
sorprendentemente moderna: cuando un proceso repetitivo contiene varias
etapas susceptibles de producir errores, podemos intentar automatizar
toda la cadena.
El problema de Babbage no se limitaba al cálculo.
Abarcaba:
la producción de los valores;
su transcripción;
su formato;
su impresión.
Cada intervención humana adicional generaba una nueva posibilidad de
error.
Su objetivo era, por tanto, hacer pasar el resultado de una etapa a la
siguiente sin volver a introducirlo manualmente.
Esta misma lógica se encuentra hoy en scripts, cadenas de procesamiento
de datos y pipelines de software: automatizar no solo una operación,
sino el recorrido completo de un dato a través de varias
transformaciones.
Las tecnologías han cambiado. El problema fundamental sigue resultando
familiar.
¿Por qué es importante la máquina diferencial?
La máquina diferencial no revolucionó inmediatamente la industria.
Su primera versión ni siquiera llegó a completarse.
Su importancia es principalmente histórica y conceptual.
Demuestra que, a comienzos del siglo XIX, ya era posible imaginar:
un cálculo complejo descompuesto en operaciones elementales;
la ejecución automática de esas operaciones;
una memoria mecánica para conservar valores;
la propagación automática de las llevadas;
la producción mecánica de los resultados;
una cadena diseñada para reducir los errores humanos.
También representa una etapa decisiva en la evolución intelectual de
Charles Babbage.
Al intentar automatizar la producción de tablas, acabó preguntándose si
una máquina podía diseñarse no para un único cálculo, sino para
muchos cálculos diferentes.
Esa pregunta condujo directamente al proyecto de la máquina analítica.
Lo esencial
La máquina diferencial de Charles Babbage nació de un problema muy
concreto: las tablas matemáticas del siglo XIX eran indispensables, pero
su cálculo e impresión manuales producían errores.
Babbage propuso mecanizar el proceso.
Su idea se apoyaba en varios principios esenciales:
utilizar el método de las diferencias finitas para sustituir
cálculos complejos por sumas;
representar los números mediante ruedas mecánicas;
automatizar la secuencia de operaciones;
conservar los valores intermedios;
automatizar también la salida para evitar errores de transcripción.
La primera gran máquina nunca llegó a terminarse.
Sin embargo, los planos posteriores de Difference Engine No. 2
permitieron al Science Museum construir una máquina funcional más de un
siglo después de la muerte de Babbage.
Este éxito demuestra que su proyecto no era una simple fantasía
imposible.
Y, sobre todo, las dificultades y posibilidades descubiertas durante
esta aventura empujaron a Babbage hacia una idea todavía más ambiciosa:
la máquina analítica, uno de los grandes antepasados conceptuales
del ordenador programable.
Preguntas frecuentes
¿Para qué debía servir la máquina diferencial?
Debía calcular automáticamente tablas matemáticas, en particular valores
de funciones que podían obtenerse mediante el método de las diferencias
finitas, y contribuir a producir esos resultados sin los errores
asociados al cálculo y la transcripción manuales.
¿Por qué utilizaba el método de las diferencias finitas?
Este método permite calcular los valores de determinados polinomios
utilizando esencialmente sumas. Como las sumas son más fáciles de
realizar mecánicamente que las multiplicaciones o divisiones, resultaba
especialmente adecuado para la máquina.
¿Terminó Charles Babbage su máquina diferencial?
No. Difference Engine No. 1 nunca llegó a completarse. Posteriormente,
Babbage diseñó una segunda versión mejorada, Difference Engine No. 2,
que también permaneció sobre el papel durante su vida.
¿Se llegó a construir finalmente una máquina diferencial de Babbage?
Sí. El Science Museum de Londres construyó Difference Engine No. 2 a
partir de los planos de Babbage. La sección de cálculo se terminó en
1991 y su mecanismo de impresión en 2000. La máquina funciona.
¿Era programable la máquina diferencial?
No en el sentido de un ordenador moderno de propósito general. Estaba
diseñada para automatizar un tipo concreto de cálculo. El siguiente
proyecto de Babbage, la máquina analítica, introdujo un diseño mucho más
general y programable.
¿Qué relación existe entre la máquina diferencial y Ada Lovelace?
Ada Lovelace está asociada principalmente a la máquina analítica, el
proyecto más ambicioso que Babbage desarrolló después de sus trabajos
sobre la máquina diferencial. Sus notas sobre esa máquina incluyen,
entre otras cosas, un método para calcular los números de Bernoulli.
Descubre la vida de Ada Lovelace, su colaboración con [Charles Babbage](/es/recursos/charles-babbage-padre-informatica), su algoritmo para los números de Bernoulli y el legado de quien suele considerarse la primera programadora.
Descubre cómo las tarjetas perforadas controlaron telares, inspiraron a Charles Babbage y sirvieron para programar y procesar datos durante más de un siglo.