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. ...