5 ms·
> The availability of skills is also an issue. Many of the engineers who worked on the project - Voyager 1 launched in 1977 - are no longer around, Can you jus
by tetris11 3y ago
> The availability of skills is also an issue. Many of the engineers who worked on the project - Voyager 1 launched in 1977 - are no longer around,
Can you just imagine that? You wrote software in your 30s, and then 50 years later your grandchildren have to come visit you in the old folks home to ask you:
"Grandad, why did you write this goto statement at line 1892? Our AI think it might have to do with avoiding a hardware issue?"
to which you then reply, "my dear, even if you asked me one year after I wrote it, I would not be able to tell you."
- zoeysmithe 3y agoMy understanding is that its very well documented, but the funding isn't there to do much with it. I mean most of the team behind things like the Atari computers, Acorn, Commodore, early Apples, etc are retired but we can emulate them and understand these things on a very technical level. I know this isn't a great analogy, but ultimately age of the project or the age of the original team members isn't the bottleneck. I sometimes see retro projects on hack-a-day done by people who could be the grandchildren of the original designers of those vintage chips and OS's. They probably know more about that chip or OS than the original people do just due to them being out of the game for so long. The same way people regularly lose to fifth graders in tests because they dont recall 5th grade science and civics. If anything your scenario might be the opposite! Grandpa might be asking his granddaughter how those registers worked or how to emulate his OS from 1982. I remember reading about the team that maintains the Voyagers. Its a skeleton crew using legacy equipment to keep the communication going with the assumption the next decade, or even earlier, is going to be it. NASA has the same problem the private sector has. Capitalism rewards things that will generate profit/prestige, not legacy cost centers, and NASA is not immune from that dynamic as NASA employees and managers want to maximize their income and prestige too. So the people maintaining or bug fixing old products are often lowest on the prestige, pay, recruiting, and profit spectrum than those chasing new things. They get the skeleton crew funding and can't do novel things, even if technically possible because of lack of staff and buy-in. Passion projects make for feel-good documentaries like 'It's Quieter in the Twilight' but ultimately if society isn't vested in these teams, their hands will always be tied.
- ngcc_hk 3y agoI hate people just random throw in capitalism. Is the communism better in maintaining old code … do they even exist. Not to mention please we are here not for the money as most does not, just awe of what can be done for a computer job which love to do and have such legacy. Capitalism does not really exist. It is money, incentives, job, human … or love to hack.
- quickslowdown 3y agoI'm going to just outright dismiss this comment the way you're dismissing people talking about capitalism, a very real economic system we're all living under, since it's ridiculous on its face.
- jcadam 3y agoA young engineer must know that getting stuck on a legacy project is a career-limiting move. Happened to me when I got stuck on a old Ada codebase for a legacy aerospace system (unemployed in 2008, you take whatever job you can get), and it took years, and a good chunk of my spare time doing projects/studying, to find a company willing to give me a chance working on something modern again. Now, someday when I'm in my 60s/70s, and you have some legacy system written in some defunct language nobody under the age of 50 has any experience with, sure, I'll do it. But it'll cost you.
- trealira 3y agoWhy do companies do that? Shouldn't it be enough that you have experience contributing to a large project long-term and you can program decently? Is it that modern programming just requires different/additional programming skills compared to most old codebases, like writing asynchronous code?
- jcadam 3y ago> Why do companies do that? Sane hiring practices are inversely proportional to company size.
- jacobriis 3y agoCan you just imagine that? No this is not a plausible scenario.
- Vecr 3y agoBecause you never write gotos? Many embedded and kernel programmers still do. I think it makes sense in general.
- williamcotton 3y agoIt is known as error handling. Some languages renamed the practice to try/catch. Others added a Result type.
- trealira 3y agoLikely you know this, and you're just being funny, but the try/catch statement is more like setjmp/longjmp in C. The Result type in Rust is syntactic sugar for integer return codes, returning early on errors, and tagged union structures. And where C programmers use goto statements, C++ programmers use destructors, and Rust programmers use the Drop trait. Walter Bright also says that nested procedures in D eliminate most use cases of goto for him. You can also always avoid goto, in C, but usually, either it has excessive if-statement nesting, it uses boolean flag variables in loop conditions, or it uses structures to create state machines, but these are usually just uglier and more error-prone than the equivalent version using goto. The same applies to avoiding break, continue, and early returns.
- dotps1 3y agoI mean, this stuff does happen. There is an old electric station near me that is used for various things sometimes. Some band was in there shooting a music video and bumped something and somehow the whole area started filling with water. Nobody could stop it. The government, the water company, everyone was struggling to figure out what to do, and they decided to call the old guy that used to work there. He was in his 90s but he told them how to fix everything.
- deleted 3y ago[deleted]
- jdminhbg 3y ago> Can you just imagine that? You wrote software in your 30s, and then 50 years later your grandchildren have to come visit you in the old folks home to ask you... Yes, I have nightmares like this all the time.
- LeifCarrotson 3y agoIf only it was merely nightmares and not my day job.
- ceautery 3y agoI never thought of this before now, but tech from 1977 might not even be using ASCII.
- kayodelycaon 3y agoGreat question! Voyager 1 does appear to be using ASCII. :D https://destevez.net/2021/09/decoding-voyager-1/ https://destevez.net/2021/09/decoding-voyager-1/
- cadr 3y agoNo, but I did find myself in the mid 90s as an intern trying to figure out code from the early 80s. It was really tricky code to get ECG processing working on some very small memory footprint or something. The name of the woman that wrote it was at the top of the file, and I looked her up in the HP company directory and she still worked there. As a hail-mary, I emailed her and asked a question about it. And she immediately got back to me with the answer. So, there are some engineers out there that do remember this sort of thing.
- HeyLaughingBoy 3y agoLOL. I remember being asked to consult for my last employer on a problem they had while attempting to port some software that I had written almost 20 years earlier. It's amazing the random details that you remember when your memory is jogged.
- avidphantasm 3y agoI would use my old person privilege to berate you for using "AI" to "understand" the code rather than getting your soft hands dirty.
- linsomniac 3y agoI'm kind of surprised, what with all the retro computing emulation software and skills I see getting posted here, that we don't have a Voyager emulator scene and a group of people standing by to run scenarios and propose fixes.
- hathawsh 3y agoThat would be very interesting. Someone please tell me such a community exists somewhere.
- tetris11 3y agoDarmokJalad1701 below mentions about hearing a podcast where new engineers did work on VMs
- ngcc_hk 3y agoAny details? We have people work on a dead moon lander…why not a live v1/2. If sadly one is dead, the other still has some life left ?
- bilegeek 3y agoNot that I'm skillful enough to make an emulator, but I've tried years ago to find technical documents on the Honeywell HDC-402 used in Voyager and Viking (it's also apparently not related to the DDP-516 or 316 AFAIK.) There's SOME information[1], but not enough to make an emulator from what I've found. Aside from the lack of schematics or listings, there was the problem of the assembler being incomplete! "One problem Lander software developers had was that no adequate assembler was ever written for the computer, perhaps because of the changing nature of the instruction set.(110) Patches had to be hand-coded in octal, with many jumps to unused memory space because of the lack of an assembler with relocatable addressing." p.174 on Viking, which used the same computer [1]https://ntrs.nasa.gov/api/citations/19880069935/downloads/19880069935_Optimized.pdf https://ntrs.nasa.gov/api/citations/19880069935/downloads/19... (page 174 onwards)
- makomk 3y ago
- supportengineer 3y agoI know a developer in his 70's who maintains code he wrote in his 20's
- taylorfinley 3y agoI would love to hear more about this if you can share any details
- bloomingeek 3y agoGoing out on a limb here, wouldn't code written that long ago be almost impossible to hack with modern tools? (not to mention still using the old hardware.)
- wredue 3y agoI’m not sure why that would be the case. If anything, I’d expect earlier code to be easier to hack.
- HeyLaughingBoy 3y agoOne of the Best Practices for maintaining software that you expect to support for decades involves archiving the development tools used. Of course, finding a platform to run it on could be a problem. Also, the License Server that so many proprietary tools need before they'll run.
- myself248 3y agoI remember hearing about some hardware made for the government (military?) where the development tools ran on some 1970s minicomputer that had long since ceased to function, but it was no problem because in the 80s they wrote an emulator that ran on 68k, specifically an Amiga since that's what someone had sitting around the lab at the time. Then in the 2000's they realized the supply of Amiga parts wouldn't last forever so they bundled the whole thing up to run in an Amiga emulator that ran on whatever version of Windows was current at the time. Then 16-bit Windows ceased to be a thing, so....
- pkaye 3y agoThere is a nice documentary about what remains of the Voyager project team. The video is not free however. https://www.itsquieterfilm.com/ https://www.itsquieterfilm.com/
- sho_hn 3y agoI watched that a couple of months ago and loved it. It does a lot to humanize that team, I've been thinking of them during the recent news cycle.
- wredue 3y agoIt’s funny which code I remember and which code I don’t. There’s code I wrote 10 years ago at work that I still remember and can point out exactly where everything is. Then there’s code I wrote last week that is completely gone.
- kstrauser 3y agoSee also: engineers of the B-52 bomber. It first flew 71 years ago and is expected to have another 30 years left.
- KineticLensman 3y agoThere is at least one family that has three generations of B52 pilot (grandfather, father, son) [0]. Imagine being a coder who maintained code written by your grandfather and father... [0] https://www.minot.af.mil/News/Article-Display/Article/264580/three-generations-of-b-52-airmen/ https://www.minot.af.mil/News/Article-Display/Article/264580...
- kstrauser 3y agoWell, my grandpa didn’t know jack about computers, so I very well could have maintained code he’s written based on the disquality of stuff I’ve had to work on in the past. But yeah. In “A Fire Upon the Deep”, Vinge talked about archaeological programmers. There’s no doubt in my mind we’ll reach that point. “Tell me again why time_t is only 64 bits?” “Pull up a chair while I dig out the LKML archive. You know, this was originally stored in electric fields, if you can believe it!”
- acheron 3y agoFire up the subspace ansible and create a holodeck room for us to talk about it. You can't name the holodeck program "CON", "LPT1", "PRN", or "AUX", though, because those are MS-DOS device names. ( https://news.ycombinator.com/item?id=37076523 https://news.ycombinator.com/item?id=37076523 )
- myself248 3y agoTo this day, I use COPY CON FILENAME.TXT to make a quick-n-dirty note of something without leaving the terminal.
- 3y ago
- HeyLaughingBoy 3y agoI'm going to be a humorless pedant and reply by saying that with the level of forward and backward traceability required of aerospace software, it's unlikely that such a level of misunderstanding could occur. But maybe DO-178 wasn't a thing back then. That's just from what I've heard, though. I do medical devices. I'm told that my aerospace counterparts have it even tougher than we do.
- sho_hn 3y ago> I do medical devices. Therac-25 happened in 1982 and changed that industry (and safety engineering in general) quite a bit, no?
- HeyLaughingBoy 3y agoYes, but I don't get your point.
- malfist 3y agoVoyager launched in 1977, well before the therac-25
- HeyLaughingBoy 3y agoOK. And?
- deleted 3y ago[deleted]
- aardvark179 3y agoI have definitely had to do archeology on 20+ year old code, including disassembly to work out actual production code was when it clearly wasn’t the version we had source for, and that’s now 30+ year old code which I expect will still be in productions at least a decade from now. Equally I’ve seen COBOL compiled to new platforms because it has outlived all the systems it ran on. I’m pretty sure there must be areas of Java, or C++’s standard libraries that haven’t changed for a very long time, and will continue to be used for decades. The thing is, it’s often easier to just figure out the code, or rebuild the whole underlying platform, than to track down the original author and hope it wasn’t a Friday afternoon commit.
- eichin 3y agoI (and at least couple thousand other people) are still running code I worked on in 1987. Maybe we should do something for the upcoming 40th anniversary...