What Is Open Source?

·

4 min read

Table of contents

No heading

No headings in the article.

If you're like me you have probably at some point in your career asked the question, "What is open source?" To put in very simple terms, Open Source Software also OSS, means a source code is made available with a license which provides rights to examine, modify, redistribute without restriction on the user's identity or purpose. This means the authors makes it source code available to anyone who would like to view that code, copy it, learn from it, alter it, or share it.

This is in contrast to "Proprietary Software" which is where only software owners have full legal access to the source code and people who access to the source code will have to sign an NDA(non-disclosure agreement) accepting a license restricting the right to redistribute, missuse or reconstruct the source code. This is the practice commonly seen.

Advantages of Open Source Software include having a highly collaborative development. Having more developers look at a code leads to faster progress, more groups of people looking at the code with different perspectives hence the chances they make the same mistake are greatly reduced. More people testing the code hence stronger more reliable code.

  • Open source communities rely on licences. These licenses give the terms in which software is to be freely used, modified, and shared. There are two groups of Open Source Licenses; Restrictive Licenses, Permissive Licenses.

    • Restrictive Licenses also Known as CopyLeft Liicense: Here software remains open; strong limitations are placed on attempt to make proprietary closed products. Changes to the source code are made available to future recipients in a way that they can rebuild their product. Example is the General Public License (GPL).
    • Permissive License: These licenses do not require modifications and enhancements to the source code to be generally available.n This license allows the software to be avaliable even to closed-source projects. Example is the MIT/X11.

    Some of the more commonly known open source projects include The Linux Kernel, GIT, Apache, Programming languages like Python, Perl, Ruby, Rust, GCC. You have to look out for open source projects that interest you, join their community and contribute to them. There are programs that encourage beginners to join open source communities such as:

    • Google Summer Of Code: It is a global, online program focused on bringing new contributors into open source software development. GSoC Contributors work with an open source organization on a 12+ week programming project under the guidance of mentors.
    • Outreachy: Outreachy provides internships in open source and open science. They provide internships to people subject to systemic bias and impacted by underrepresentation in the technical industry where they are living.
    • HacktoberFest: Hacktoberfest is a month-long global celebration of open source software run by DigitalOcean in partnership with Intel, AppWrite, and DeepSource, with a strong focus on encouraging contributions to open source projects.

    Selecting an open source software might be a bit of herculean task especially for beginners, I was introduced into open source by an open source program,Outreachy where I currently intern with ChRIS project a fully-open source distributed data and computation platform. They have a strong partnership with Red Hat and the Mass Open Cloud (MOC), you can deploy workflows to the MOC — while still maintaining ownership of your own data. They have kind and active maintainers and community and are a very beginner-friendly open source community, you can join them here.

    While this was my path, yours might be different. Example of motivations to join an open source project are:

    • There is a bug or problem that interferes with your use of the project.
    • To add functionality to the project
    • To learn something new

Example of beginner-friendly communities include:

As you have reached the end of this article, I believe you have the skills you need to contribute to your first open source project. Go out and prosper.