Introduction
I'm working on a side project and I needed to find an existing software library that does something I need. I've got tons of options, the only problem is the license agreements. There are different types of licenses out there and it is imperative that we are aware about the agreement when we use 3rd party software in our applications.
Before we go to LGPL, a bit of GPL first. GNU General Public License (GPL) in simple terms states that should you decide to release or sell a program that includes a work or software with GPL, you should also release the source codea of your entire work and license them under GPL. It's worth noting that if you do not release your program, i.e. you use it privately or internally, you are not obligated to release your source codes publicly even if you include GPL'd libraries.
The viral nature of this license is a big turn off to the software corporations because of the potential loss of intellectual property. In my opinion, GPL is almost like a religion; for a person to advocate it, he/ she should truly believe in its goal with a bit of forcing others to do the same thing. It's not a bad thing though, but a bit idealistic. From GPL FAQ: The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a non-free system, it would have the effect of making the GPL-covered software non-free too.
For more information regarding GPL, you can read the entire document here.
LGPL
With the strict rules of GPL, LGPL aims to make it more "friendly" by adding "L" in LGPL which ironically means "Lesser". The main difference between GPL and Lesser GPL is that it allows non-free applications to link with LGPL software without being forced to release the entire source code.
Specifically in web applications, it is easier to use LGPL because of the concept of libraries where you can just link them to your work without having to modify the existing GPL library. For client-side software like Javascript where files can be linked to HTML without the need to modify the 3rd party software. Likewise with server-side programming e.g. in Java libraries which are still separated from the main code.
Read the entire LGPL document here.
Creative Commons (CC)
CC is another type of license or licenses which basically differentiate itself with the focus on attribution. You need to somehow attribute the author when you use his/ her work. For example when you create a website / application, it should be written somewhere that you used the author's work in order; this is to comply with the license agreement, although this can be bypassed with the consent of the author.
Read the different licenses under Creative Commons here.
Conclusion
It's still best to use MIT, BSD, and Apache licenses for commercial / closed source software. It's free, free as in beer with no legal liabilities and nothing much to think about, but do consider giving donations when you find it useful. But when using other licenses such as LGPL and CC, it's not always straightforward. It's a case to case basis, other companies use LGPL software, others strictly avoid it.
When you're not sure, it's best to consult higher authority or a lawyer to avoid legal consequences. Personally as a Freelancer, I use LGPL when needed, but opt to MIT, BSD or Apache license when there's alternatives.
I'm working on a side project and I needed to find an existing software library that does something I need. I've got tons of options, the only problem is the license agreements. There are different types of licenses out there and it is imperative that we are aware about the agreement when we use 3rd party software in our applications.
Before we go to LGPL, a bit of GPL first. GNU General Public License (GPL) in simple terms states that should you decide to release or sell a program that includes a work or software with GPL, you should also release the source codea of your entire work and license them under GPL. It's worth noting that if you do not release your program, i.e. you use it privately or internally, you are not obligated to release your source codes publicly even if you include GPL'd libraries.
The viral nature of this license is a big turn off to the software corporations because of the potential loss of intellectual property. In my opinion, GPL is almost like a religion; for a person to advocate it, he/ she should truly believe in its goal with a bit of forcing others to do the same thing. It's not a bad thing though, but a bit idealistic. From GPL FAQ: The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a non-free system, it would have the effect of making the GPL-covered software non-free too.
For more information regarding GPL, you can read the entire document here.
LGPL
With the strict rules of GPL, LGPL aims to make it more "friendly" by adding "L" in LGPL which ironically means "Lesser". The main difference between GPL and Lesser GPL is that it allows non-free applications to link with LGPL software without being forced to release the entire source code.
Specifically in web applications, it is easier to use LGPL because of the concept of libraries where you can just link them to your work without having to modify the existing GPL library. For client-side software like Javascript where files can be linked to HTML without the need to modify the 3rd party software. Likewise with server-side programming e.g. in Java libraries which are still separated from the main code.
Read the entire LGPL document here.
Creative Commons (CC)
CC is another type of license or licenses which basically differentiate itself with the focus on attribution. You need to somehow attribute the author when you use his/ her work. For example when you create a website / application, it should be written somewhere that you used the author's work in order; this is to comply with the license agreement, although this can be bypassed with the consent of the author.
Read the different licenses under Creative Commons here.
Conclusion
It's still best to use MIT, BSD, and Apache licenses for commercial / closed source software. It's free, free as in beer with no legal liabilities and nothing much to think about, but do consider giving donations when you find it useful. But when using other licenses such as LGPL and CC, it's not always straightforward. It's a case to case basis, other companies use LGPL software, others strictly avoid it.
When you're not sure, it's best to consult higher authority or a lawyer to avoid legal consequences. Personally as a Freelancer, I use LGPL when needed, but opt to MIT, BSD or Apache license when there's alternatives.
No comments:
Post a Comment