What is Open Source? Why? FOSS, Wat?
What does open source mean?
An open source project is a project where a few conditions are met:
- The code is available to download, for free
- The code is legally usable by others (see chapter 2)
- Contributions from external programmers are accepted (and encouraged)
Why should I open source my project?
The idea behind open sourcing a project is that by allowing the public to view and use your code, you gain a few things. In their article title So You’ve Decided To Open-Source A Project At Work. What Now?, Smashing Magazine lists the following advantages:
- Technical brand: Companies want to be known as a place where smart people work. One excellent way to show this is by releasing code that has been written at the company. Doing so creates mindshare in the community, familiarity with the company and its contributions, and fodder for future technical brand initiatives (such as giving talks at meetups and conferences).
- Recruiting: Time and again, you’ll see contributors joining companies that sponsor open-source projects. I saw this happen frequently while at Yahoo, where YUI contributors would sometimes end up as Yahoo employees after having contributed to the project on an ongoing basis. Similar hires have occurred in the Node.js community. The reason is pretty clear: If you work on an open-source project in your spare time, imagine how great it would be to turn that hobby into a job. Additionally, allowing job candidates to see some of the company’s code gives some good insight into what working at the company would be like.
- Giving back: A lot of companies benefit from open-source software, and contributing open-source software back into the world is a way of giving back. These days, it’s part of what it means to be involved in the technical community. When you receive, find a way to give back. A lot of companies are embracing this philosophy.
Why should I contribute to an open source project?
- Visibility: If you're looking for a job, companies look to see what you're capable of. A great way to see what you're capable of is to see what you've done. Having code in a well known open source project is a great way to show that you know how to write good code, and a great way to get your name out there.
- You'll learn a ton: Chances are, you don't know everything. Chances are, if you contribute to a project like Node.js, there will be other people contributing, many of whom will be smarter than you are. Being able to see and work with code written by more experienced engineers is a great way to learn a ton, and to get much better at what you do.
- Bragging Rights: How many people can say that they have written code in Node.js? Not many (552 at the time of writing). Being able to say that you're one of the proud few to be a contributor to a project that people have heard of is a pretty cool thing.