DEV Community

David Sugar
David Sugar

Posted on

Licensing

Software licensing is both often and rarely talked about. Services like github and gitlab make this question more important, though. So I am going to cover what is a good software license and why.

First, per the Bern convention, all things copyrightable is automatically born with maximum copyright protection, and this is true for something with no explicit license at all. If you do nothing, you have software that is technically proprietary by default.

Copyright itself has different meanings in different countries and cultures. Some speak of the absolute right of authors (such as the French droit d'auteur), and the idea that these rights cannot even be transferred. Some propose copyright as a limited bargain between authors and the general public, with the idea that all works eventually will fall into the public domain. All of these ideas are animated by national copyright laws which have been made more consistent by the Bern convention on copyright.

The easiest license then is in effect to do nothing. The absolute alternative might seem to be to make something explicitly public domain, but this may not accomplish what one expects. For example, there are various ways corporations can "reclaim" something that is in the public domain and then copyright it for themselves.

If what you want is to be in what you imagine the public domain to be, then I think your best option, for software, is probably the MIT license. It has all the essential attributes one believes should be true for a public domain work, and is thankfully simple to do and maintain.

There is a family of free and open source licenses that operate thru conveyance, the essential act that copyright law is involved in. Some are very complex, and are believed to require some effort to effectively use. All are based on the legal powers of a copyright holder to explicitly disclaim some or all of those powers. All are about transferring some, most, or all of your legal rights as a copyright holder to your users, often, as per copyleft, with the specific reciprocal requirement that those who receive such software will permit the same for others.

The antitheses to an open source license is a proprietary license, often using contract law, often in addition to copyright laws, perhaps also using patent law as well. One problem is that these licenses are custom drafted, and may require extensive (and expensive) legal expertise to produce correctly. One reason is that while copyright law is already harmonized internationally, contract law is not.

If you want many of the legal protections a known open source license may instead disclaim, but cannot afford a lawyer to produce a license for you, there are some other creative possibilities. The two I would suggest are in fact forms of the creative commons family of licenses. These are not actually open source licenses, but they do similarly use international copyright law.

The two are the CC BY-NC and CC BY-NC-ND licenses. The language is tested, and like open source licenses, it uses the universal aspects of post Bern convention copyright law. They are also thankfully short, consistent, and rather easy to maintain.

The CC BY-NC permits non-commercial sharing and creating of personal derivative works. This seems very ideal for an API / library where someone is building something on top of it. The CC BY-NC-ND also prohibits derivative works, and seems perfectly good where you are okay having others see your code (the whole purpose of github), and yet do not want others making their own commercial products or running their own commercial services with it. And it accomplishes this with no legal fees.

Top comments (0)