Businesses need great software libraries and components.
Businesses can get that stuff, free for the last ~10 years or so, but in reality the quality is very variable whether they know it or not. Also, because it is free people typically do not have the high bar they should apply to something they purchase.
Furthermore, it is hard to really feel that you value something if it cost you nothing.
It is also pretty intuitive that people who get stuff free usually don’t want to pay for it later, especially if it is still available for free.
People all over the world make free stuff.
But surely businesses don’t really want to base their commercially important systems on stuff created by hobbyists to which they have no actual connection or provenance, do they? That wold be crazy right?
Of course a lot of free open source is created by people at work. These people are usually paid to work on stuff the company needs or sells – but sometimes they are paid by a company that produces open source and sells consulting and support. Sometimes they just do it under the radar.
Sometimes, just sometimes, some big organisation may bankroll/sponsor some free stuff for a while.
What is the end result here?
How does it affect the quality of the software we use, and what code is developed?
How does it affect our forward progress in this field of software development?
It certainly means most companies get to build their products without paying for a lot of the code they use. However the cost of this software (that they are not paying) split among all the people worldwide using it, would be miniscule.
By jumping on the no-cost open software model, we developers have basically stymied hardcore progress on quality globally.
This is because hobby projects must be sufficiently small for hobbyists to manage at a high quality – or it becomes low quality, perhaps only later down the line. Companies the world over are using the hobbyist stuff that is between both ends of that spectrum – usually without even thinking about it.
Bigger projects that cannot be sustained by hobbyists or become commercially important to somebody, or an attractive bit of commercial bling, may survive through team acquisition / sponsorship and related commercials mentioned above.
But what does that mean?
It inevitably means the direction of those bigger projects follow a course commensurate with the commercial interests of the backers, whatever that may be. It often means increased quality and robustness, which is good.
However it also means that effectively the large high-quality successful projects that we all have access to for free are implicitly filtered and chosen by those backers.
And we really have no way to change this by choosing to pay for stuff to support developers to make it their full time occupation to develop, refine and support their users.
Why? Because someone else will always be doing it free and everyone’s become used to free.
Of course commercial software does not guarantee quality. But without financial returns you cannot get the dedicated minds of smart people to make “insanely great” code for you to use, on an ongoing basis. At some point it will end.
I miss the days when people would pay you ~$50 for a library and get support from you bundled in.
You could dedicate yourself to your users.
[Note that I make a good living from consulting, and I am floating the Grailsrocks support product too. What I'm saying is I'm not whining about how I can't make money - I care about quality, innovation and strong community]