Back to Basics: Licensing and Open Source
August 19, 2024
Blog
For almost as long as software has existed, the question of free software and open source has been contested. Many developers align themselves with the ideology that all software should be free to access, modify, and redistribute under the banner of open source.
Welcome to Back to Basics, a series where we’re going to be reviewing basic engineering concepts that may require a more complex explanation than a quick Google search could provide.
One of the tentpole arguments of the open source movement is that by taking away the ability to access, modify, and redistribute code, we lose the ability to collaborate and grow as a tech community. If there’s code for your specific need and it’s locked away by licensing, it seems unfair that you now need to reinvent the wheel.
With ideologies in the community suggesting code should be free, like a puppy (we promise we did not make that up), it’s hard at first to disagree with this open source movement. Unfortunately, there’s a question that open source doesn’t really answer: How on earth do you make money on free software?
Licensing steps in to fix that problem. While a first reaction to licensing may be: “Oh no! The big corporate overlords,” licensing is equally important for small, independent developers. From the perspective of a small developer, open source takes the work that you may have spent years of your life on and gives it freely to the world, leaving you dependent on the goodness of people’s hearts to recognize and repay you for the hard work you put in.
Some puppy, right?
We’ll Need to See Your License…
Software licensing is reasonably complex, due to the fact that it ranges anywhere from completely open source to totally locked down. To make things simpler, let’s break down some of the more popular forms of licensing:
-
Public Domain: This is the lowest rung on the protection ladder. If you don’t care what people do with your software and just want to get it out there for the world to see, use, and experience, this is the license for you.
-
Lesser General Public License: LGPL is built more for libraries. Much like a Public Domain license, anyone is free to use your code and build it into their own; but, if a user modifies your code while it is under LGPL, their code will also fall under the terms of your LGPL license.
-
Permissive: This is the halfway point on the protection tree. While it does allow for people to do some things with your software, you can lock down certain means of distribution or modification.
-
Copyleft: LGPL is a weaker form of copyleft. Much like how LGPL works, you get to define how you want people to use your code, but once they incorporate it into their own code or modify it, they now are bound to your terms of use.
-
Proprietary: Proprietary code is one of the most protected licenses you can get. If you don’t want people doing anything with your code without your permission, this is the license for you.
Each of these licenses are built with a purpose in mind, and can be combined with other licenses to meet your needs. If you want to make money on your code, you can combine a commercial license with Copyleft to ensure that people don’t redistribute your code without you getting paid.
In the end, it’s up to personal preference as to what license, and even further, what philosophy governs your code. If your goal is to make a living off of your software brilliance, maintaining some level of control makes sense. If you want to share and collaborate with the world, perhaps fully open source is more ideal.
ADDITIONAL RESOURCES:
-
The future of open source is still very much in flux | MIT Technology Review
-
Absolute Guide to Software Licensing Types | Licensing Models (thalesgroup.com)
Check out some more Back to Basics:
Learning a New Language, Software Edition (Obviously)
Back to Basics: Getting Connected to IoT