Some people don’t think that open source software serves any point. Here, I’m going to try to explain why I think that open source is important.
What is open source?
Open source is software that anyone can see the entire code for, and can then use that to create their own version of this software or to help improve the original. I’m going to use the SmokeDetector project as an example.
Why is open source valuable, both for me personally and in general?
Let’s take an example of an open source project: SmokeDetector. It’s a chatbot designed to help detect and eliminate spam on the Stack Exchange network (including Stack Overflow).
This is an open source project that I personally contribute to, and it’s important to me that it’s open source. Why? For several reasons.
One such reason is transparency. When something is open source, anyone can look at your code to make sure that you’re not doing anything nefarious. Everything is completely open and honest.
Another reason is that people can develop things based off of it and can help improve the original software. Let’s say someone wants to adapt your project into something slightly different. They can do that with open source without having to code it from scratch - they can simply fork the project and then create their own version, saving time. Open source also allows for collaborative efforts much more easily, by allowing anyone to contribute - much more people bug-fixing then ;). Anybody can help develop your project. Taking the SmokeDetector example from earlier, dozens of volunteers have worked on it, providing code - whether that consists of a single pull request or a complete refactor, that simply doesn’t exist with a closed source project.
Open source also provides a way for programmers to provide examples of their work. This is one of the most important reasons. If you want to show experience, usually you can’t show the closed-source codebase of a project that you were hired to do or at a previous job. With open source, you can provide proof of what you’ve done, out there in public. This is important - employers want to see proof. With open source, you can give them exactly that.
Open source can be good “practice”. Almost all of my programming experience is from open source. Since I can see what other people have done, I can learn from that. It allows for me to practice editing and improving code, or adding new features, based on what I can see.
Open source also allows for the spreading of free tools that make things easier for people everywhere. It’s much easier when you don’t have to pay for your tools, and it can even be prohibitive for some people. Open source basically guarantees that a tool will be free, since if it’s open source anyone can clone it locally anyway. This allows for the opening of opportunities for more people.
Open source provides a good way for developers to hone their skills, share their work, and create useful content.