Earlier quoted context omitted.
"without giving back" is a bit of an exaggeration. You could have a giant 20M line proprietary codebase, and if you incorporate a 20-line function from a GPL source, GPL says you need to relicense the whole thing. I prefer the MPLv2, it lets commercial users actually use the code, but they still have to contribute back any changes they make.
> I prefer the MPLv2, it lets commercial users actually use the code, but they still have to contribute back any changes they make. Sure, but how is this verifiable? Not verifiable = not happening. Anyway, the idea of using a 20 line function in a 20M line codebase is a total strawman. Think of it from the 20 line function author's point of view - free money for corporate? They lack the expertise internally to write…
For things that have a single author, the relicense option is possible, yes. But how about projects that have several?
To me the great thing about software is that other people can use the code I wrote without it costing me anything. I understand the various attitudes of wanting others to be bound by some terms of sharing the work they do too, or paying for a license, but at least from my experience it limits the adoption of my code, and I'd rather my code be useful in as many places as possible, with the only requirement being that if you fix any bugs or extend the functionality in a deeply intrusive way, you contribute that back.