▲ 1340 ▼ She wrote all this code by hand to take humanity to the Moon (thelemmy.club) submitted 3 years ago by MakunaHatata@lemmy.world to c/nextfuckinglevel@lemmy.world 173 comments fedilink hide all child comments 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
[–] Iron_Lynx@lemmy.world 22 points 3 years ago (11 children) Imagine having to look for the missing semicolon in there. permalink fedilink source hideshow 11 child comments replies: [–] troyunrau@lemmy.ca 5 points 3 years ago (10 children) It's probably written in Fortran66 or similar. No semicolons, but so many line numbers... permalink fedilink source parent hideshow 10 child comments replies: [–] ThatBaldFella@lemmy.world 23 points 3 years ago (7 children) It's written in assembly. You can check out the source code on GitHub. permalink fedilink source parent hideshow 7 child comments replies: [–] troyunrau@lemmy.ca 12 points 3 years ago* (last edited 3 years ago) (2 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 :) permalink fedilink source parent hideshow 2 child comments replies: [–] Revan343@lemmy.ca 4 points 3 years ago (1 child) 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 permalink fedilink source parent hideshow 1 child comment replies: [–] Karyoplasma@discuss.tchncs.de 3 points 3 years 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. permalink fedilink source parent [–] Hypersapien@lemmy.world 12 points 3 years ago* (3 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 permalink fedilink source parent hideshow 3 child comments replies: [+] Puzzle_Sluts_4Ever@lemmy.world 3 points 3 years ago* (last edited 3 years ago) (2 children) [removed by mod] permalink fedilink source parent hideshow 2 child comments replies: [–] Hypersapien@lemmy.world 1 point 3 years ago Admittedly, the last time I touched real Assembly was 20 years ago. There's a couple Zachtronics games, TIS-100 and Shenzhen I/O, both that use a limited form of Assembly, that are probably filling in the gaps in my memory. permalink fedilink source parent [–] Hector_McG@programming.dev 0 points 3 years ago* (last edited 3 years ago) with the hell that is x86 assembly I soooo wish IBM had gone with the Motorola 68000 family instead of the Intel 8086 family of chips for the PC. It had a far, far nicer instruction set. permalink fedilink source parent [–] Revan343@lemmy.ca 5 points 3 years 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 permalink fedilink source parent [–] Kinglink@lemmy.world 0 points 3 years ago Assembly. Like most embedded systems (at least up until we had enough power to waste on higher languages) permalink fedilink source parent
[–] troyunrau@lemmy.ca 5 points 3 years ago (10 children) It's probably written in Fortran66 or similar. No semicolons, but so many line numbers... permalink fedilink source parent hideshow 10 child comments replies: [–] ThatBaldFella@lemmy.world 23 points 3 years ago (7 children) It's written in assembly. You can check out the source code on GitHub. permalink fedilink source parent hideshow 7 child comments replies: [–] troyunrau@lemmy.ca 12 points 3 years ago* (last edited 3 years ago) (2 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 :) permalink fedilink source parent hideshow 2 child comments replies: [–] Revan343@lemmy.ca 4 points 3 years ago (1 child) 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 permalink fedilink source parent hideshow 1 child comment replies: [–] Karyoplasma@discuss.tchncs.de 3 points 3 years 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. permalink fedilink source parent [–] Hypersapien@lemmy.world 12 points 3 years ago* (3 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 permalink fedilink source parent hideshow 3 child comments replies: [+] Puzzle_Sluts_4Ever@lemmy.world 3 points 3 years ago* (last edited 3 years ago) (2 children) [removed by mod] permalink fedilink source parent hideshow 2 child comments replies: [–] Hypersapien@lemmy.world 1 point 3 years ago Admittedly, the last time I touched real Assembly was 20 years ago. There's a couple Zachtronics games, TIS-100 and Shenzhen I/O, both that use a limited form of Assembly, that are probably filling in the gaps in my memory. permalink fedilink source parent [–] Hector_McG@programming.dev 0 points 3 years ago* (last edited 3 years ago) with the hell that is x86 assembly I soooo wish IBM had gone with the Motorola 68000 family instead of the Intel 8086 family of chips for the PC. It had a far, far nicer instruction set. permalink fedilink source parent [–] Revan343@lemmy.ca 5 points 3 years 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 permalink fedilink source parent [–] Kinglink@lemmy.world 0 points 3 years ago Assembly. Like most embedded systems (at least up until we had enough power to waste on higher languages) permalink fedilink source parent
[–] ThatBaldFella@lemmy.world 23 points 3 years ago (7 children) It's written in assembly. You can check out the source code on GitHub. permalink fedilink source parent hideshow 7 child comments replies: [–] troyunrau@lemmy.ca 12 points 3 years ago* (last edited 3 years ago) (2 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 :) permalink fedilink source parent hideshow 2 child comments replies: [–] Revan343@lemmy.ca 4 points 3 years ago (1 child) 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 permalink fedilink source parent hideshow 1 child comment replies: [–] Karyoplasma@discuss.tchncs.de 3 points 3 years 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. permalink fedilink source parent [–] Hypersapien@lemmy.world 12 points 3 years ago* (3 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 permalink fedilink source parent hideshow 3 child comments replies: [+] Puzzle_Sluts_4Ever@lemmy.world 3 points 3 years ago* (last edited 3 years ago) (2 children) [removed by mod] permalink fedilink source parent hideshow 2 child comments replies: [–] Hypersapien@lemmy.world 1 point 3 years ago Admittedly, the last time I touched real Assembly was 20 years ago. There's a couple Zachtronics games, TIS-100 and Shenzhen I/O, both that use a limited form of Assembly, that are probably filling in the gaps in my memory. permalink fedilink source parent [–] Hector_McG@programming.dev 0 points 3 years ago* (last edited 3 years ago) with the hell that is x86 assembly I soooo wish IBM had gone with the Motorola 68000 family instead of the Intel 8086 family of chips for the PC. It had a far, far nicer instruction set. permalink fedilink source parent
[–] troyunrau@lemmy.ca 12 points 3 years ago* (last edited 3 years ago) (2 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 :) permalink fedilink source parent hideshow 2 child comments replies: [–] Revan343@lemmy.ca 4 points 3 years ago (1 child) 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 permalink fedilink source parent hideshow 1 child comment replies: [–] Karyoplasma@discuss.tchncs.de 3 points 3 years 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. permalink fedilink source parent
[–] Revan343@lemmy.ca 4 points 3 years ago (1 child) 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 permalink fedilink source parent hideshow 1 child comment replies: [–] Karyoplasma@discuss.tchncs.de 3 points 3 years 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. permalink fedilink source parent
[–] Karyoplasma@discuss.tchncs.de 3 points 3 years 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. permalink fedilink source parent
[–] Hypersapien@lemmy.world 12 points 3 years ago* (3 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 permalink fedilink source parent hideshow 3 child comments replies: [+] Puzzle_Sluts_4Ever@lemmy.world 3 points 3 years ago* (last edited 3 years ago) (2 children) [removed by mod] permalink fedilink source parent hideshow 2 child comments replies: [–] Hypersapien@lemmy.world 1 point 3 years ago Admittedly, the last time I touched real Assembly was 20 years ago. There's a couple Zachtronics games, TIS-100 and Shenzhen I/O, both that use a limited form of Assembly, that are probably filling in the gaps in my memory. permalink fedilink source parent [–] Hector_McG@programming.dev 0 points 3 years ago* (last edited 3 years ago) with the hell that is x86 assembly I soooo wish IBM had gone with the Motorola 68000 family instead of the Intel 8086 family of chips for the PC. It had a far, far nicer instruction set. permalink fedilink source parent
[+] Puzzle_Sluts_4Ever@lemmy.world 3 points 3 years ago* (last edited 3 years ago) (2 children) [removed by mod] permalink fedilink source parent hideshow 2 child comments replies: [–] Hypersapien@lemmy.world 1 point 3 years ago Admittedly, the last time I touched real Assembly was 20 years ago. There's a couple Zachtronics games, TIS-100 and Shenzhen I/O, both that use a limited form of Assembly, that are probably filling in the gaps in my memory. permalink fedilink source parent [–] Hector_McG@programming.dev 0 points 3 years ago* (last edited 3 years ago) with the hell that is x86 assembly I soooo wish IBM had gone with the Motorola 68000 family instead of the Intel 8086 family of chips for the PC. It had a far, far nicer instruction set. permalink fedilink source parent
[–] Hypersapien@lemmy.world 1 point 3 years ago Admittedly, the last time I touched real Assembly was 20 years ago. There's a couple Zachtronics games, TIS-100 and Shenzhen I/O, both that use a limited form of Assembly, that are probably filling in the gaps in my memory. permalink fedilink source parent
[–] Hector_McG@programming.dev 0 points 3 years ago* (last edited 3 years ago) with the hell that is x86 assembly I soooo wish IBM had gone with the Motorola 68000 family instead of the Intel 8086 family of chips for the PC. It had a far, far nicer instruction set. permalink fedilink source parent
[–] Revan343@lemmy.ca 5 points 3 years 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 permalink fedilink source parent
[–] Kinglink@lemmy.world 0 points 3 years ago Assembly. Like most embedded systems (at least up until we had enough power to waste on higher languages) permalink fedilink source parent