
Why NASA Needs a Programmer Fluent in Fortran and Assembly Language - subnaught
http://www.popularmechanics.com/space/a17991/voyager-1-voyager-2-retiring-engineer/
======
quux
There's still an active community writing tight assembly code for vintage
computers like the C64, and there was a ton of excitement around Notch's
0x10c, which was a virtual computer of the same class as Voyager's. There's
clearly a yearning among modern programmers for the days where the entire
system could be understood by one brain.

This probably isn't practical, or sane, but I wonder what would happen if Nasa
released an open source simulator for Voyager and invited the community help
implement the software fixes they need. There might some really good devs who
would do it just for the challenge.

Think of it as 0x10c with a purpose.

~~~
avar
The concept sounds cool, but what sort of fixes could the Voyager probes
possibly need? They were launched in 1977, that's almost 40 years ago. As far
as I know they're waking up every once in a while and sending telemetry back.

It would be cool to have access to the source code and an emulator, but I
really don't find it plausible that members of the general public could submit
patches to something that's been running smoothly for 40 years, and where the
risks of changes far outweigh the benefits of keeping the existing software
running as-is.

~~~
saganus
The article says that part of the need to get programmers back in the project
is to be able to get exact readings on the amount of energy that's being used
and the amount left.

It appears like they are currently working with estimates (e.g. they cite a
use of 3.2 Watts but it's actually 3.0 due to margins of error in the original
design. Now they want to know exactly how much power is consumed).

So maybe they don't need fixes in the traditional sense that something is
broken, but fixes in that they need the spacecraft to do stuff that wasn't
designed for.

Another example they cite is when they revamped the software in 1990 so they
could better automate certain functions since they were preparing for the
interstellar part of the journey and they needed certain automatic procedures
which apparently were done manually in the past.

~~~
noselasd
It seems being a fortran/assembly programmer is just a small part of whats
needed.

What they seem to need are engineers that can teach themselves quite deep
domain knowledge of the voyagers to figure out how they work, reverse engineer
the hardware and software that arn't documented. (and eventually do some
programming, mainly on old ground based code, and certainly without bricking
the probes if the flight software needs to be altered).

------
listic
PopMech makes it sound more arcane thane it might be: it's not _that_ much out
of the ordinary to know (or learn) assembly and Fortran or to have to work
with computers that have 64K RAM (some _modern_ microcontrollers have less[1])
I imagine it would be as hard as it sounds if they would require a specialist
with years of experience in their particular dialect of Fortran and some
particular assembler, expecting them to be productive right away. But it looks
to me that they just have a peculiar setup and need someone who is able and
willing to learn it - that's a situation plenty of companies have.

Now a Voyager computer itself looks like a peculiar piece of technology in
itself - is it one of a kind? If so, who made an assembler and Fortran
compiler for it? Unfortunately, the article (or any others I googled up)
doesn't go into that. Is there a description of Voyager computer publicly
available?

So far, I find it the most marvelous that a tape recorder is alive and well
after 40 years of regular usage: the computer memory of the day was not nearly
enough to hold scientific data, so it's being written on a 8-track tape
recorder, sent to Earth and then overwritten again, in a loop. Still, even
with minimial usage, I have trouble imagining how a single tape reel could
last 40 years of regular use. In space.

