During your programming journey, you might have heard of the term "Open Source". But what does that actually mean?
In this article, I will explain what Open Source Software is and talk about how it differs from other types of software. I'll also discuss the positives of Open Source Software and how to start contributing to projects.
What is Open Source?
Open Source Software is code that is publicly available for people to view, modify, and share. One example of open source would be freeCodeCamp.
If I wanted to view the code for freeCodeCamp's curriculum, I could view it on freeCodeCamp's GitHub page.
If I find a bug in one of the challenges, then I can read through the contributor guidelines and propose a fix. Open Source Software makes it possible for me to contribute to the freeCodeCamp codebase.
There are millions of open source projects to choose from and contribute to.
Where Does the Term "Open Source" Come From?
Over twenty years ago, the term "open source software" was coined by Foresight Institute's co founder Christine Peterson. She wanted to coin this term as a way to attract newcomers into this space.
The original name was going to be "free software" but there was a lot of confusion about what "free" actually meant. In order to clarify the issue, Peterson proposed a name change to "open source software" instead.
How Is Open Source Different from Other Types of Software?
Now that we understand the basic definition for open source software, let's take a look at another type of software.
What is Proprietary Software?
Unlike open source software, only the original authors of proprietary software can modify its code. Users of this type of software have to agree not to alter it in any way unless they have permission from the owners to do so.
Examples of proprietary software would include iTunes, Microsoft Windows, and Adobe Photoshop.
What are Open Source Licenses?
Open source code is published under one of the following licenses. This lets you know what you can do with the code and what permissions, if any, you need to use it.
This is a list of the most popular open source licenses.
- Apache License 2.0
- BSD 3-Clause "New" or "Revised" license
- BSD 2-Clause "Simplified" or "FreeBSD" license
- GNU General Public License (GPL)
- GNU Library or "Lesser" General Public License (LGPL)
- MIT license
- Mozilla Public License 2.0
- Common Development and Distribution License
- Eclipse Public License version 2.0
Let's take a look at one of these in more detail.
This license originated in the 1980's and has very few restrictions. With this license, you can pretty much do anything with the code as long as you preserve the copyright and license notice.
choosealicense.com provides this description for the MIT license:
It lets people do almost anything they want with your project, like making and distributing closed source versions.
Some projects that use this license are Ruby on Rails, Node.js, React, and Angular.
If you are interested in learning more about any of the other popular licenses mentioned, please click on any of the links in that list.
What Are the Benefits of Open Source Software?
There are many benefits of using and working with open source software. One of the benefits is how much control you have over the code you decide to use.
Programmers can look at the code and decide which parts of the code they want to change. Regular users can use this software however they like without someone telling them to use it in a specific manner.
Another benefit is how much you can learn from using code from an open source project. Developers from all backgrounds can study the code of open source projects as well as share their work with others.
Open source software is also seen as being more secure than proprietary software. Since the code is freely available, developers can find issues, make updates, and fix those bugs quicker than in proprietary software.
Open source also has a very large community behind it. As a result, there are a lot of helpful resources for beginners looking to join an open source community and start contributing.
How to Start Contributing to Open Source Projects
There are plenty of resources that will teach the basics of how to contribute to open source projects. Here are a couple to get you started:
You can search through GitHub for labels marked "help wanted", "first timers only" or "good first issue". Once you find a project that matches your tech stack, make sure to read through the project contribution guidelines.
And if you need some help getting started with Git or GitHub, these guides can help you out:
Contributing to open source projects is a great way to further develop your skills and work with other developers. This is also another way you can gain experience if you are looking to break into the tech industry.
It might seem intimidating at first, but you can start off with something small like fixing a typo in documentation.
Here are a list of sites that can help you find projects to contribute to:
Open Source Software is code that is publicly available for people to view, modify, and share. The term "open source software" was coined by Foresight Institute's co-founder Christine Peterson.
With proprietary software, only the original authors of the software can modify its code. Users of this type of software have to agree not to alter it in any way unless they have permission from the owners to do so.
Open source software has many benefits including large community support, helpful guides to get started contributing, learning by studying people's code, and gaining experience working with other developers.
If you are interested in getting started contributing to a project, search through GitHub for labels marked "help wanted", "first timers only" or "good first issue" and find a project you are interested in.
I hope you found this article helpful and best of luck on the open source journey.