Software license
A software license is a legal agreement that defines the terms under which a piece of software or programming code can be used, modified, and distributed. It is a way for software developers to protect their intellectual property and specify how others can use their work.
Contrary to popular belief, a computer program is not "free" by default. In most countries around the world, programming code is protected by copyright law, which gives the creator of the software the exclusive right to control how it is used. If you see some code without a license, it doesn't mean you can do whatever you want with it. It means you can't do anything with it, because the creator hasn't given you permission.
When you write a piece of code, you automatically own the copyright to it. This means that you have the right to decide who can use it and under what conditions. If you want to share your code with others, you need to specify the terms under which they can use it. This is where software licenses come in.
When you get a programming job, you will likely be asked to sign a contract that specifies who owns the code you write. In most cases, the code you write will be considered the property of your employer, not yours. This is because you are paid to write code for them, and they want to make sure they own the code you write. This is why it's important to read your employment contract carefully and understand what rights you have to the code you write.
Usually, the license file is named LICENSE
or LICENSE.txt
and is placed in the root of the repository. There are many standard licenses available, so you don't have to write your own license. The most popular license is the MIT License, which is very permissive and allows others to do almost anything with your code. When you create a repository on GitHub, it will ask you which license you want to use and will create the license file for you.
Types of software licenses
There are many different types of software licenses, each with its own terms and conditions. Some licenses are very permissive and allow you to do almost anything with the code, while others are very restrictive and limit what you can do with the code. Here are some of the most common types of software licenses:
Proprietary license: A proprietary license is a closed-source license that restricts how the software can be used, modified, and distributed. The source code is not available to the public, and the software is usually sold for a fee.
- These are the huge End User License Agreements (EULA) that you have to accept when you install software on your computer.
- Examples of software with proprietary licenses: Microsoft Windows, Adobe Photoshop, Oracle Database.
Open-source license: An open-source license is a type of license that allows the source code to be freely used, modified, and distributed by anyone. The source code is made available to the public, and anyone can contribute to the development of the software.
-
Permissive license: A permissive license is a type of open-source license that allows the software to be used, modified, and distributed with very few restrictions. Permissive licenses are very flexible and allow you to do almost anything with the code.
- Examples of permissive licenses: MIT License, the BSD License, and the Apache License.
- Examples of software with permissive licenses: Python, Node.js, React.
-
Copyleft license: A copyleft license is a type of open-source license that requires any modified versions of the software to be released under the same license. This ensures that the software remains open-source and that any improvements made to the software are shared with the community. Examples of copyleft licenses include the GNU General Public License (GPL) and the Lesser GNU Public License (LGPL).
- Examples of copyleft licenses: GNU GPL, GNU LGPL.
- Examples of software with copyleft licenses: Git, Linux, WordPress, Blender.
Creative Commons license: A Creative Commons license is a modular and flexible set of licenses that allow creators to specify how their work can be used, modified, and distributed. Creative Commons licenses are commonly used for creative works such as music, images, and videos, but do not contain specific terms about the distribution of source code.
- Examples of Creative Commons licenses: CC BY, CC BY-SA, CC BY-NC.
- Examples of things using Creative Commons licenses: books, comics, games, etc.
You can find the full text of most software licenses on the internet. If you are using a library or framework in your project, it's a good idea to read the license to make sure you are complying with its terms. If you are writing your own code, you can choose a license that best fits your needs and specify the terms under which others can use your work.
Hi! I'm Alex, creator of GitByBit.
And this is Gitopedia—a reference that summarizes knowledge in my Git course.
Gitopedia is designed to be a personal knowledge base. When you progress through the main Git course in VS Code, you unlock all of these topics, one by one, bit by bit. This gives you time to digest the information and gradually build the mental model of Git. Here's an example of how it works:
Learning directly in VS Code lets you practice Git exactly as you would in real life, doing real jobs, writing real code. In addition, the course has access to your actual terminal, so it can point out mistakes, suggest workarounds, etc.
The course is FREE, there are no Ads or other bullshit. There are optional premium add-ons you can purchase, mainly to support my work (regrettably, I have to eat every day), but that's totally up to you.