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.

58 comments

  1. For how much longer though? by bjwest · · Score: 1, Insightful

    I expect Trump to nix this as yet another of Obama's "bad policys".

    --

    --- Keep the choice with the user..
    1. Re:For how much longer though? by Anonymous Coward · · Score: 0

      Well that's good he's set expectations and you're now knuckling under.

      #TheLimpWristedResistance

    2. Re:For how much longer though? by Anonymous Coward · · Score: 0

      obamacode, there is no way trump would approve it.

    3. Re:For how much longer though? by Anonymous Coward · · Score: 1, Funny

      Trump can spell better than you, though.

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

    5. Re: For how much longer though? by Brockmire · · Score: 0

      There is zero evidence to back that joke up. Anecdotally, I've never seen a Trump tweet without a grade school type error. He makes words up!

  2. 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 Anonymous Coward · · Score: 1

      "code isn't written by the US Government"
      The US Government is the ultimate general contractor for all the various technology initiatives they take ownership of. The government doesn't build jets, satellites, air craft carriers, space vehicles, advanced software, or any of the many other technical related initiatives that the government commits to doing. The government pay scale doesn't come close to attracting the type of people needed to build the technology that the government uses.

      And of course they are not going to open source any of code used in the security agencies. Just like Google and all the other companies who only open source code things that cannot help their competitors.

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

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

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

    6. Re:Mostly Javascript for US Government Web Apps by Anonymous Coward · · Score: 1

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

      Yes, the US Government even developed a common programming language to make code more re-useable, as at the time each of the armed services was doing a lot of work in one or two languages of their own (for example, the Air Force liked JOVIAL).

      Unfortunately, the Ada initiative never really gained the sort of traction that COBOL did. In its early days, just compiling Ada could bring a mainframe to its knees. These days, it will run on a Raspberry Pi, but too late...

    7. 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
    8. Re:Mostly Javascript for US Government Web Apps by Anonymous Coward · · Score: 1

      ... and then let you own it, contractual requirements include ...

      Please learn how to English properly. You incorrectly wrote a comma there should should be a semicolon or a period. Your sentence should read:

      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.

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

    10. Re:Mostly Javascript for US Government Web Apps by Anonymous Coward · · Score: 1

      Many projects are using Javascript because they use it to do stuff on the front end. Though, there are other things that are interesting too. just don't stop looking through at the first couple departments.

      However, I'm not sure why they put a repo which requires username & password on there as "open source"? All DoT projects are required username & password...

    11. Re:Mostly Javascript for US Government Web Apps by maestroX · · Score: 1

      Where is this cigar REST API?

    12. Re: Mostly Javascript for US Government Web Apps by Brockmire · · Score: 1

      I don't quite know that to be 100%. I've heard a contract payment requirement was to deliver X working demos, source code not specified to me. Note, I'm not privy to contracts... In PowerPoint slides, I see the blocks the company is contributing to a multiple contractor project as 'company owned' and similar with the other contractor IP. If we need other contractor code, we have to work that out, we can't just say, "government owns it so you gotta share it". Since the company was brought on to do similar as a previous project, it makes sense to rehire the ones with previous experience. I'm not aware of the previous project's source code being made available to competitors bidding on the work. None of the copyrights in source file ever mentions the government. I'd say the rules vary for different programs and security clearance level.

  3. Back to Ada? by AHuxley · · Score: 1

    The US mil tried to save money and advance with Ada. The contractors soon get back to projects using the kinds of code they wanted to submit and be paid for.

    --
    Domestic spying is now "Benign Information Gathering"
    1. 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.

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

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

    4. Re:Back to Ada? by Anonymous Coward · · Score: 1

      We saw lots of bloat and slowness in Ada programs as well, but that wasn't the reason our DoD customers gave up on it. The main issue was the length of time it took to get developers fluent in Ada. Even experienced programmers took 2 or 3 years (or more) to get productive enough to be really useful. Before that they were just mentally translating C/C++/Java or whatever they knew into Ada syntax.

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

    6. Re:Back to Ada? by Anonymous Coward · · Score: 1

      ... save money and advance with Ada ...

      It was the first attempt at tool standardisation across all departments. From the posts here, it seems Ada spent too much time doing run-time checks, had a poor development tools, wasn't used by programmers who understood Ada data-structures.

      Ada was touted as empowering the military to write software with a "million lines" of code. There was never any talk of anyone else using it, which was probably the primary reason for its downfall. Earlier attempts to control the data, such as Pascal and Modula, never left the university. Repeating that mistake may have been a secondary reason. As history shows, the paradigm of programming shifted to object-orientated languages instead.

    7. Re:Back to Ada? by Dog-Cow · · Score: 1

      Pascal made it out as Object Pascal, and had a long life in various Borland, etc. products.

    8. Re:Back to Ada? by Anonymous Coward · · Score: 1

      Unless other programmers are using the language, it does not pay to dump effort into it. You get increased development on additional libraries that you need by coordinating with a larger community. Ada is a huge waste of time, money, and manpower.

  4. Because by Anonymous Coward · · Score: 2

    taxpayer money funds its development?

    1. Re:Because by Anonymous Coward · · Score: 0

      taxpayer money funds everything yet there are still plenty of government secrets.

    2. Re:Because by PopeRatzo · · Score: 1

      taxpayer money funds everything yet there are still plenty of government secrets.

      Taxpayer money funds drilling on US lands, but we still have to pay for gas.

      --
      You are welcome on my lawn.
  5. It's called PUBLIC DOMAIN by Anonymous Coward · · Score: 0

    which is the ONLY freedom there is. Anything else is a lie.

    1. Re:It's called PUBLIC DOMAIN by Anonymous Coward · · Score: 1

      which is the ONLY freedom there is. Anything else is a lie.

      Please read what's posted at the following link "Why the public domain isn't a license"
      http://www.rosenlaw.com/lj16.h...

  6. correction: by nimbius · · Score: 1

    Why the us government open sources less than a quarter of its code.

    --
    Good people go to bed earlier.
    1. Re:correction: by LostMyBeaver · · Score: 1

      And what it does open source is basically just a bunch of crappy utilities that they don't care about.

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

  8. Save the government money? by Tony+Isaac · · Score: 1

    The way government works, the source code will be there available for reuse. But when another agency wants to do something similar, one of two things will happen:
    1) They will commission new code to be written anyway, or
    2) The government contractor will reuse the code and still charge the government full price, as if they developed it from scratch.

    It's still a good idea, even if they can't figure out how to spend less money.

  9. More like by Anonymous Coward · · Score: 1

    Does anyone bother reading it and does anyone care?

    1. Re:More like by gnick · · Score: 1

      People took notice when the NSA & CIA decided to open source their tools.

      --
      He's getting rather old, but he's a good mouse.
  10. 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.
    1. Re:Nsa by Anonymous Coward · · Score: 0

      not everyone.. just the nsa

    2. Re:Nsa by darkain · · Score: 0

      wanna cry about it a little more?

  11. This just in! by Anonymous Coward · · Score: 0

    The government publishes 20% more ways to print hello world, track users!

  12. Messy repos by TimMD909 · · Score: 1

    These projects need some linting added to their CI setup. They got some n00bs on the team who can't keep their whitespace under control.

  13. Double-edged sword by Anonymous Coward · · Score: 0

    A lot of times, people might prefer to write their own code instead of attempting to reuse someone else's bullshit... a lot of the time, you'll spend just as much effort reworking very old/unmaintained files into something worthwhile.

  14. Ok, I'll bite by Hognoxious · · Score: 1

    Because the Russians can read it anyway?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  15. 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.

    1. Re:Why isn't it ALL open??? by Anonymous Coward · · Score: 0

      A lot (most) of the source code developed by (or for) the US government is considered public domain and is available with a FOIA request. Some agencies publish their source whether a FOIA request was received or not. Code that is related to the security of the systems is not published for obvious reasons. Example, the VA medical system has been available on line for 20 years or so (https://www.osehra.org/content/va-enterprise-vista-standard). And before y'all start whining about it being 'M' code note that the VA system was enterprise-wide and with integrated imaging far before the rest of the industry. Disclaimer: yeah, I worked on some of this but not the 'M' stuff.

    2. Re:Why isn't it ALL open??? by hackel · · Score: 1

      "Obvious reasons" being that they rely on security through obscurity rather than employing actual, modern security practices to protect our data. It's completely unacceptable not to release that code as well.

  16. keep it out of the news by Holi · · Score: 1

    I can't see this lasting if it gets press. Too many things are on the chopping block.

    --
    Sorry, teleporters just kill you and then make a copy. A perfect, soul-less copy.
  17. Code.gov by Anonymous Coward · · Score: 0

    I checked it out when they announced the gov libraries and web standards a while back. Usually I'm a critic and pessimist when I see initiatives like this from govs and companies. I thought they actually put together some high quality stuff, was impressed. Hope they continue the program because it has a lot of merit and the designers for those standards obviously worked really hard on the designs and documentation. I applaud their efforts. If you haven't checked out code.gov yet do it, I think you'll find yourself pleasantly surprised (like I was) with what they've done. Still plenty of work for them left to do and expand on their programs.

  18. Because it makes sense by Anonymous Coward · · Score: 0

    The code belongs to the people, just like the land and parks and public buildings

  19. Ada got packages right. by Anonymous Coward · · Score: 0

    Java and C++ both fail at this.

  20. Right by TheSouthernDandy · · Score: 1

    "Code.gov is here to stay."

    Until the funding source to maintain the site runs dry, or vested interests persuade certain Congressional parties to defund it.

    We had developed software under the DOE SciDAC program, which was distributed via an Outreach site. When funding got tight, that site was the first to go. Last I checked, the lone guy holding the line was keeping it up until the server died, at which point it was gone for good. If you want persistence, better make sure not to rely on a single point of failure. And these days, any .gov domain is prone to failure and/or corruption.

  21. "At least 20%?" by hackel · · Score: 1

    20% is an insult. We are PAYING for the development of this software, and ALL of it must be released publicly, including and especially anything developed by the military. We should also have formal agreements in place to collaborate with other nations. 99% of the software a country needs to run itself is the same. We need to work together internationally toward that common goal. This all just makes me angry. Saving money inter-agency is one thing, but the cost savings inter-nation would be an order of magnitude greater.

  22. DOE offices declared open source policy in 2002 by Anonymous Coward · · Score: 0

    A long time ago, the Department of Energy's Office of Advanced Scientific Computing Research (in the Office of Science) and the Office of Advanced Simulation and Computing (part of NNSA) jointly set down a policy that software (which was unencumbered by being classified, under export control, etc.) was to be released using OSS licenses. So this is nothing new for some parts of the government.

    At that time it was widely understood that (1) the software was paid for by US taxes, and should be widely available; (2) the DOE research units (laboratories, funding at universities) benefited greatly from the availability of OSS, and full participation was to the benefit of OASCR and ASC.

    This did not prevent the various technology transfer operations from continuing to try to monetize software products, but at least there was pushback available via this policy.

    https://science.energy.gov/~/media/ascr/pdf/research/docs/Doe_lab_developed_software_policy.pdf

  23. FOSS intelligence tools for sensemaking etc. by Paul+Fernhout · · Score: 1

    Agreed on the need to open source much more government code -- although one can discuss limited exceptions for security reasons which is a slippery slope.

    Even for security-related intelligence tools, open sourcing much more makes a lot of sense for both national and international reasons as I explained here in 2010 in an OpenPCAST proposal:
    http://web.archive.org/web/201...

    OpenPCAST was an Obama administration initiative, and it seems to be currently inaccessible under the Trump administration, so here is the full text from there with updated links.

    ====
    The need for FOSS intelligence tools for sensemaking etc.

    This suggestion is about how civilians could benefit by have access to the sorts of "sensemaking" tools the intelligence community (as well as corporations) aspire to have, in order to design more joyful, secure, and healthy civilian communities (including through creating a more sustainable and resilient open manufacturing infrastructure for such communities). It outlines (including at a linked elaboration) why the intelligence community should consider funding the creation of such free and open source software (FOSS) "dual use" intelligence applications as a way to reduce global tensions through increased local prosperity, health, and with intrinsic mutual security.

    I feel open source tools for collaborative structured arguments, multiple perspective analysis, agent-based simulation, and so on, used together for making sense of what is going on in the world, are important to our democracy, security, and prosperity. Imagine if, instead of blog posts and comments on topics, we had searchable structured arguments about simulations and their results all with assumptions defined from different perspectives, where one could see at a glance how different subsets of the community felt about the progress or completeness of different arguments or action plans (somewhat like a debate flow diagram), where even a year of two later one could go back to an existing debate and expand on it with new ideas. As good as, say, Slashdot is, such a comprehensive open source sensemaking system would be to Slashdot as Slashdot is to a static webpage. It might help prevent so much rehashing the same old arguments because one could easily find and build on previous ones.

    OpenPCAST itself could benefit through using such tools.

    Such technologies have already been pioneered by SRI and others in SEAS, Angler, and the broader Genoa II project.

    Related by (the, sadly, late) Tom Armour on Genoa II:
    http://web.archive.org/web/200...

    And a public memorial that mentions Tom Armour's loss to brain cancer (cancer being one of the biggest real killers of US Americans historically, along with strokes, heart disease, and diabetes):
    http://web.archive.org/web/201...

    If only those intelligence systems had also been able to help prevent or treat brain cancer (as well as other disasters, from the plague of obesity through the still ongoing BP Gulf oil leak disaster).

    For example, we are beginning to understand how curing vitamin D deficiency and eating more fruits, vegetables, and legumes can help with prevention of many cancers and a host of other diseases, such as through the work of Dr. John Cannell and Dr. Joel Fuhrman and others in connecting the dots about vitamin D and nutrition and health. But why should such dedicated people trying to help all Americans (and other people) not have access to the best sensemaking tools tax dollars are creating to help with their work?

    So, beyond national security implications, better FOSS intelligence tools

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.