I haven’t posted anything related to Computer Science in awhile, so I’m going to talk about my experiences with choosing a software license.
I’ve always indended to release my software under an open source license because I believe that copyright law is way too restrictive. It is abused by companies like the RIAA whose goals are to unfairly limit the freedom of the consumer in any way they can. This lead me on a quest to choose a fair software license that doesn’t impede on the creative interests of the consumer but also doesn’t forfeit my control over the software.
I originally intended to use the Creative Commons license for my software — it seemed right and fair. That intention was short lived, however, when I read the Creative Commons FAQ. I found out that they do not recommend releasing software under their license because it isn’t optimized for software; none of their licenses specifically mention source code. I found this to be rather annoying but I continued searching nevertheless.
I looked at permissive licenses next — they were something I definitely didn’t agree with. It’s not that permissive licenses such as the BSD, MIT, and Apache licenses are bad — I just feel that those licenses are too liberal in granting the consumer rights and they don’t offer me much legal protection, either. I also don’t agree with the fact that it essentially allows somebody to build a proprietary derivative of my work without releasing the source code to anybody else — I feel that to be an injustice.
I arrived at the GNU General Public License afterwards — the most popular open source license. While it contains a body of terms that I agree with for the most part, I decided to pass on it. The GPL 2.0 is pretty outdated (having been last revised in 1999); the language of the license is unnecessarily vague and irrelevant in today’s day and age. The GLP 3.0, which was last updated in 2007, is more relevant but has certain clauses pertaining to software patents that has made the GPL 3.0 unpopular among the open source community.
So what license did I finally decide to choose? The Open Software License (OPL). It isn’t particularly well known or used much within the open source community (Richard Stallman advises against it on his site) but it was finally something that I could agree with.
The body of terms is very similar to the GPL but with a few differences:
- It was last updated in 2005, so I don’t have to worry about it being too outdated.
- It was actually written by a lawyer/computer scientist (Lawrence Rosen is the name), meaning that the language of the license is very concise and understandable (the entire license being only 16 paragraphs long).
- It deals with patents in a different way then the GPL 3.0 does. It possesses a self-terminating patent clause stating that if a company uses/distributes/modifies OPL software and then proceeds to file for patent infringement against the owner then that company loses the ability to use/distribute/modify any software containing the same clause. This effectively prevents a company from stealing somebody else’s source code, changing it it a little, and then suing the owner for patent infringement.
- The license was designed in a way that it can be used for any creative work, not just source code (similar to the Creative Commons license). This is perfect for me when releasing video games because I can release every part of the game (including text/art/maps) under the OPL instead of having to complicate matters by releasing parts of the game under different licenses.
It also allows me to charge for a copy of the software so long as I release the source code and other people possess the ability to redistribute and modify it for free (I realize the GPL grants this right as well, I just wanted to mention it). This allows me to make money while making it legal to “pirate” my software; many companies have simply lost control in trying to fight this lost cause.
The OPL is a wonderful and underrated license that will serve me well in the long run.