From Waldo Jaquith, described as a former government technologist, writing for MSNBC:
... Wired magazine reported last week that the Department of Government Efficiency plans to replace the mainframes that power the agency’s mission and rebuild their functionality on new servers in a new programming language — with just a few months’ work.
Assuming Wired’s reporting is accurate, we know that such an effort will surely fail. The track record of decades of modernizations of thousands of software systems, in both the private and public sectors, makes that clear. This isn’t even an interesting-yet-flawed idea. It’s a hackneyed, clichéd bad idea that could only sound compelling to novice software developers. It’s like cooking a Thanksgiving turkey in 20 minutes by putting it in a blast furnace, or choosing to get measles instead of getting vaccinated against it: it sounds most convincing to the layperson who asks the fewest questions. ...
Critics complain that the COBOL programming language, widely in use in the SSA, is old and outdated. This is wrong. While COBOL’s origins date to 1959, it’s an actively maintained programming language, with an updated standard published by the International Standards Organization in 2023. The advanced age of actively maintained languages is evidence of their sustainability and quality. ...
Critics also complain that mainframes are antiquated in an era of cloud computing. In fact, mainframes are still in wide use throughout the public and private sectors. They are not the room-sized reel-to-reel machines of the 1960s, but instead sleek, modern machines that would turn any developer’s head. They excel anywhere that it’s important to have lots of processing power, high redundancy and the ability to muscle through big batches of data processing—precisely what the SSA needs. ...
Replacing COBOL is a special challenge, for a reason generally known only to experienced COBOL developers: math works differently in COBOL. It handles decimals unlike any other programming language, which is particularly important for large financial systems working at the scale of the SSA. What COBOL might calculate as 1,000.99, Java might calculate as 1,000.98. Neither number is wrong in a mathematical sense, but for an accounting and payment system designed around decades of COBOL-based math, the Java-based answer is functionally wrong. For a system making 840 million financial transactions annually, such a small difference in math can quickly spiral into a disaster. ...