JPL just did something with one of the Voyager probes this week that anybody could do. If they were awesome.
Voyager 1, NASA’s farthest and fastest spacecraft, is the only human-made object in interstellar space, the environment between the stars. The spacecraft, which has been flying for 40 years, relies on small devices called thrusters to orient itself so it can communicate with Earth. These thrusters fire in tiny pulses, or “puffs,” lasting mere milliseconds, to subtly rotate the spacecraft so that its antenna points at our planet. Now, the Voyager team is able to use a set of four backup thrusters, dormant since 1980.
My wife (who isn’t with JPL, but I think that it and her lab hang out sometimes) was remarkably impressed with this bit.
“The Voyager flight team dug up decades-old data and examined the software that was coded in an outdated assembler language, to make sure we could safely test the thrusters,” said [Chris] Jones, chief engineer at JPL.
In attempting to explain the sheer badassery implied by this sort of thing — in terms of computer science, of course — the phrases ‘decipher the inscription,’ ‘locate the lost map,’ and ‘get past the pool full of crocodiles’ were used. Since she’s a space roboticist and I’m an English major, I’m going to take her word on it. I feel that this is sensible, yes?
Moe Lane
Given the state of technology in 1980, that sounds reasonable.
Having worked on military computers not too far removed from that era, this doesn’t surprise me. They were simple enough and the code small enough that a single person could understand how the whole system operated by reading the machine code. I mean, it was more than likely machine coded by hand, so naturally it can be human read too. Plus, milspec stuff is meticulously documented, so the hardest part was probably digging up the manual for whatever milspec proc they used in that thing. Doing what they just did was SOP, more or less. It just sounds fantastic now because low level computer programming is almost completely automated now.
–
That said, it’s still pretty cool. Testing out an old piece of iron floating in space millions of miles away can’t not be cool.
Outdated assembler language? It’d be more like “decipher the eldritch moving symbols”, “draw the appropriate magical circle”, “successfully recite the incantation without summoning the Space Kraken”.
Or maybe that’s because I have always hated writing in assembly.
As an English major who works in IT, Assembly is kind of like going back to the very first human language, and then moving up a couple of generations as primitive humans put some work into making actually functional for small talk and conversation. If you want to work with Biblical histories, that would be before the fallout from that big tower in Babel.
All of the computer languages used today are essentially massively evolved versions of Assembly. They’re evolved in ways that make them easy to use, because Assembly is just this side of Hexadecimal machine code. Knowing Assembly is a good way to understand just what the heck is happening in your computer when you tell it in C# to print “Hello, world!” on the monitor. But knowing C# isn’t going to help you understand Assembly, at all.
And it tends to be very unforgiving of coding errors.