Open Source Software
Coding large projects can be a difficult task. Doing so on your own can be even more difficult. Large companies that have lots of resources can have an easier time making large pieces of complex software that they can then release. These would be proprietary software, actual pieces of software owned by a company. However, you could also have a product that you make one version of and then let others iterate upon. However, you could still control the quality and anyone could still have the opportunity to benefit from their work. These are some of the many reasons for Open Source Software (OSS).
Open Source is the idea that when you make a piece of software, free or otherwise, you release all of the source code to the public. This allows other developers to remake and improve upon your idea. The idea of open source software has allowed many pieces of technology to see light. It encourages collaboration and is a powerful way for people to work together.
The concept isn’t overly new, open source has been used since the 80’s, but it is still as powerful and useful as ever. Personally, I believe that the freedom open source allows is responsible for many ideas that might not have happened otherwise. Some of which may not have worked if they were tried by individuals or teams trying to make their own products.
The History of Open Source
Many classic applications were developed through open source methods. Although the exact moment the idea of Open Source started is foggy: many universities used the methodologies when developing early applications in the 80’s and 90’s. The actual term Open Source was coined in 1998 when individuals and the Open Source Initiative wanted to nail down the idea.
Before then they had referred to the concept as ‘Free-Software’ but not free as in costs nothing. The ‘free’ refers to the freedom that developers had while working within those environments. During this time the free software foundation developed licenses to help protect the freedom and ideals of OSS.
The number of applications developed through OSS methods is huge. More impressively is the scale and fame of some of those applications. The Apache Web Sever and Linux are two of the big ones. Beyond Linux itself, most of the software that is popular with Linux users (Wine, OpenOffice, etc) are themselves open source projects.
Reasons for Open Source
People start open source projects for any number of reasons. In many cases, people start a project due to wants access to an idea that costs money. Since one person can’t usually replace a product developed my a dev team at Microsoft they use OSS ideas and techniques to get help from other people who believe in the idea. This way people work together and will improve the product (frequently because they themselves are users).
Almost every expensive application or proper version (like Windows, or Microsoft Office) has a free (or cheap) open source version. Some even have multiple, in situations where one group wasn’t content with the previous solution. So unless every problem gets solved with a perfect solution, people will want to make projects to find their optimal solution.
There are many reasons to want to use Open Source or contribute. Most open source projects find large communities that work together striving the make they product the best it can be. Having that support (or being a part of it) can be very satisfying. OSS projects have many benefits, a popular one is localizations. Since the chance to have a someone with the skill set you need is higher if anyone can contribute.
Many users like OSS because they can look at the code to let them know what exactly the program is doing. If you look and see something you don’t like then you can not use it. If you were using a piece of software developed by a company you probably don’t have access to the source code and can’t take a look ‘under the hood’.
OSS applications and products are frequently more secure since more people looking at the code more often the chance that something insecure or made could be noticed. I know myself that little errors causing huge problems are very hard to notice when you are working alone on a project.
People also like to use OSS for training. Many of my classmates at University were running custom versions of Linux that they made as training exercises. Because Linux is open source you can get a kernel and mold it out into your own operating system. Many people like to look at open source software because of this opportunity to train your skills (while still contributing to the project).
Here are some of the other reasons:
The GNU General Public Use License
One of the linchpins of OSS is the licensing. The GNU License is attached to most open source software. It allows anyone to copy, edit, change, and do what they want with the software (as long as you are not changing the licensing). This allows amazing degrees of freedom. If you find an open source project you like you can simply make a copy and make your own versions. If you make a good version you can give it back and it might be adopted by the main program.
Or you can just make your own split and take development in a different direction. You can still make money off your version in any way you feel. This freedom to control development and also protect the freedom of your work is one of the important reasons open source software is popular and powerful. In addition, the license makes sure you give proper attribution to the ideas you are building off. So if you choose to make your own version (rather then build on the previous) then you still have to acknowledge your predecessor.
Open Source can be a complex topic, I had a lot of misunderstanding and misconceptions about it until recently. The biggest confusion of OSS is that most people think that Open Source is just a replacement for the term Free (monetary, not freedom). Although many open source programs are free this is because the licensing involved makes it difficult to make money off of it. If you were to take a piece of open source software and make your own version you must adopt the same licensing. This means if you tried to make your own version to sell someone could just use the other free one. Alternately they can take yours add to it and then release it themselves.
Many larger open source projects are also not just hobby pieces. Although I’ve been referring to open source projects on a smaller scale, large project (like Linux) are managed full time with changes being approved and disregarded. It’s not just any random person messing around. Bigger projects also tend to have their own specific licenses similar to the GPL fine tuned to their product.
The Future of Open Source
The idea of Open Source has been around since the dawn of the computer age (or just about). The concept that people would rather work together to make something is nice. Also if you get to benefit from everyone’s work without having to pay, that is even better.
To that extent, I would say OSS is here to stay. There has been no decline in the popularity of the concept and every year more and more amazing products come out of it. The products also never compromise with newer technologies. There are OSS products and applications for every cutting edge piece of technology that comes out. Even complex topics like deep learning and big data.
If you are interested in open source, there’s no point not getting into it. So long as people want to work together, it’ll be around.
The benefits of open source software are amazing. It might not be a good idea if your goal is to make a million dollar business empire. But, if you are working on a project you and others are passionate about having the ability to work together allows more things to get done. Other people you have never met may have ideas on how to improve your designs and ideas. Those ideas may have never come to you. However allowing other people the chance to work with you allows everyone’s work to flourish.
Since it’s inception it has only gained more popularity. People start open sources projects for any number of reasons. Since there is less monetary cost they gain popularity through users and developers. These are people who believe in the idea and want to contribute.
Personally, I have never taken the opportunity to work on something open source. I have always just seen the tag and assumed it just meant a lot of people worked on it. So although I knew the basic idea I was uncertain of the details. To this extent, I would definitely like to work on something open source before too long. The ability to contribute to a community is a fantastic feeling and doing it through software seems even more fun.