As far as your idea of funding open source only projects, that already happens in universities. Most of the good open source project you probably use comes from these universities that get federal funding.
As far as your idea of funding open source only projects, that already happens in universities. Most of the good open source project you probably use comes from these universities that get federal funding.
Yes universities are a good source for OSS, but the obvious problem is that they're restricted to university students and faculty. Plus academic bureaucracy is probably not conducive to effective software development.
Anyways, I think the kind of thing you're talking about already exists in a more general way - government contracts. The government decides they have a problem, comes up with a list of specifications, and bidding on the proposed solution is open. The most qualified company that solves the problem for the least amount of money or in the shortest amount of time wins. (At least, that's how it's supposed to work.)
Many contractors that develop for the government, and bid on these contracts, already use FOSS because it gives them a competitive edge when bidding. For instance, some versions of the FBCB2, a communications system for humvees and other military vehicles, run on Red Hat: http://en.wikipedia.org/wiki/FBCB2 and http://74.125.95.132/search?q=cache:LLwHBOS8JmYJ:www.cjmtk.c...
I think that academia and savvy businesses are really where it's at with open source. As bad as academic bureaucracy can be, government bureaucracy is in my experience much, much worse.
So, all things considered, I'd think that even if the government had a direct interest in improving open source software, the best way to do it is through more funding for education - get more people to school, and get more people programming.
Government contracts are nice for solving certain problems, where you have a narrow goal to achieve, but don't address other problems, such as those that call for a more general, trial-and-error, research type approach. For example, say you wanted to work on Emacs, or the Leo editor. I doubt you could get a government contract to do that under the current system, despite the fact that your work has the potential to benefit all the programmers who use those programs.
You may be right about academia being the best way to go. I myself dropped out of college after two years. It felt like a big waste of time to me. You have to do a lot of irrelevant work and it's expensive as hell. The prospect of enduring another two years of that, followed by a Masters program and then a PhD just makes me cringe.
I don't see any reason why we can't create an organization with minimal bureaucracy that allows hackers to do their thing.