Shortcut to seniority

Home
Go to main page

Section level: Junior
A journey into the programming realm

Section level: Intermediate
The point of no return

Section level: Senior
Leaping into the unknown
Go to main page
A journey into the programming realm
The point of no return
Leaping into the unknown
An open-source project is a project in which any person, be it inside or outside the company, can visualize its source code. The problem comes when a developer wants to release their work as open-source, but does not know which open-source license should be used. A license for the project does not mean that you’re giving away any of your rights, therefore you still hold the original copyright of the work. A license is giving specific permissions for others to use that work.
MIT License is very short and simple – it lets everyone do almost anything they want with your project, including to modify it and / or sell copies of the software, under the following condition:
The copyright and permission notice must be included in all copies or substantial portions of the software.
The GNU General Public License (GPL) is one of the most commonly used licenses for open-source projects. The GPL grants and guarantees a wide range of rights to developers who work on open-source projects. Basically, it allows users to legally copy, distribute and modify software, but the software should still remain free, no matter who changes or distributes the software.
This means you can:
If you work on a software and start using a library that is licensed under GNU GPL, you will be forced to open-source the entire software, be it a small tool or an application with millions of lines of code.
The problem with GPL is that it’s very restrictive. As previously mentioned, if you release a library under GPL, you will force any application that uses that library to be released as GPL too.
This is a problem that is fixed under LGPL, as follows:
First two were initially introduced in Chapter 5 – Problem solving
Priority queue (max heap): Elements are inserted based on their priority, thus the most important message is always the first one to be taken from the queue.