Live data from Hacker News

Petition: Public Money Should Produce Public Code

creativecommons.org

21–30 of 55 posts

Re: Petition: Public Money Should Produce Public Code

#21

One counter argument: national taxes shouldn't be used to produce code that could benefit other countries, unless that is recognised as a kind of international aid. (Not my opinion, but one I can imagine from certain political quarters)

Care to elaborate on reasoning? National taxes IMO should be used to (produce code that) benefit citizens of that nation. Who else benefits as a consequence is irrelevant.

Doing this efficiently, especially in software with its low replication costs, often means opening your systems for the world to use (fix, improve, buy), but even if not, considering the benefit of others as a detriment to you is almost never optimal -- SW engineering is not a zero sum game.

Re: Petition: Public Money Should Produce Public Code

#22
post #15

I've seen quite some code which was paid for by public money. If this would actually happen it would mostly just expose a tremendous shitheap of "enterprise" code created by consulting firms whose entire business model is based on delivering and "maintaining" overengineered crap with huge maintenance costs.

> If this would actually happen it would mostly just expose a tremendous shitheap of "enterprise" code created by consulting firms whose entire business model is based on delivering and "maintaining" overengineered crap with huge maintenance costs.

But that's a good thing to expose too. Might even provide a deterrent to those that are in the habit of producing bad and over-engineered work as it'll be public and potentially affect their reputation. And even then, we can probably still use that code and learn from it. Just because bad code is written with public money doesn't mean it should be kept private.

Re: Petition: Public Money Should Produce Public Code

#23
The intent is good and I hope we find a good way to implement this.

I do see pitfalls though: I would separate ownership (i.e., one cannot patent the code developed with public money -- IMO a good idea) and visibility (showing the code on request -- IMO a very dangerous one).

My big concern is formalizing things that should be left informal. For example, in applied research, we usually build a number of throwaway prototypes before the real system. Those quick prototypes and proofs of concept are often ugly in many ways. If I have to expose those to the world I have to smooth sharp edges (HR -- "we cannot get this outside"), which means instead of building 10 throwaways I can only build 2-3.

Re: Petition: Public Money Should Produce Public Code

#24
post #22
post #15

I've seen quite some code which was paid for by public money. If this would actually happen it would mostly just expose a tremendous shitheap of "enterprise" code created by consulting firms whose entire business model is based on delivering and "maintaining" overengineered crap with huge maintenance costs.

> If this would actually happen it would mostly just expose a tremendous shitheap of "enterprise" code created by consulting firms whose entire business model is based on delivering and "maintaining" overengineered crap with huge maintenance costs. But that's a good thing to expose too. Might even provide a deterrent to those that are in the habit of producing bad and over-engineered work as it'll be public and poten…

Agreed, however I think it is unavoidable simply because demand for cheap code is many times higher than demand for good code. And even if it was the other way around, I don't think the market would be able to provide it.

Re: Petition: Public Money Should Produce Public Code

#25
post #23

The intent is good and I hope we find a good way to implement this. I do see pitfalls though: I would separate ownership (i.e., one cannot patent the code developed with public money -- IMO a good idea) and visibility (showing the code on request -- IMO a very dangerous one). My big concern is formalizing things that should be left informal. For example, in applied research, we usually build a number of throwaway pro…

> in applied research, we usually build a number of throwaway prototypes before the real system. Those quick prototypes and proofs of concept are often ugly in many ways.

So basically you just do normal development? In the commercial world, one of those prototypes usually becomes the production code.

Re: Petition: Public Money Should Produce Public Code

#26
post #21

One counter argument: national taxes shouldn't be used to produce code that could benefit other countries, unless that is recognised as a kind of international aid. (Not my opinion, but one I can imagine from certain political quarters)

Care to elaborate on reasoning? National taxes IMO should be used to (produce code that) benefit citizens of that nation. Who else benefits as a consequence is irrelevant. Doing this efficiently, especially in software with its low replication costs, often means opening your systems for the world to use (fix, improve, buy), but even if not, considering the benefit of others as a detriment to you is almost never optim…

> SW engineering is not a zero sum game

No, but some stakeholders will see it as such.

Re: Petition: Public Money Should Produce Public Code

#27
I'd love to see this be adopted in the US, but I'm not holding my breath.

There's an example of this in my field that upsets me quite a bit. A set of tools were developed using public funds through federal research grants and other similar mechanisms, with the express purpose of making free alternatives to private tools available. After the project was successfully completed, the leaders of the project decided to start charging hundreds of dollars for "maintenance" of the toolset, which would only run on Apple devices no less. (For some tools, the cost is substantially less than private alternatives; for others it's more expensive or about the same.)

