To some people’s surprise, even open-source software has a license attached to it. And with that license comes a description and agreement for what can and can’t be done with the source code of any particular product or service. What exact license the specific open-source software lies under is generally up to the developer(s) and/or current maintainers of the original code.
Open-source software licensing is not something that I have really taken particular notice of in previous and recent times. In fact, all code I have ever created or modified has been done so with no regard to what the license is. I am guilty, yes, as are probably a lot of open-source developers and programmers.
I am not really trying to cause a stir by raising the topic, but merely bringing forward the point that open-source software licenses can more often than not be a gray area of knowledge. And this is probably due to the fact that there are so many different open-source licenses available. You only have to take one look at the following page on the Open-Source Initiative website and you’ll see what I mean. Some would argue there is too many licenses. And when you see them listed in a form such as the aforementioned website, it can actually be quite daunting.
According to Black Duck Software, the most commonly used open-source software license is GNU GPL 2.0. And following second and third are Apache License 2.0 and MIT License, respectively. I might not be an expert on open-source licensing just yet, but quick research on them tells me that the differences between many of the licenses is very minor. And in some cases, simply comes down to some very small variations of the license.
I am currently in the process of developing my own programming language. I’m not writing this to promote my own work, so I will refrain from using the projects name or any references to it, but at this stage I have not yet decided on which license to release my code under, once completed. I am a Linux user of over 10 years. Admittedly, I have not been programming for that entire duration. Nevertheless, I thought I had a fair understanding of how open-source software was licensed and released. But when browsing the available choices for open-source licenses, I went right back to the drawing board and now have to decide what my future intentions for my code will be, who will use it and where I want it to be installed. And whether it should be used solely for solely personal use or commercial use.
It’s easy to sit back in your chair and think, “I want to program X or Y software and make it open-source”. But when it comes to licensing the final code, you really have to think about what license you wish to attach to that code. This does require some thought about your intentions for the source code (and your own personal intentions) and also requires some consulting with fellow developers with some knowledge in the software licensing field. Obviously, it really helps to know certain people that can help, but I highly recommend asking some questions in some programming channels on your favorite IRC network. At the time of writing this article, I am still in the process of researching what license suits my own code to my satisfaction. I am split between 4 different obvious options: GPL 2.0, BSD License 2.0, MIT License and Apache License 2.0.
Although open-source license choices might be very confusing for many, there is one thing that we need to be grateful for; At least with open-source programming, we do have the choice of selecting what license we wish to accompany our source code. That is the power of free and open-source software that we all need to advocate and protect.