Given enough time, open-source will win. Just think about how more and more people are programming and how that will draw them to open-source.
This is not always the case. Open source projects also die.
We need to improve the funding situation. I have no idea how to do that, but we really need to tackle that problem.