this post was submitted on 11 Jul 2023
1312 points (90.2% liked)

Next Fucking Level

3122 readers
4 users here now

Next Fucking Level Videos and Gifs.

Rules

  1. Be respectful and inclusive.
  2. No harassment, hate speech, or trolling.
  3. Engage in constructive discussions.
  4. Share relevant content.
  5. Follow guidelines and moderators' instructions.
  6. Use appropriate language and tone.
  7. Report violations.
  8. Foster a continuous learning environment.

founded 1 year ago
MODERATORS
 

Margaret Hamilton, NASA's lead developer for Apollo program, stands next to all the code she wrote by hand that took humanity to the moon in 1969

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 1 year ago (3 children)

It's probably written in Fortran66 or similar. No semicolons, but so many line numbers...

[–] [email protected] 23 points 1 year ago (2 children)

It's written in assembly. You can check out the source code on GitHub.

[–] [email protected] 12 points 1 year ago* (last edited 1 year ago) (1 children)

Oh that's so hardcore

edit: looking at the git repo, it looks like it was a team of seven, and she was the lead. So it isn't all her code. Still super impressive :)

[–] [email protected] 4 points 1 year ago (1 children)

The other big notable thing for assembly is that it isn't portable. Assembly is very different for every processor architecture, unlike something like C where you may have to make some adjustments between an x86 vs ARM proc, in assembly you're basically rewriting it from scratch

[–] [email protected] 3 points 1 year ago

Also, this is an obscure assembly variant specifically for the computers in the Apollo mission. Not sure about the specifications on that, maybe there is a handbook, but I doubt it.

Rewriting the code to x86 or anything seems improbable since you'd pretty much have to guess what the instructions are actually doing.

[–] [email protected] 12 points 1 year ago* (last edited 1 year ago) (1 children)

For people unfamiliar with assembly, it's one step up from raw 1s and 0s. Just vaguely human readable abbreviations for given sets of 1s and 0s. There are no built in loops or if statements, you have to build all that shit yourself from scratch every time you want to use one. And there's exactly one built in variable you can use called the register

[–] [email protected] 5 points 1 year ago

Lol Fortran; it was written in Apollo Guidance Computer assembly; I frankly wouldn't be surprised if she knew Mel Kaye

The story of Mel, for the uninitiated

[–] [email protected] 0 points 1 year ago

Assembly. Like most embedded systems (at least up until we had enough power to waste on higher languages)