Slashdot Mirror


Why The US Government Open Sources Its Code (opensource.com)

He's been the White House technology advisor since 2015, and this month Alvand Salehi delivered a keynote address at OSCON about the U.S. government's commitment to open source software. An anonymous reader quotes OpenSource.com: The Federal Source Code Policy, released in August 2016, was the first U.S. government policy to support open source across the government... All new custom source code developed by or for the federal government must be available to all other federal agencies for sharing and reuse; and at least 20% of new government custom-developed code must be released to the public as open source. It also established Code.gov as a platform for access to government-developed open source code and a way for other developers to participate.

Before this policy was released, agencies were spending a lot of money to redevelop software already in use by other government agencies. This initiative is expected to save the government millions of dollars in wasteful and duplicative spending on software development. Because of this, Salehi said, open source is not a partisan issue, and "Code.gov is here to stay." Another benefit: Releasing open source code allows the government to benefit from the brainpower of developers across the country to improve their code.

Code.gov points potential contributors to their code repository on GitHub.

16 of 58 comments (clear)

  1. Mostly Javascript for US Government Web Apps by mykepredko · · Score: 3, Insightful

    It's a great initiative but...

    Somehow I can't see LLNL releasing codes for simulating nuclear processes. Similarly, I don't see the CIA, NSA, FBI releasing code for their intelligence, data gathering/mining and investigations. Just thinking about it, I suspect that a lot of this code isn't written by the US Government, but by contractors who can patent/copyright and make it ineligible for this program.

    That leaves... Javascript used for different website apps. I would be surprised if anything much of anything else was published through this program.

    1. Re:Mostly Javascript for US Government Web Apps by ShanghaiBill · · Score: 4, Insightful

      That leaves... Javascript used for different website apps. I would be surprised if anything much of anything else was published through this program.

      Instead of spouting off your ignorant (and incorrect) opinion about what is on code.gov, why didn't you just take 30 seconds to go there and have look before posting?

    2. Re:Mostly Javascript for US Government Web Apps by TheLongshot · · Score: 3, Insightful

      Just to correct some errors in your assumptions: First, while contractors write the bulk of code for the US government, it is all work for hire and owned by the government. Second, even much of the software written for the IC is not classified. Most of the time, it is the data that it processes that is classified.

      As someone who has worked as a government contractor for years, duplication of effort between agencies is a big problem, one which the government has worked hard at trying to resolve. This is a good step in the right direction.

    3. Re:Mostly Javascript for US Government Web Apps by syzler · · Score: 4, Informative

      That leaves... Javascript used for different website apps. I would be surprised if anything much of anything else was published through this program.

      Instead of spouting off your ignorant (and incorrect) opinion about what is on code.gov, why didn't you just take 30 seconds to go there and have look before posting?

      I did go look through the repository to see if anything interesting caught by eye and he is not far off the mark. It appeared to be mostly web APIs and web apps.

    4. Re:Mostly Javascript for US Government Web Apps by ausekilis · · Score: 2

      Similarly, I don't see the CIA, NSA, FBI releasing code for their intelligence, data gathering/mining and investigations.

      Just cruise on over to Wikileaks, if you're curious.

      Just thinking about it, I suspect that a lot of this code isn't written by the US Government, but by contractors who can patent/copyright and make it ineligible for this program.

      You're mostly correct there. An Engineer for the Gov won't actually do much real engineering. They'll be a technical lead or P.O.C. for a contractor that does. However, the rights the government has to the code depends on the contract. We won't ever see anything for the B-2 because it is wholly owned by Northrop Grumman and leased to the Fed. There are some contracts where the government is granted unlimited license to the code, hardware and data. I suspect when that hardware is decommissioned, then we will see some stuff released to the public (barring any national security stuff).

      That leaves... Javascript used for different website apps. I would be surprised if anything much of anything else was published through this program.

      The Fed actually does have a librarian whose job it is to make sure data/code/documents are sorted and labelled properly. Every year they review old documents to see what needs to stay classified, what doesn't, and what could be made public domain.

    5. Re:Mostly Javascript for US Government Web Apps by jimbolauski · · Score: 2

      I suspect that a lot of this code isn't written by the US Government, but by contractors who can patent/copyright and make it ineligible for this program.

      I suspect you have never worked on a government contract. Even if the government contracting office is inept by government standards this is not going to happen. The government will not pay you to develop software and then let you own it, contractual requirements include delivering all source code for software developed with government funds.

      --
      Knowledge = Power
      P= W/t
      t=Money
      Money = Work/Knowledge so the less you know the more you make
    6. Re:Mostly Javascript for US Government Web Apps by hackel · · Score: 2

      I just want them to release the code to all their government GUIs depicted in films and TV. You know, where it just kind of does whatever he scene calls for, almost like magic. And the "Enhance" function on highly pixelated images works too!

  2. Because by Anonymous Coward · · Score: 2

    taxpayer money funds its development?

  3. It's not a new thing and a good thing to continue by dbIII · · Score: 2

    Somehow I can't see LLNL releasing codes for simulating nuclear processes

    Maybe, but I think NASA's portable batch system (PBS/Torque) was released to the public before most Slashdotters were born yet it's still in use.

  4. Re:Back to Ada? by ShanghaiBill · · Score: 5, Informative

    The US mil tried to save money and advance with Ada.

    I worked for several years for DoD contractors in the late 1980s, and we did several projects with Ada before it faded away. The only way we got anything done was to first write the project in C which was way faster for development, get it working, get client sign-off on interface and functionality, and then rewrite it into Ada. The Ada version was always three times the size and half the speed. The number of bugs was about the same. Ada doesn't have the pointer and memory allocation bugs, but with proper coding standards, those aren't much problem in C either. Most bugs are in logic or misunderstood specs, not anything language specific.

    When the client asked why they were paying extra for delay, bloat, and slowness, we explained that Ada was their requirement, not ours.

  5. Re:Back to Ada? by Anonymous Coward · · Score: 4, Insightful

    So wait, you designed it in C, but then blame ADA for the bugs... uhm, why? Of course ADA might be half the speed, it requires a lot more specifications and safety checks. Which require proper planning. Something designed properly in C can be done in ADA, but proper design in ADA would be very difficult to do in C. You did not use ADA, you poorly translated a C design and then blamed ADA for it.

  6. Re:Back to Ada? by Anonymous Coward · · Score: 2, Insightful

    Actually you answered your own problems. C does not have extensive type checking and logic error checking as ADA does. It's obvious your teams were not well versed in using ADA, otherwise you would have done proper design and found the "logic and spec" errors. I would wager that if you finished the complete design in C those bugs would also exist.

  7. Nsa by Ubi_NL · · Score: 3, Informative

    When the nsa had their code open sourced, everone got upset...

    --

    If an experiment works, something has gone wrong.
  8. Re:For how much longer though? by LostMyBeaver · · Score: 2

    There is nothing to nix.

    I just peeked at every project on code.gov... there was nothing there. Just junk that was like "who gives a crap... dump that crap there to get them to shut up."

    Code.gov is a total fail.

  9. Re:Back to Ada? by LostMyBeaver · · Score: 4, Informative

    I did some stuff back in the early 90s with ADA. I didn't have any problems with performance since I took the time to optimize my code and ADA was really just doing a lot of checks I already would have done otherwise, as a control freak, I would regularly read the generated assembler to learn what checks were occurring and would add more if needed. ADA was nice in the sense that I didn't have to write all those checks myself but was bad because it meant there were occasions I would forget to check the generated code and then assume that the compiler was checking something it wasn't.

    The main problems with ADA often were that the tool chains were absolutely shitty. There was also the issue that even with practice, there were times where you would find yourself wondering why your code wouldn't compile... and when you were working mostly from make files and vi as your development environment and you were logged into a shell account to do it... from a DOS terminal like telix or telemate, it was just hopeless. If there were modern tools like Visual Studio, Eclipse, etc... there would be no real problems.

    That said, ADA was just another functional programming language and while it did have much prettier support for things like structures, most ADA code was just plain ugly. Again, this was because of tools. I've always programmed heavily in an object oriented style. So, where today I would make a class and the class would be the only thing within a file, back then, if I were programming C, I would make a structure in a header file and then write the code to operate on the structure in a C file. I almost never wrote functions which didn't require "the object" as the first parameter. ADA was not a good language for this style of coding. The few times I tried this method of programming, I would sometimes end up making object stores and passing object indices instead of structures to functions because the cost of passing a structure was insane.

    So that being said, ADA wasn't usable for anything other than a few hundred lines of quick and dirty stuff. I couldn't imagine being forced to implement a full system in ADA. And I did learn the language well enough to use it. I could honestly see writing better code in COBOL than in ADA. The "safety" came at too much of a cost in functionality.

  10. Why isn't it ALL open??? by brunes69 · · Score: 2

    I have never understood why source code and it's accompanying materials developed under contract for the government (funded by taxpayers I might add) is not *mandated* to be open source.

    The public has no idea how much IP is locked up in the coffers of FFRDCs because of this archaic policy.