I was on a project where a co-worker left and his son was onboarded a few years later; he seemed much more chill than I when we were both working on an issue and it dawned on me that he was literally fixing (well, not really a defect just an update) his Dad’s code. Heh.
‘Fixing his dad’s code’ sounds Freudian ngl
“This is what my parents raised me for. Step aside!”
Tangential, but I’m working with some code that started out in the punch card era (I’m doing particle physics, it’s in fortran)
My condolences.
haha me too. although it was ported to fortran 4, 77 and 2003 respectively. still the logic remained in its core.
But i must admit. working on such organic grown is harder then doing yourself. comments was devils work at that time. variables shortened to 3 chars for memory sake. really a pain in the ass.
When “What idiot wrote this?” is replaced by “I should call my mom.”
Had a friend who father was a FORTRAN programmer and teach him since he was a child. At 17, he was already working on a oil company making bank. He was obsessed with synthesizers and everytime you went to his house he showed you the new ones he bought. At 25 he “retired” with his own house and a fully equipped recording studio and nowadays it’s a music producer doing some consulting to pay the bills.
I remember reading a fascinating article (or Reddit post, at the time when those were sometimes awesome) from this guy interviewing his mom, a COBOL programmer… Wondering if it’s related…
Update: found it but it was deleted
Update: found it on the waybackmachine: https://web.archive.org/web/20160719020302/https://medium.com/@Svenskunganka/interviewing-my-mother-a-mainframe-cobol-programmer-c693d40d88f7#.kiw240b6p
I didn’t think COBOL had inheritance.
Hence the roundabout route I guess. Programmers really should stop using it. https://xkcd.com/583/
Impressive to work that long on something and not change the code at all. The mom('s team) was either very competent at writing configurable code or very good at pretending to work.
With such a codebase, once it is settled to a certain point, you stop adding things. You write new things, and carefully interface with the old stuff.
Imagine a bank. Their software core is usually neolithic, i.e. written in COBOL or even worse, FORTRAN. You don’t add the “online banking” or “web client” interface in the original language. You add them in something more contemporary, which interfaces to the neolithic core via files, pipes, libraries, whatever, and translate it into a frontend as needed. As long as the core works, nobody needs to touch it.