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.
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.
For how much longer though? (Score:2, Insightful)
Re: (Score:1, Funny)
Trump can spell better than you, though.
More like (Score:1)
Does anyone bother reading it and does anyone care?
Re: (Score:2)
People took notice when the NSA & CIA decided to open source their tools.
Re: (Score:3)
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.
Mostly Javascript for US Government Web Apps (Score:4, 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.
Re:Mostly Javascript for US Government Web Apps (Score:5, 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?
Re:Mostly Javascript for US Government Web Apps (Score:5, 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.
Re: (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...
Re: (Score:2)
It's not a new thing and a good thing to continue (Score:3)
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.
Re: (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
Re:Mostly Javascript for US Government Web Apps (Score:4, 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.
Re: (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...
Re: (Score:3)
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
Re: (Score:3)
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.
Re: (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.
Re: Mostly Javascript for US Government Web Apps (Score:1)
Re: (Score:3)
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!
Back to Ada? (Score:2)
Re:Back to Ada? (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.
Re:Back to Ada? (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.
Re: (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.
Re: (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.
Re: (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.
Re:Back to Ada? (Score:5, Informative)
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.
Re: (Score:1)
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
Re: (Score:2)
Pascal made it out as Object Pascal, and had a long life in various Borland, etc. products.
Because (Score:2)
taxpayer money funds its development?
Re: (Score:2)
Taxpayer money funds drilling on US lands, but we still have to pay for gas.
Re: (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... [rosenlaw.com]
Re: (Score:2)
Re: (Score:2)
Save the government money? (Score:2)
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)
When the nsa had their code open sourced, everone got upset...
Re: (Score:1)
wanna cry about it a little more?
Re: (Score:2)
Ok, I'll bite (Score:2)
Because the Russians can read it anyway?
Why isn't it ALL open??? (Score:3)
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.
Re: (Score:2)
"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.
keep it out of the news (Score:2)
Right (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 .
"At least 20%?" (Score:2)
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
FOSS intelligence tools for sensemaking etc. (Score:2)
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