Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Open Source United States Government

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

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.
This discussion has been archived. No new comments can be posted.

Why The US Government Open Sources Its Code

Comments Filter:
  • I expect Trump to nix this as yet another of Obama's "bad policys".
    • Re: (Score:1, Funny)

      by Anonymous Coward

      Trump can spell better than you, though.

    • by Anonymous Coward

      Does anyone bother reading it and does anyone care?

    • 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.
  • by mykepredko ( 40154 ) on Sunday May 21, 2017 @08:45PM (#54461041) Homepage

    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.

    • by ShanghaiBill ( 739463 ) on Sunday May 21, 2017 @08:54PM (#54461065)

      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?

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

        • by Anonymous Coward

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

        • Where is this cigar REST API?
    • 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.

    • by Anonymous Coward

      "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

    • by TheLongshot ( 919014 ) on Sunday May 21, 2017 @11:45PM (#54461361)

      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.

      • by Anonymous Coward

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

    • 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 suspec

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

      • by Anonymous Coward

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

      • 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 simila
    • by hackel ( 10452 )

      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!

  • 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.
    • Re:Back to Ada? (Score:5, Informative)

      by ShanghaiBill ( 739463 ) on Sunday May 21, 2017 @09:14PM (#54461131)

      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.

      • Re:Back to Ada? (Score:4, Insightful)

        by Anonymous Coward on Sunday May 21, 2017 @10:27PM (#54461255)

        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.

        • Re: (Score:2, Insightful)

          by Anonymous Coward

          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.

        • by Anonymous Coward

          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.

      • by Anonymous Coward

        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.

        • Re:Back to Ada? (Score:5, Informative)

          by LostMyBeaver ( 1226054 ) on Sunday May 21, 2017 @11:58PM (#54461383)
          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.
    • by Anonymous Coward

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

      • by Dog-Cow ( 21281 )

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

  • by Anonymous Coward

    taxpayer money funds its development?

  • Comment removed based on user account deletion
  • 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.

  • Nsa (Score:4, Informative)

    by Ubi_NL ( 313657 ) <joris.benschopNO@SPAMgmail.com> on Sunday May 21, 2017 @11:08PM (#54461309) Journal

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

  • Comment removed based on user account deletion
  • Because the Russians can read it anyway?

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

  • I can't see this lasting if it gets press. Too many things are on the chopping block.
  • "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 .

  • 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 o

    • 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... [archive.org]

      OpenPCAST was an Obama administration initiative, and it seems to be currently inaccessible under the Trump administration, so here is th

Keep up the good work! But please don't ask me to help.

Working...