Licensing of software is an important, fascinating, and very difficult to understand subject. Developers, some of the people who are affected the most by licensing issues, have the most difficult time understanding the different types of license that are available. I know I do.
The main issue isn't complicated. Do we want to control what other people do with our code or not? If not, put the code in the public domain and be done with it. People can do anything they want with the code because it belongs to everyone and no one. People can create any kind of software they want with it, both open source and proprietary.
If we do want to control what people do with our code, we enter the morass that is called licensing. Be clear, though, that having reached this point we have decided we want to control the behaviour of other people, to enforce our wishes, desires, and beliefs on them. Intellectual property may be non-physical, but in our culture it is still considered to be personal property, and we have the right to do with our personal property as we will.
Possibly the most common open source license is the Free Software Foundation's Gnu Public License, or GPL. Proponents of the GPL emphasize the freedoms that it grants to users, most specifically
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and adapt it to your needs (freedom 1).
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3).
The GPL is as controlling a license as a closed source for two main reasons:
- It requires you to redistribute changes you make to the source code if you distribute binary versions of the software.
- Your source code contribution to code licensed under the GPL, if you distribute it, must also be licensed under the GPL.
The reason for these two requirements, and mark that these are not permissions, not freedoms, but requirements, is to prevent the use of GPL licensed source code in proprietary programs.
In essence, the FSF foundation considers the use and distribution of proprietary software to be morally bad while the use and distribution of GPL licensed software to be morally good.
The FSF has also created for Lesser GNU Public License, or LGPL, that allows an open source library to be linked with proprietary software. The FSF, however, considers the LGPL to be a second rate license to be used only when the duties of the library are already adequately performed by libraries with other licenses, whether proprietary or open source. The FSF would much rather a library performing a truly original job be licensed under the GPL, so it's use would put software using it under the GPL, also.
I don't know about you, but I find this sort of license even worse than a proprietary license. Code is made proprietary for purely economic reasons. Not out of any sense that it is good or bad for the code to be proprietary, but just so the creator can make money.
The FSF, however, has tried to characterize itself as taking a moral stand, while at the same time exerting as much, if not more, control over what you can do with a piece of software code as those who write proprietary software. It has traded its moralistic high ground for a moralistic low ground by engaging in Orwellian doublespeak in which freedom means control and license means restriction.