What you are describing is the status quo, but it is certainly possible for government to fund software development. As William points out in his presentation, it is already being done indirectly through software license purchases. I think it would be interesting to see what academics could achieve if they were offered some modest grants aimed at developing and maintaining viable open-source alternatives to all commercial software for which government is currently paying license fees.
I sought government funding for Axiom. One of the direct comments in feedback was that the government does not fund software that competes with a commercial product. There were other issues (such as a lack of professional accounting for handling grants) but this issue could not be overcome.
> the government does not fund software that competes with a commercial product
That is such a ridiculous constraint. Do they mean that, if I start selling tapped water for $100 a gallon, the government can not provide its citizens with an alternative? Obviously it both can and does in many important areas (water, education, electricity, roads and defence to name a few). The decision on whether government should be active in a market should be based on an analysis of the benefits it can bring to society – be it savings, innovation or equality of opportunity.
"I think it would be interesting to see what academics could achieve if they were offered some modest grants aimed at developing and maintaining viable open-source alternatives to all commercial software"
I think this would be a waste of academics. Commercial software is not expensive (mostly) because of some secret sauce. It's because delivering a functioning product requires lots of work that is thoroughly mundane and repeatable.
Analogously, one could employ chemists to bottle coca cola or metallurgists to package hammers but that would be just a waste of everyones assets.
Should government make it's own pencils? I don't think so.
Good products require lots of work that is hard to be intrinsically motivated of.
Academics already perform a lot of repetitive and mundane work (e.g. teaching, writing grant applications). A fallacy of the current academic climate is that academic results must be novel. This has lead to pathological behaviour where researchers flood publication venues with incremental results portrayed as breakthroughs. Performing a public service such as maintaining a widely used software package is at best seen as a second-tier achievement.
I am not suggesting that the government should be involved in making pencils. But I do think funding independent development of open tools for research, education and other government-funded work is a good idea.
To support my claim, compare the cost of healthcare in the US, where the government relies on the industry to keep medical products and services cheap, with the price in countries where the government provides its citizens with an alternative.
Another issue is "sustained development". I collected over 100 "computer algebra programs" on a CD. I distributed this at a computer algebra conference. All 100+ were academic attempts, usually by small groups or one person. They are amazing programs that will never get widely used.
Mathematics, Maple, Axiom, Maxima and other programs are large, multi-person, multi-year, multi-million dollar efforts with contributions by PhD-level researchers.
Axiom, I estimate, has about 300 person-years, over many years at IBM Research, with an estimated cost of 42 million dollars. People who invented new areas of computational mathematics were primary contributors. IBM sold Axiom and it was a commercial competitor to MMA and Maple. It is now open source (due to the good graces of the Numerical Algorithms Group, NAG)
Magnus, which I was also involved in, is much smaller and very specialized. It was originally developed by government grants but development fell off once that ended. Magnus was developed at City College of New York.
Based on that experience I feel that computational mathematics development requires company backing to develop any well-maintained and well-documented system.
The downside is that companies tend to die in less than 15 years:
"The average lifespan of a company listed in the S&P 500 index of leading US companies has decreased by more than 50 years in the last century, from 67 years in the 1920s to just 15 years today, according to Professor Richard Foster from Yale University."
and that's for LARGE companies. Small companies die quicker.
So what happens to computational mathematics when Wolfram Research (Mathematica) or Cybernet Systems (Maple), etc. dies? Does your MA* research die? Is there suddenly a huge black hole in the middle of computational mathematics? Can you no longer reproduce your results?
Mathematica won't be open sourced when WR fails because software is now considered a company asset. Even if it was open sourced, my contacts tell me that the internals are not well documented. Computational mathematics is REALLY hard to reverse engineer.
Somehow we need to make it possible to maintain, modify, and extend existing systems. This requires a few things, in my opinion.
We need academic (and grant funded) programs that specifically target computational mathematics. The goal is to develop a stream of people who have the necessary background, not to develop a new system.
We need to deeply DOCUMENT the ALGORITHMS so they can be reproduced in any of the existing systems. Theory is fine but programming involves design tradeoffs, such as a choice of representation, available functions, test suites, boundary conditions, reference results, etc. There are a dozen equations for things like the gamma function but some are better than others for implementation.
We need government focus. Computational Mathematics is vital and is fundamental research. We need a "summer of mathematics" workshop that involves all of the players presenting a reasonably unified approach. OpenDreamKit in Europe is doing something big about it now. The U.S. should step up and participate in some official capacity. Computational mathematics benefits everyone and should be an international effort.
I hope that SageMath can bring these things into focus and lead us to a better place.