Why is that scary? It has decades of real life testing applied to it if there were any obvious bugs they would have been found by now.
Assembly is just another language, it is slower to develop in but there are many examples of high level language issues that are at least as scary as what you could do in assembly. In the end it is all about the processes around your development as much or more than it is about what language you pick. The best way to reduce your chance of bugs is to reduce the size of your project.
https://www.mayerdan.com/ruby/2012/11/11/bugs-per-line-of-co...
I also disagree with Mayer's assertions about LOC. In my professional experience, the best ways to avoid bugs are optimizing for clarity as well as continuously grooming your codebase (including modernizing when possible). Obviously the latter is not an option for safety-critical software, and probably not suitable for the tax system either. But in general, those practices have worked better for me than have others.
Really, that's what they said about CPUs - at least if you're not in the fab industry.
> They were working on projects to "elevate" it to Java, because it's pretty difficult to maintain it as-is.
Yeah, apparently an eight person IRS development team nearly developed a replacement, but the main developers were hired on a special program to pay them at above-GSA rates, and that program expired before they could put it into production:
https://federalnewsradio.com/tom-temin-commentary/2018/01/ir...
If you had to pick, Java does make a lot of sense. Java & C are safe bets for "languages that will stick around for decades".
Until, of course, they are all gone. At which point the system will need to be rewritten by IBM, Oracle or some other useless, gigantic consulting firm.
NB: Don't object any of the new languages, I've never written code in COBOL or for a mainframe. But I've also never developed software with that kind of requirements.
See the Chrysler Comprehensive Compensation fiasco: https://en.wikipedia.org/wiki/Chrysler_Comprehensive_Compens...
These kinds of systems are all about the exceptions and how you enable humans to deal with those, not the rules and how the computer deals with those.
The problem is that the system first needs a comprehensive test suite written. THEN you could actually think about rewriting pieces.
They were working on projects to "elevate" it to Java, because it's pretty difficult to maintain it as-is.