My concern about this isn't so much that they started charging money to maintain the project per se, after federal grants ran dry. My concern is that the product development costs were already paid for using taxpayer dollars, and that if it were open-sourced, it would be almost as usable, if not more usable (if it were ported to other non-Apple platforms), and free.

The other area of this that I find upsetting are these "small business grants" that basically use taxpayer funds for VC software development, with no public return. Government pays for software development, and then the developer gets to charge for it later.

Re: Petition: Public Money Should Produce Public Code

#28
post #12
post #8

I hope this campaign gets some traction. Closed source is wasteful, and even more so to fund it with public money. Software development today is quite inefficient. It mainly suffers from two problems: duplicated effort, when a solution already exists, but it is inaccessible, and misdirected effort, when a problem is solved in a way that doesn't facilitate preparing other, possibly hardly-related, solutions in the fut…

> misdirected effort, when a problem is solved in a way that doesn't facilitate preparing other, possibly hardly-related, solutions in the future Would you be able to clarify what you mean by this? In my experience, trying to write all-encompassing software quickly leads to issues with actually ever getting anything out the door in a working state - better to solve your particular problem and generalise later as need…

I meant the opposite of all-encompassing software. What I mean is largely summed up by the linked Wikipedia article, but I'll give a go at explaining it in my own words.

Given a problem, a solution can be found that explicitly composes simple routines in simple ways, or a solution that may do the same thing implicitly, but only exposes an in and an out. The first solution can be said to be following the Unix philosophy; the second follows the monolithic design [0] paradigm. The first solution is superior, in that it is "simple, short, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators" (quote from Wikipedia).

Generally, creating something new in the Unix style goes like this: I have `X`, I want to arrive at `Y`. The process can be summed up as a sequence of these transformations: `f1`, `f2`, `f3`. So the solution can be said to look like this: `Y = X | f1 | f2 | f3`. `f1` and `f3` are already available, possibly created by someone else while solving an entirely different problem, but the same subproblem). That means implementing `f2`. To implement this missing subroutine, the process is the same.

So the benefit of this philosophy is that it leads to pooling of problem solving resources (i.e. people), by allowing multiple problem solvers to arrive at their unique solutions by solving common subproblems (writting common subroutines).

[0] https://en.wikipedia.org/wiki/Monolithic_application

Re: Petition: Public Money Should Produce Public Code

#29
post #15

I've seen quite some code which was paid for by public money. If this would actually happen it would mostly just expose a tremendous shitheap of "enterprise" code created by consulting firms whose entire business model is based on delivering and "maintaining" overengineered crap with huge maintenance costs.

Indeed. I work at a public institution. Our department is paid by many other institutions around the country (networks). Our code is scary and terrifying. It's 95% perl5. We run bare metal on nearly everything. We have only the barest notions of a testbed. Put it this way: if we were required to release our code, nobody would use our services. Frankly, I'm surprised it runs at all. (BTW, other horror stories.. $DB_pa…

I work in public sector too. Some of my code could definitely released (hell, we know about tests, we have thousands of them :-))

For example, we double check a lot of persons' "status" in our programs. We do these checks to ensure that when someone requests help (for example, financial help) for these persons, they are entitled to receive that help. Now that "someone" is a bunch of other institutions as well as a bunch of private sector operators. They would benefit to see what sort of checks we do. That would help them to understand why we sometimes refuse to help some persons, they could learn from our stuff. That would also help other organisations (e.g. activits/NGO) to criticize the quality of our code (because what we do is quite connected to interpreting the law, thus a second opinion would definitely be useful).

Although I'm all for those two benefits, one has to realize that they are politically incorrect. The first one because, by keeping knowledge you just make your institution more important. The second one because a public institution must give the impression that it is perfect (because you run on public's money...).

edit: (oh and since "it" has happened in the past : this my own opinion, not reflecting the one of my employer)

Re: Petition: Public Money Should Produce Public Code

#30
post #25
post #23

The intent is good and I hope we find a good way to implement this. I do see pitfalls though: I would separate ownership (i.e., one cannot patent the code developed with public money -- IMO a good idea) and visibility (showing the code on request -- IMO a very dangerous one). My big concern is formalizing things that should be left informal. For example, in applied research, we usually build a number of throwaway pro…

> in applied research, we usually build a number of throwaway prototypes before the real system. Those quick prototypes and proofs of concept are often ugly in many ways. So basically you just do normal development? In the commercial world, one of those prototypes usually becomes the production code.

Yes; but I am just saying that putting a bright spotlight on intermediate steps might stifle quick prototyping.
Post reply on HN