La odisea de la Voyager 1, la sonda espacial lanzada por la NASA en 1977, ha tomado un giro inesperado: el pasado mes de noviembre, comenzó a enviar datos sin sentido por culpa de una pequeña porción de memoria dañada en el FDS (uno de sus ordenadores de a bordo). Esto ha provocado que la NASA se embarque en una misión crítica: reparar a distancia la sonda Voyager 1, una reliquia de la era espacial, usando lenguajes de programación con más de seis décadas de antigüedad.
El famoso Laboratorio de Propulsión a Chorro (JPL) de la NASA ha emprendido la tarea monumental de reparar la Voyager 1, un artefacto que, pese a estar diseñado para una misión de sólo cinco años, sigue retransmitiendo desde el espacio interestelar 47 años después de su lanzamiento.
Este esfuerzo constituye una carrera contra el tiempo, contra la distancia inmensa que separa a la sonda de la Tierra (y que, por lo tanto, hace que nuestra comunicación con ella sea horriblemente lenta)... y contra las limitaciones tecnológicas inherentes a su diseño original.
No, Rust y TypeScript no serán de ayuda en esto
Y es que la Voyager 1 opera con tecnología que hoy puede parecernos arcaica: procesadores con apenas 8 KB de memoria y software escrito en Fortran 77 y en lenguaje ensamblador, lenguajes de programación surgidos en la década de 1950. Este detalle no es trivial, ya que la solución al problema actual de la sonda requiere enviarle una serie de comandos que le indiquen que ignore la parte dañada de su memoria, un desafío colosal considerando la 'obsolescencia' de estos lenguajes.
Pedro León, autor de 'Viajes Interestelares: Historia de las sondas Voyager' explica en Xataka que:
"La mayor dificultad para la situación actual es saber exactamente qué direcciones de memoria no se podrán usar, reprogramar todos los comandos que usa el ordenador FDS y lograr que ni los comandos, ni los datos científicos, ni la telemetría usen esa zona de memoria dañada".
La NASA ha tenido que preocuparse en estos años de contar con programadores capaces de trabajar con estos lenguajes antiguos. Cuando, hace nueve años, el último ingeniero original de la misión estaba a las puertas de la jubilación, la NASA tuvo que empezar a buscar debajo de las piedras alguien capaz de sustituirle.
Suzanne Dodd, directora del programa Voyager, explicaba entonces en una entrevista concedida a la revista Popular Mechanics:
"Fortran y ensamblador eran lo último en tecnología en 1975, pero de eso hace ya 40 años [nota: casi 50 ahora]. Aunque algunas personas pueden programar un lenguaje ensamblador y entienden la complejidad de la nave espacial, la mayoría de los jóvenes no pueden o realmente no quieren".
Y es que programar para la Voyager no sólo implica comprender los lenguajes en sí, sino también las peculiaridades de la arquitectura del hardware de la Voyager, algo que se complica aún más por la falta de documentación completa, accesible y actualizada: muchos de los manuales originales de la sonda se encontraban dispersos, guardados en garajes o sótanos sin digitalizar, haciendo que ahora el proceso de comprensión y reparación sea aún más complicado.
Dos cosas hemos aprendido de esto: la importancia de la preservación documental y el valor incalculable de seguir contando con programadores de lenguajes supuestamente 'obsoletos' (lo cual suele pasar por contar con programadores veteranos).
La esperanza asoma por el horizonte (hasta cuando no hay ningún horizonte a la vista)
A pesar de los desafíos, hay optimismo. La comunidad científica y los aficionados al espacio esperan con ansiedad nuevas noticias al respecto desde el JPL. Si los esfuerzos actuales tienen éxito, la Voyager 1 podría continuar su misión, enviando datos valiosos desde el borde mismo de nuestro Sistema Solar... y más allá.
Imagen | Marcos Merino mediante IA
En Genbeta | La estructura IF-THEN-ELSE: su origen y su papel en la creación de la inteligencia artificial