Disclaimer: I am not a lawyer, before using open source code in a project make sure you check with a lawyer in your jurisdiction what the implications are.
Isn’t it a shame when you see some open source code, but later check what that huge jargon of text means in the license only to find that it has some extremely strict conditions placed upon it. I have always said that the only truly free open source code is the work that is placed in the public domain, any one else claiming freedom while placing more restrictions on their work doesn’t understand the concept. Unfortunately there are groups claiming code freedom with licenses such as GPL that only serve to hamper the ability of other developers to work with that same code, and it’s unfortunate that these groups have gained publicity and become a de facto standard for how code is released (particularly academic code). It’s surprising how many people don’t actually understand the restrictions that come alongside these licenses, and I’m sure if more people understood then they would refrain from using the restrictive ones. Having said that I’m not against licenses, and find most open source licenses accommodating. It is important to respect what license the open source code you are using is under, if you don’t you could find yourself in legal trouble, or with bad publicity from the developer community. In the end someone other than you wrote the code you are trying to use, and it’s simply polite to respect that.
With so many different kinds of licenses out there, I thought I would round up the common ones and pit them against each other:
- Name: The name of the software license
- License Compatibility: Whether the license is generally compatible with other licenses
- Code Change License Freedom: Whether you can release new versions of the code under different licenses
- Commercial Usage: Whether you can use the code in a commercial product
- Referencing: Whether you are forced to reference the author of the code you are using in your final product
- Closed Source Releases: Whether you have the ability to release a closed source version of your product without the obligation to release the source code as well
|Name||License Compatibility||Code Change License Freedom||Non-Viral||Commercial Usage||No Referencing||Closed Source Releases|
|Apple Public Source||✓||x||✓||✓||✓||x|
|Mozilla Public License||✓||x||✓||✓||x||✓|
Personally, I’m a fan of the Apache license, I think it’s fair to attribute any kind of open source code I have made in my work (and I would do it regardless of whether I was forced to).