[1] List of common microcontrollers:
[https://en.wikipedia.org/wiki/List_of_common_microcontroller...](https://en.wikipedia.org/wiki/List_of_common_microcontrollers)

STM32 F0: [http://www.st.com/stm32f0](http://www.st.com/stm32f0)

------
Loic
I am 36, coding 3h a day in Fortran for the oil and gas industry. I must say,
even if I write a lot of Python code too, I really enjoy the way a program is
"optimized" by default, that is, if your algorithm is good, you do not need to
do crazy things to get good performance out of your hardware.

~~~
sevensor
Care to share any references on learning modern Fortran? I've tangled with
some pretty ancient code (full of Hollerith constants and tangled mazes of
GOTOs) but I get the impression there's a whole other world of Fortran out
there.

~~~
ovis
I've found Metcalfe, Reid, and Cohen[1] to be a fairly clear refresher on
Fortran. Unfortunately, the build tools I use don't support many of the nicer
features like user-defined types.

[1]
[https://books.google.ca/books/about/Modern_Fortran_Explained...](https://books.google.ca/books/about/Modern_Fortran_Explained.html?id=MmOIFEgsDLwC&redir_esc=y)

~~~
sevensor
Thanks for the reference! I've put it on my reading list.

------
moconnor
Fortran is widely used for scientific computing and in high performance
computing some knowledge of assembly language is useful in making use of
vector instructions - compiler auto-vectorisation still needs a lot of help.

Fortran and assembly language are key skills at every national supercomputing
center in the world.

~~~
spott
Yea, but embedded Fortran, and assembly of whatever architecture that voyager
runs on is a different beast.

~~~
escherplex
Point well taken. Couple that with the need for an intimate knowledge of
idiosyncrasies endemic to salvaged 8086 chips operating in space.

------
eliteraspberrie
I use Fortran code which was written before I was born on a daily basis. It
works exactly as you expect.

I can't get C code to behave the same from one release of the compiler to the
next.

Thank goodness NASA uses Fortran.

------
yodsanklai
I don't get why they need to hire someone that knows Fortran already. I'm sure
any competent and versatile programmer would be able to learn quickly those
technologies.

~~~
virmundi
That is not how we do any more. You have to have the skill. That is why you
have a college degree. You should have total knowledge of everything. You must
be proficient too.

------
jamesmcn
Given that the Voyager probes are pushing the absolute edge of humanity's
reach into the cosmos, I'd love to see NASA publish the hardware specs and
open up a competition to find the best possible solution.

With open specs, a simulator or emulator could be built, and anyone with
interest could give it a try. A core team of NASA engineers might come up with
some unit tests and acceptance tests. If these are passed, then the code is
eligible for professional review.

------
kwhitefoot
It's going to be hard to find a person with the right set of skills regardless
of their age. One of the skills required is patience and another is absolute
dedication to getting it right first time. Not a job for a Scrum enthusiast.

~~~
StillBored
Yah, I'm not sure the assembly is the hard part (I know a couple engineers in
their 20's that do just fine with assembly), or for that matter layering
fortran on said engineers. The problem is that none of them will likely be
interested in working on a piece of hardware for 10 years that effectively is
a dead end. Its the same decision that I looked a couple years ago with regard
to mainframe development. Its a dead end and the longer you stay there the
less employable you will be for your next job.

AKA, if whoever gets the job at NASA is younger than the 50 Y/O's they are
looking at, it should come with a pension, because getting the next job will
be hard.

~~~
mywittyname
> Its a dead end and the longer you stay there the less employable you will be
> for your next job.

I don't understand why people have this mentality, because it's so wrong. We
live in an era were kids can get jobs fresh out of high school after taking an
eight-week crash course in programming an no other experience. Certainly a
person capable of building robust software for NASA is capable of learning
whatever platforms exist in 10 years.

I've never had two jobs with an overlap in work. I've done everything from
embedded development to data science and analytics. Being an expert in many
fields demonstrates that know how to become an expert.

~~~
mreiland
Seriously.

Who the fuck is going to look at a resume with "last 10 years at NASA building
shit for a MOTHERFUCKING DEEP SPACE PROBE" and go... nah, dude(tte) doesn't
have node.js on his resume... NEXT!

~~~
hawkice
Honestly, I have spoken to and worked with some of these engineers, and if
they've been ten years deep on software that has no capacity for errors at
all, they can be a bit difficult. Not just "I can't use that tool, it has a
garbage collector", but when they are put in front of a frontend, they end up
re-inventing basic things constantly, because they have absolutely no context.

Honestly, going from that kind of development to web development, "last 10
years" doesn't mean much -- they are essentially junior programmers again.
Expect them to break things because they self-closed a script tag. Except them
to break things because they forgot to set the button type to button and so
some browsers POST. Heaven forbid you use tech where it doesn't default HTML
and SQL escape. It's very very easy to forget the amount of extremely specific
domain knowledge we all have that keeps things from imploding, and if they
don't have it, their code doesn't hit production without a senior dev looking
over it.

~~~
mreiland
You hire an extremely smart, talented individual with some ramp up time, or
pass on them for someone less talented (and less smart?) with less ramp up
time.

I can't speak to your current needs when hiring someone, but you're mistaken
if you think I was assuming they can pick up web dev with no mistakes made.

------
wyclif
Previously:
[https://news.ycombinator.com/item?id=10476306](https://news.ycombinator.com/item?id=10476306)

I really, really wish HN would be fair and go with the first post of a story,
not the creatively-titled later submission.

------
Fireman
Some computational physics courses in parts of Canada are still taught in
Fortran90. I also worked in a lab (in 2005) which still used 5 1/4" floppy
disks. The difference between these and NASA, of course, being choice.

~~~
Turing_Machine
Yes. A good friend of mine still uses FORTRAN regularly for scientific
computing, and has worked at supercomputing centers all over the world (NCSA,
ORNL, IVEC in Australia, LBNL...). She just got her PhD around 2006-2007-ish,
so it's not like she's ancient, either.

------
jrjr
crowdsource it. there are thousands of programmers that would love to help,
let alone audit the result. and even more that would love to write the sims.

------
wkoszek
Truly fascinating read. Thanks for posting that!

------
walshemj
Ok so where's the Job listing would be interested how good a match it would be
for me :-)

~~~
walshemj
Down voated for this really?

