What the heck is a "free license"?

Funny thing about coders. We're not that good at saying what we mean. Many a flamewar has been fought over which is more "free", the GPL or BSD-like licenses. It's a silly discussion because who cares how "free" a license is? What we care about is how much freedom people have when they use our software.

Copyright law prohibits anyone from copying a piece of software, except the author. The author may choose to give up his exclusive control over copying to certain people. If he chooses to give up this control to everyone, and in all circumstances, we say he has put the work in the public domain. When it comes to software this is a somewhat risky proposition. If software is responsible for damages the author of that software can be sued, regardless of whether the software is in the public domain or not. To prevent this the author typically places a restriction on the software: you may use it, only if you promise not to sue me for damages caused by it.

The BSD-like licenses add a little more to this. They restrict the user of the software from removing the notice disclaiming responsibility for damages and the name of the author from the software. Some BSD-like licenses also require the user to attribute the author in any advertisements they make about the software.

The GPL places more restrictions on the user. It restricts which licenses may be used by the user to distribute derivative works and combined works of the software. Specifically it states that no more restrictions may be placed on the user of the software and that combined works must be distributed under the GPL. It also states that source code for the software must accompany any executable distribution of the software (or be provided upon request).

Software distributed under either of these licenses gives the freedom to copy the software to everyone. They just put restrictions on the way in which the software may be copied. If we assume that more-restrictions equals less-freedom, the GPL therefore provides less freedom for users than the BSD-like licenses. However, this assumption is flawed.

As users of BSD licensed software are free to redistribute the software with more restrictions than they themselves received it, not all users of the software have freedom. The GPL, by prohibiting the redistribution of software with more restrictions, ensures that all the users of the software have freedom. Therefore the GPL is actually a greater freedom providing license than the BSD-like licenses.

To ask which license provides the least restrictions on users of software is to assume that the least restrictions is the best way to achieve the greatest freedom for all users of the software. This would be true if not for cheaters who take software they have received without restrictions and pass it on with restrictions. By prohibiting cheaters from redistributing the software the GPL ensures all users of the software have freedom.

QuantumG
<< back to my home page


TheBottomLineOfFreedomForTheDeveloper says:
1) Your flawed assumption is that passing on BSD licensed software with "more" restrictions is "cheating"! That is most definitely is NOT! It's working within the original BSD license terms and is completely permitted, thus is can't in any scenario be called "cheating"!

2) The GPL license provide a measure of "freedom" for END USERS while heavily penalizing DEVELOPERS RIGHTS. For example, developers who make use of an existing GPL'd software MUST publish their own modifications for all to see IF the DEVELOPER wants to distribute those changes within a program. This actually TAKES AWAY FREEDOM OF CHOICE from the DEVELOPER in question by placing this potentially onerous restriction upon the developer. The reason that it could be onerous is that the DEVELOPER might not fully comprehend the rules of the GPL at the time that they first make use of the software. Even if the developer understood that restriction before making use of the GPL'd software HE WOULD HAVE TO CHOOSE AT THAT POINT IN TIME rather than deferring the decision about publishing his changes.

Essentially the GPL requires you to publish your changes IF you want to distribute those changes with a program, while the BSD license let's you, the developer, choose however you want to go, publish your changes for all to see or keep them private (they are yours after all), and most importantly the BSD license let's you choose at any time. That's freedom of publication and freedom of time to choose whether or not to publish; two freedoms that the GPL takes away from you. So it's just false to claim that the GPL is more free.

The bottom line is that the GPL favors END USERS to be able to continue to use a program no matter who changes it, while the BSD favors the rights of DEVELOPERS to be free in how they develop.

The bottom line is that the GPL is much like socialism, as all the work done to forward the project becomes "communal" property (via the GPL license) and any attempts to "cheat" will be dealt with swiftly by said commune (usually).

The bottom line is that the GPL is about the group, while the BSD is about individual choice.
TheBottomLineOfFreedomForTheDeveloper says:
Let me clarify (1) above: passing on BSD licensed code with your own enhancements with "more" restrictions isn't "cheating"! In fact it's intended to empower developers!

The GPL robs developers of that opportunity by preventing that option, thus GPL restricts developer freedom.
QuantumG says:
can't say I disagree. The proponents of the GPL favour the freedom of the end users over the developers. There's no debate on that.


Negative feedback is always welcome.
Your name: