IBM mainframes do the same thing with COBOL because modernizing core code means having to notify and test all the downstream users that have their own code to deal with the legacy issues in the current stack. I was once explained by a retired COBOL programmer (who spends his summers contracting for maintenance) how this tangled mess of thousands of banks feeds in all the way to the US central bank to determine interest rates - in some extreme cases, IBM still has to emulate hardware bugs as to not change expected behaviour. This is not something you just migrate away from or fuck around with. There's a reason IBM still sells mainframes that runs code from the 1960s.