← Back to context

Comment by sillysaurus3

9 years ago

The GPL reduces developer freedom

Does it?

> The GPL reduces developer freedom. Does it?

The GPL increases the user's freedom by forcing developers to contribute back, ie limiting the developer's freedom (to close code down).

Likewise, BSD and MIT type licences increase developer freedom at the cost of end users.

You have got to keep these two roles clearly separated when thinking about licences, even though in lots of cases the actual users will be developers (but of other products).

If you do, there's nothing controversial about that statement.

  • > The GPL increases the user's freedom by forcing developers to contribute back, ie limiting the developer's freedom (to close code down).

    That begs the question of whether or not one has the right to limit one's users' freedom to use, modify & share code. I don't think that one does.

    > Likewise, BSD and MIT type licences increase developer freedom at the cost of end users.

    They certainly increase developer power, but power is not freedom; might does not make right.

    • I'm just starting the technical consequences of the different licences.

      You're not refuting anything I say, but instead debating the morality around different licence models. And that's clearly a different and subjective argument.

  • > 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.

      1 reply →

  • > The GPL increases the user's freedom

    No, it doesn't. The GPL reduces the probability of the user being offered a non-Free derivative in addition to the original Free software and any Free derivatives, but does not increase the user's freedom.

Yes, it restricts you from integrating with proprietary software (and some others). Here is a breakdown of license compatibility:

https://en.m.wikipedia.org/wiki/License_compatibility

Note that more permissive licenses (MIT/BSD) allow more freedom for the developer.

  • The GPL doesn't restrict integration with proprietary code. It requires any code you choose to integrate it with to be similarly licensed. That is the same choice you have every time you create code.

    • So, it doesn't restrict, it just requires you to choose GPL? That is a double plus good interpretation of the facts.