Programmers should be paid if they are asked to implement someone else's requirements.
There need be no structure for paying programmers who invent their own requirements and thereby just implement whatever they want.
The mass market proprietary software model is indeed based on the process of inventing and implementing requirements and then convincing paying users to value and adopt those requirements and then pay for a copy of the implementation.
That doesn't work for free software, because it is given away; those who like the requirements and their implementation just help themselves to a copy.
The way to get paid, then, is either via donations/crowdfunding, or else to be employed working on customizing open source stuff to specific requirements.
That latter kind of work cannot be the only OSS there is. Someone first has to develop the stuff that is then adopted, and a business forms around it. Those somebodies usually just put in the uncompensated time.
I think you're absolutely right, if and only if we set "open source" equal to "permissive open source" under licenses like MIT, BSD, and Apache 2.
But I don't think your view holds if we include share-alike licenses like GPL and AGPL in "open source". Many would-be-users' business models, especially closed, proprietary software development, inherently conflict with sharing alike. Offering software, for free, under terms that require sharing alike therefore preserves a business model: sell alternative licenses, or exceptions to your open source license's share-alike requirements.
That business model directly motivated my work on the License Zero Reciprocal, a license I submitted to OSI. That led eventually to the thread linked by this post.
If you're interested in other thoughts along these lines, I've collected mine on a blog: https://blog.licensezero.com/
The view basically holds for any software that large numbers of users can use without paying a cent: everything from binary-only "shareware" to "freemium" apps, to open-source-but-not-free things like the Pine e-mail client, to BSD to GPL.
If you give away copies, there is no "business model" other than some sort of custom work, or some non-free versions whose copies you do sell or whatever.
I think you're right again, but only with another limitation: concerning applications, not libraries, frameworks, or development tools.
The latter function as components or unfinished goods, not independently usable software. The right to "use" such incomplete programs or software-production tools is meaningless to end-users. It becomes meaningful to them only when parts and tools are incorporated into, or used to build, other software. Software that often isn't open source, by anyone's definition.
If the finished good is proprietary software that the creator will distribute to users, GPL is a blocker. Distributing copies of the final product will trigger GPL's copyleft conditions. If the finished good is software that its creator will run for others, as software as a service, AGPL and other network-copyleft licenses are blockers. Providing the service to users over a network will trigger requirements to provide source.
There need be no structure for paying programmers who invent their own requirements and thereby just implement whatever they want.
The mass market proprietary software model is indeed based on the process of inventing and implementing requirements and then convincing paying users to value and adopt those requirements and then pay for a copy of the implementation.
That doesn't work for free software, because it is given away; those who like the requirements and their implementation just help themselves to a copy.
The way to get paid, then, is either via donations/crowdfunding, or else to be employed working on customizing open source stuff to specific requirements.
That latter kind of work cannot be the only OSS there is. Someone first has to develop the stuff that is then adopted, and a business forms around it. Those somebodies usually just put in the uncompensated time.