In CS-348, we have recently been discussing and learning about software licenses and the affect they have on what developers can do with their software. Before this I had a very baseline understanding of what licenses did. I understood that open-source licenses had different rules about how code could be used and distribute, but I had not thought about why a developer would elect to use one license over another.
For my article I chose “Why you shouldn’t use the Lesser GPL for your next library” by the GNU Project. I picked this article because I wanted to understand the underlying reasoning on why you would pick one license over another, in this case why you would pick GPL over LGPL.
GPL vs. LGPL
The articles discusses an important difference between these two licenses. The GNU Lesser General Public License (LGPL) allows for a library to be used within a proprietary program, while the traditional GNU General Public License (GPL) limits the use of a library to just free software.
What I found quite interesting was that the article did not try to argue that one license was better than the other, but rather presents the license selection as a strategic decision. If similar libraries already exist, using LGPL makes sense, GNU gives its C library as an example, because proprietary developers could simply chose another C library that is close enough if GNU’s version were GPL-only.
What Stood Out to Me
The most interesting part of this article to me was the opposite situation. If a library were to provide a unique and valuable feature, licensing it under the GPL can give a huge advantage to free and open source software. The article uses GNU Readline as an example. They explain that it’s unique capabilities made GPL licensing more influential.
Before this article I saw licenses exclusively as way for developers to apply rules to their code. But after reading this article, I can see that a licenses can also be used as a way to control how their code influences other projects.
How I Can Apply This in the Future
In my own future software projects I want to think more carefully about licensing instead of treating as something to add after a project is already finished. If I develop a library or contribute to an open-source project, choosing the license could affect who uses the software and what they are allowed to build using it.
The biggest thing I learned is that there isn’t a correct license for every project, there are often trad-offs involved. And depending on which one you chose it could have long term benefits for the community as a whole.
Leave a Reply