The IRS’s Effort to Convert Its Assembly Codebase to Java

  • Wow, what a cool project to work on: working out the logic flows in assembler and breaking them out so that they can be translated into a higher-level language.

    I've always thought that this type of government work should be open to bids from anyone. If the government is worried about trojans, malware, etc., then they can easily hire an auditor to audit the code and vouch for its authenticity. The fact that only very large, well-connected corporations get a crack at these types of problems is insane and a complete waste of taxpayer money.

  • Java seems like a good choice for the IRS. There are legions and legions of programmers well versed in Java, since its among the most commonly used programming languages to introduce programming at universities. This means the IRS should be able to focus its hiring on "People who know tax law and can use Java" instead of "Java experts that know enough tax law to be dangerous".

    Its not the flashiest language, but I think its the right choice for them.

  • What this article implies is not entirely correct: this codebase is not S/370 assembly, oh no. It's IBM 7074! Check also the reports which said the Master File age was over 55 years -- the S/370 is too new for that.

    https://books.google.ca/books?id=3iEDAAAAMBAJ&pg=PA88&lpg=PA...

  • > Converting assembler code won’t be such a simple input-output matter [as turning a dog into a sausage and back again as shown in the linked b/w film]

    Actually this is the best analogy I could possibly imagine.

  • Funny how it's always the same companies producing code for the government based on political relationships - but the outcome of government software is always so bad.

  • It sounds like the effort might have been a step in the right direction, but hardly a solution in its own right. The result would be a literal case of the aphorism "You can write assembly in any language."

    The translation would have some minor benefits: interop with java libraries would be nice, it could help to plug the system into better infrastructure like a modern testing framework, and it might run a little more securely. (I wonder whether you could craft a tax return to crash this system.) But it wouldn't have magically produced readable modern java code.

  • One has to wonder whether it really makes sense to port instead of taking a look at the workflow and simply implement it from scratch.

  • The best argument to new development is working code. I assume that they can't hire people to upgrade or maintain Maniframe software anymore.

  • > Wang was working under streamlined critical pay authority the agency has had since its landmark 1998 restructuring. It gave the IRS 40 slots under which it could pay temporary, full-time employees higher than GS rates. Former Commissioner John Koskinen pointed out Congress did not re-up this authority in 2013, despite his entreaties to former Congressman Jason Chaffetz’s Committee on Oversight and Government Reform.

    > He says he applied to become a GS-15 or Senior Executive Service member so he could see through the assembler-to-Java project. But his approval didn’t come through until a week before his employment authority expired. By then he’d accepted another job.

    (GS-15 is $103k-$134k. https://www.federalpay.org/gs/2017/GS-15)

    So, basically: the IRS can't fix its software because it can't pay market rates for software engineers. It can't pay market rates for software engineers not because it lacks the budget for it, but because Congress won't let them. This is how it ends up with huge armies of bureaucrats doing things that could be easily automated.

  • I’m sorry but this seems like a fool’s errand. Perhaps Jian Wang is a genius that figured out a way to map IBM 360 assembly to Java that would map to the JVM. Maybe he’s brilliant or maybe his efforts are overhyped by this news piece. It seems that a direct mapping from 360 to the JVM might have made more sense. I suggest that you go look at Rick Hickey’s Clojure code to see how that might look.

    Government IT is rife with corruption and incompetence. I have worked for a number of agencies and worked in federal government for many years. Projects are often steered in the direction of contractors and federal employees that benefit from technologies. This is often done to bias incumbent legacy stakeholders and technologies that benefit the federal employees and the contractors that collude to control the systems for their own gains. I have seen the sleaziest contractors enrich themselves at SV IPO levels.

    Then came 18F, the hipster government IT revolution. As a senior developer, and maybe I am just some cranky old developer, but the thought of being vetted by this douchebag, fuckin blows my mind: https://18f.gsa.gov/2015/04/08/day-in-the-life-of-talent-man...

    Yep, most government and corporate IT is fucked.

  • Well, I guess once the system is rewritten, we will not get our refunds until 3 years later.

    I wonder if I get 2x by expected refund the IRS can come at me to claim the extra amount :)

  • Just imagine if this new system was converted to groovy or scala. That would be pretty amazing.

  • > Assembler is like Shakespearean English. It’s dated. A shrinking number of people can deal with it. But it’s also elegant and highly functional.

    What is considered elegant and functional about assembly?

  • If you machine translate assembler to Java won't you still end up with confusing code?

  • > in theory, there’s no way to translate assembler code. They way it runs is not how it reads

    Wat?

  • It's quite simple actually: just make very long names for everything, instead of very short ones.

  • > assembler

    > elegant

    > functional

    Good one, mate

  • Or rewrite it in LLVM.

  • So the IRS is going to "modernize" by converting to a language that has already far outlived its useful life?

  • >assembler-to-Java project

    Where's my gif of that guy who looks skeptically at that thing he's looking at? You know that one.

  • Java? Hope they don't need an unsigned byte.

  • Sounds like a great reason to simplify our tax system!

  • I feel like if the IRS had a software provider that was privatized, this would not be an issue.