Like all great things open source software started off with good intentions. I give, you give, we all give so the world can receive. The amazing thing about open source software is how far it’s come. Open source provides us the foundation for things we take for granted from programming languages, web servers, web frameworks, utilities, operating systems and much more. Lately it seems that open source contributions are dwindling no matter what metric you go by. The population of software engineers is surely increasing, though supply cannot keep up with the ever growing demand as our reliance on technology increases. I think the crisis facing open source contributions is a combination of many forces and not just a lack of commitment or passion (although it surely plays a role).
One factor is the lack of open problems or deficits. If you look at a lot of the innovations in open source coming out of Silicone Valley a lot of the problem domains involve cloud computing, big data, distributed memory, etc. These are problems that probably existed before but not on the scale we see now with the emergence of giants like Google and Facebook. Their requirements are coming hard up against the physical laws governing computers such as disk I/O. However, for the most part, the typical start-up can be bootstrapped by cobbling together open source offerings on a commodity server or better yet starting with a low budget shared hosting plan that gives you all the freedom of your own actual server with a fraction of the headaches.
A lot of the most pressing problems are solved for the majority of developers and even abstracted out into simple to use tools, libraries, or frameworks that most will not venture to peek under the hood because they can readily solve most issues by searching for the answer on-line. The wealth of information available and the collective experience gives little motivation for developers to look at the source code and figure things out for themselves or even try to make their own solution before resorting to the cheat sheet. This isn’t to say that the quality of developers is declining as a whole but like everything else in life I think we’re seeing a growing gulf between able hackers and your average corporate coder who will happily continue cranking out derivative works for the rest of their career (maybe not even learning more than one or two frameworks or languages).
Also, the state of many large, established open source projects make contributing hard (at least for new or non-hacker developers) with a large code-base and history. Getting familiar with such a project takes a serious commitment and might be beyond the scope of an enthusiast without some kind of guidance.
The more pressing issue of free software is that the law of economics is at work. The collective tip jar of open source will never meet the lofty ideals that open source promoters hope to live by. Open source software probably constitutes the purest form of public goods that even economists did not foresee when they came up with the concept. Open source software is nearly infinitely replicable and can be distributed at near zero costs. For all the contributions to open source there are much more free riders. So far, the only proposed solutions to come out of the community are trickier licences. Frankly, I think complex licencing only serves to steer companies away from using certain projects since it introduces legal liabilities or risks that management neither has the time or in some cases ability to properly evaluate.
The only long-term way to really keep contributions to open source vibrant is tax. Although the collection and distribution of such a tax would be hard to design and implement, it could be made simple with one clause: taxes can be paid in kind with open source contributions to recognized projects at a substantial bonus (similar to how donations to legitimate non-profit organizations can be deducted). Personally, I think it would be cool to have a quasi-public research lab completely dedicated to open source software development and supported entirely by such tax revenue and staff seconded from the best tech companies in lieu of monetary payment. It would be something like Google’s Summer of Code only 24/7 with experienced, full-time hackers.
If only politicians and bureaucrats would spend a fraction of the time and money spent thinking about how to protect corporate interests manifest in intellectual property and other copyright issues on the equally important task of fostering open intellectual contributions for the betterment of society, we wouldn’t have to worry about the state of open source software.
PS I realise that I’m using the concept of free software/open source interchangeably and it will rub some people the wrong way.