DEV Community

Joy Palumbo
Joy Palumbo

Posted on

Open Source

Anyone who has worked in the tech industry or is learning about software engineering may have heard about or be familiar with the term “open source code”. A lot of the tools software engineers use are open source. But what does Open Source really mean? And what are some specifics of how it works? Let’s start with the definition of open source. Open source is any program that is made available to the community to view, modify or redistribute freely.

Open source can be a huge benefit in many ways. Everyone has their own unique perspective and way of seeing things in life. A given resource/project/application can be limited by having only a few developers who only see things from one perspective. Open source allows others, who might have a different outlook to enrich the project and and bring more to the plate that can not only benefit other developers, but in the end, also benefit the users who use our applications. Another reason why open source is beneficial is that developers in the community can catch bugs or issues with a give program that may have been initially missed. They can further improve on the initial development. It is also a great way to involve the community and bring people together.

Is all open source code free? As far as whether open source is free or not...Usually open source code is free, but not always. People can choose to charge for the initial source code but usually people do not do this. Another way people can charge for open source is to charge for technical support. They release the source code for free and it can be distributed and modified for free but if someone needs assistance with anything, such as installation, etc they can charge a fee for that support. Most of the time though, open source code is free, which is really awesome and very beneficial to the coding community. Much of what we see on the internet is thanks to open source code.

What are the copyright laws for open source? Open source can sometimes have proprietary rights to the source code. It is best practice to have some sort of licensing for open source projects. There are a few different types of licenses. One form of licensing that is common in open source code is copyleft licensing. This type of licensing allows the material to be distributed freely but has the stipulation that any future versions be the same. The GMU project defined copyleft as: "the rule that when redistributing the program, you cannot add restrictions to deny other people the central freedoms [of free software]. What this means is future versions that are created cannot have additional restrictions added to the open source code. There’s an “permissive” licensing, which is similar to copyleft except that the software can be used in other programs that are distributed under other licenses, including proprietary licenses.

Another question is whether there are risks associated with open source. If any one can modify the code, wouldn’t it be easy for someone to insert viruses or malicious code? Technically any source code, whether it’s private or open source can be vulnerable to malicious code. Although hackers sometimes keep a close eye on open source communities and keep a look out for security vulnerabilities that are posted among the community for open source, there are preventatives that the original developers of the source code can do to reduce the likely-hood of something happening. The original developers can set up data decryption techniques, apply secure passwords, and set up data validation processes, to name a few, to help secure the software. Also, the number of people in the community who care about and work on a given software compared to the number of people who wish to do harm is much larger. Generally, people in the dev community will be able to spot and fix bugs and make the software more secure much faster than a hacker would be able to do damage. In the end open source code isn’t really more at risk that proprietary software, and some might argue might even be safer due to the large communities that review and update the code.

Open source is really cool. It's a great idea for all developers to contribute to open source code, both to give back to the community and to help grow as a developer. As a newer developer the idea of contributing to open source projects and software can seem really, really daunting.
Luckily there are a couple resources out there for people who are new to open source and have never contributed. This website has a list of recoursed that are great for people wanting to get their feet wet with open source: https://www.firsttimersonly.com/. I hope you decide to dive into open source. Have fun!

Top comments (0)