On Open Source Licenses

A few weeks ago, a co-worker asked me for recommendations for an open source license, to ship with some code that he had been working on.

My first instinct was to suggest the MIT license, simply because that was the one I had seen used most often. I stopped myself. This was not a good reason. Furthermore, I realized that I usually attach the MIT license to most of my own code, without much thought or consideration for what it actually means. Thus began my research into the world of open source licenses…

Does it even matter? Who pays attention to the legal jargon anyways?

Yes, it does matter. Several months prior, Facebook received heavy criticism for licensing much of their open source software, including the popular javascript framework “React”, under a custom “BSD+Patents” license. This license contained a clause which revokes your right to use their software if you ever engage in a patent infringment lawsuit with Facebook. Many organizations such as WordPress and Apache Software Foundation, as well as much of the open source community, refused to continue usage of React due to this clause. Because of this backlash, Facebook ended up re-licensing most of their open source software with the MIT license.

So should I just use the MIT license?

The MIT license is extremely popular amongst developers, due to its simplistic and permissive nature. Users of MIT licensed software are granted permission to do whatever they please with the licensed material, so long as they preserve the license and copyright notices.

However, depending on the project, developers may wish to choose a different license to use, in order to add certain restrictions to the abilities of the users. For example, several popular open source software projects, including bash and GIMP, use the GNU GPLv3 license. One of the fundamental requirements of this license is that developers must provide the source code for any material they distribute. Although this clause does not technically prevent one from creating and selling a proprietary derivative of existing GPLv3 licensed software, it does limit their ability to profit from such endeavors, as users can simply ask for the source code. As such, this helps ensures that all development on a specific project (and its derivatives) remains open source for the benefit of all.

Therefore, depending on what kind of limitations or restrictions you wish to place on your users, you should license your code differently.

Trying to find the right open source license for your project? GitHub created this selection tool to help you decide!

Interested in checking out even more licenses? Here is a list of all licenses approved by the Open Source Initiative (OSI).