Comment by daveguy
9 years ago
> limiting the developer's freedom (to close code down)
Even with a more permissive license (MIT/BSD) the developer as a user never has the freedom to close down the original source code. Integrating that code into a proprietary offering does not close down the original code base. If there was only one copy of the code, then yes, integrating into proprietary software would close down that code. The original code can be copied indefinitely.
There is certainly a tradeoff. I prefer BSD/MIT to give developers the same freedom as users to use the software as they wish. If I was going to try to make money off the miscellaneous tools I open source I would prefer one that limits unfair competition (coopt and close). At the very least one that requires improvements to the direct code base to be given back (those licenses exist without full copyleft). That said, my go-to is MIT.
I also like license clauses that prevent use in a patented product. That way, regardless of how the code is used (even proprietary) the functionality can be reverse engineered and offered as a free product. Edit: Although embrace, extend, extinguish can be very effective with protocols because of the difficulty of reverse engineering edge cases.
> Even with a more permissive license (MIT/BSD) the developer as a user
You're trying to make it complex, but this is really simple.
GPL maximises end user freedom. BSD/MIT maximises developer freedom.
By conflating the two terms ("developer as a user") you are trying to make it seem like you can have it both ways at the same time.
But obviously and rationally there's no way for that to be possible.
When you as a user of product A decides to use your freedom and take that code to create product B, you become the developer of that product.
If product A was GPL licenced, you would be forced to provide your users with the same freedom you were granted. End user freedom preserved.
If it was MIT/BSD licenced, you as a developer could make your product closed source, and as a developer be free to take away freedoms from your end users.
Both are fine options, depending on your point of view. I'm not rating one against the other.
I just don't see how understanding these simple differences can at all be difficult.
This is beautifully said. I'm printing out.
Agreed, the vast majority of what I create is ISC (similar to MIT) these days.