The more a person get into the world of computing and programming, more he gets to know about Open Source. But how you can join and get started with this cool term ? And how to submit your projects and contribute others ? Lets discuss.
What is Open Source ?
Open Source is a way of creating software, without hiding the source code of your software. You release the software with its code accessible. Users can read and modified your code and even distribute their own versions.
This is a software freedom. Richard Stallman exemplify this as :
A software source code is like a recipe. When we cook something cool, we share its recipe with our friends. So that they can cook their own. They can make modified version of the recipe. And if they do, they can tell you those required changes so that you can make it better.
- that’s my version, original is a bit longer, (click here)
Similarly, software’s source code should be made open so that it could be made better, and more and more users can use it.
The Power of Open Source
There is a reason why I added this post in the “social” category. The main thing about open source is not that you can see and modify the source code, the real power is in its collaboration. There are thousands of people working together for a particular problem, adding their own ideas and this create the over all software very strong. Its well-tested and can solve everyone’s problem. LINUX, is a best example. The Android smart phones you are using is a result of this collaboration. People can now have alternatives to other proprietary software and due to this collaboration, that alternative becomes better.
How you can get involved ?
Well there are many ways you can get started with open source, its simple, make a
software, make its code available and add some license stating the rights given to the user who is receiving the code, along with the copyrights and trademark notices etc.
Some things that you should take care about :
- While writing an open source software, add a lot of comments and a good documentation, make the code as easy to understand as possible. This will make it easier for the people to modify your program for better.
There is no mandatory copyright ! According to Berne Convention, Whenever some thing is published like this post published on this blog, It is automatically a copyright as if it has a proof and date of publishing by you. You just have to use (C) if you have published something original on the web by using your own blog or Github like services.
- Add a detailed license already accepted by the Open Source Initiative. Because some services and organisation will not accept any licenses as an Open Source License
There are already some great licences which are very popular and you can use them directly by adding it your code.
Lets discuss some of the most popular licenses :
- GNU General Public License : The GPL (V2 or V3) is a copyleft license that requires anyone who distributes your code or a derivative work to make the source available under the same terms. The rights that you are giving to your users are same for the users of the modified versions. V3 is similar to V2, but further restricts use in hardware that forbids software alterations. If you want sharing and improvements, this is a perfect choice as any modification made to your code will be sent to you back. So that you can improve the original version. Linux, Git, and WordPress use the GPL.
- Apache License : The Apache License is a permissive license similar to the MIT License, but also provides an express grant of patent rights from contributors to users. Apache, SVN, and NuGet use the Apache License.
- MIT License : The MIT License is a permissive license that is short and to the point. It lets people do anything they want with your code as long as they provide attribution back to you and don’t hold you liable. jQuery and Rails use the MIT License.
There are many many more. I am just giving a little intro about the most popular license. For detailed information, please visit : www.choosealicense.com and www.tldrlegal.com. They both provide a great explanation about all the major available licenses.
Well the best thing you can do to get started from zero is to set up an account at Github, this is a great site to showcase and maintain your project. Here all the users can collaboratively work together and can contribute a lot. You will find a lot of cool stuffs being built there.
And so that’s it. We have done a nice intro about the open source movement. Later we will discuss more so stay connected.