Skip to main content

๐Ÿ”‘ Licenses

ยท 5 min read
Eldar Pashazade
Frontend Developer

A brief explanation of copyright, trademarks, patents, and software licenses from a historical perspective and the open source movement.

In 1886, ten European countries convened in Berne, Switzerland, to sign the legal principles on the protection of the rights of artists, architects, and the common man. This was done primarily to counter the companies of the time that would steal a foreign artist's work, modify it, and then resell it under their own brand for profit. Prior to this convention, combating such behavior would require the artist to explicitly state copyright and then go on to personally defend it in court.

After the Berne Convention, copyright was automatically asserted as soon as the work was created. As in, as soon as artistic work is made, it is already copyrighted by the creator, and thus it'll be protected. This work includes anything like text, images, architecture, hardware, etc. The convention has now been ratified in nearly all countries in the world.

But then, why do we keep seeing ยฉ, (c), and "Copyright" notices everywhere? There are two reasons.

First, the U.S. did not ratify the convention until 1989, but instead they opted to make explicit copyright assertions easier by creating the ยฉ sign and requiring its presence on any work of art alongside the name of the artist and the date of production. Because of this, until ratification, artists were required to put ยฉ on the work for it to be considered copyrighted.

Second, the reason why artists and companies insist on using the ยฉ, (c), and/or "Copyright" is because explicit statements make it easier to defend the copyright in court.

Why (c)? Because typical typewriters don't have the ยฉ sign, it'd get approximated to (c).

All copyrights, trademarks, and patents are recognized by all the members of the convention. The word "Copyright" must always be written in English.

Trademarkโ€‹

Trademarks, often indicated with โ„ข, are a way of registering a brand name, logo, slogan, etc. so that the product can have an official signature of being genuine. Coca-Cola is a trademarked brand name; one can't release their own product under that name to lure potential customers into buying their product instead. Trademarks have to be renewed with the body that issued them.

Registered trademarks carry the ยฎ symbol, which signifies that the trademark has been officially registered by the appropriate state office. It, too, is sometimes approximated to (r).

Patentsโ€‹

Patents are a way of registering an invention by publishing the schematics for it publicly and, in return, getting a 20 year grant enforced by the state to be the sole producer of the given invention. It's meant to reward and incentivize inventions by giving the innovator a headstart so that they can capitalize on their idea and make a profit. However, after 20 years, the patent expires and cannot be renewed. Meaning every other interested body can now produce the same invention themselves using the public schematics.

Software Licensesโ€‹

If one desires to share the right to modify, publish, or resell work, they have to provide a license. They're a lease given by the copyright holder that allows some other body to interact with the work in the capacity that is provided in the license. It's recommended that one use officially registered licenses and not create their own, since said licenses have already likely been defended in court.

There are many different types of licenses for various categories of work, Software is considered to be text material and has its own commonly used set of open source licenses.

A colored pie chart

The most popular license now is the permissive MIT License, which allows anyone to copy, modify, and republish work as well as use it as a part of proprietary software for profit. This is the license that companies like to work with since it allows them to use the program with the fewest strings attached.

Another common open source license is the Apache 2.0 License, which is quite similar but more elaborate in its wording. A similar ISC License is used by default for npm packages.

There are also more restrictive licenses, like the ones made by the Free Software Foundation. The Linux kernel is licensed under GPLv2, and many more recent programs are licensed under GPLv3. Another license of the same family, LGPLv3, is used for various software libraries. AGPLv3 additionally covers software that's shared over networks like websites.

Yet another popular family of licenses includes the BSD 3-Clause License and the more permissive BSD 2-Clause License.

The less elaborate Unlicense and the meme Do What the F*** You Want To Public License are about as permissive as one can get.

A couple of useful tools to help pick a license most suitable for one's software are Choose a License and the License Selector.

Licensing Processโ€‹

Publicizing the software source code alone does not suffice to make it truly open source. The code in such an instance is only free to observe but cannot be freely worked on.

To make the code open, it has to be licensed. This can be done in various ways, by either including the license as a text file at the root of the project and/or putting explicit notices as comments at the top of the files.

Some licenses allow modification of their clauses and notices, while others do not.

When you specify the license used, it's recommended to use the official SPDX identifier. Apache 2.0 would be specified as "Apache-2.0".

An example license notice in a JavaScript file as instructed by JSDoc.

The license file may get separated from the source code; however, with appropriate notices, the licensing is more explicit and permanent.

Hopefully this has been an insightful dive into the topic of copyright and licensing, helping you pick a license for your next project.

Happy Coding!