A widely quoted definition of Open Source goes as follows: Open source refers to a computer program in which the source code is available to the general public for use and/or modification from its original design. Open-source code is typically a collaborative effort where programmers improve upon the source code and share the changes within the community so that other members can help improve it further.
In practice, a typical open-source project uses a web or other Internet site as repository for the source code, documentation, discussion, design documents, bug and issue lists, and other artifacts associated with the project, A particular person or group is the copyright owner for the source, at least initially, and this owner grants permission for individual or other groups to modify the source, mediated through a version control system. Examples of popular open-source software products are Mozilla Firefox, Google Chromium, Android and the Apache OpenOffice Suite.
The popular media tends to paint a superficial and simplistic picture of Open-source software. Let’s take a closer look and shed some light on what open source is all about.
Myth 1: Open-source Development is relatively new
Open source is as old as computer engineering. Sharing software code was assumed in places, such as MIT or Stanford, way back in the 1960s. Early development of ARPAnet was helped by freely available source code, a practice that continued as it grew into today’s Internet.
Myth 2: Open-source software is low quality
Well, there may be initially as many bugs in an open source code as in a propriety code, but because it’s open, more developers will actually look at the code, catching many bugs in the process, hence, improving the quality of the code.
Myth 3: Open source is unregulated and anyone can contribute code
Not anyone can access and change open-source code. The access to open source code is controlled, and any changes to the source must either address the problem, or enhance the product.
Myth 4: Open source organizations do not own their intellectual property
Open source software is subject to the same copyright laws as closed-source software. The license grants others the right to examine and use the source code, without hampering the company’s ownership of the code.
Myth 5: Open source development is done by hobbyists and students
The proposition that open source lacks professionalism is an out of date myth. According to a recent study by Boston Consulting Group, over 45% of those participating in open source projects were experienced, professional programmers, and another 20% being IT managers.
Why develop open source programs?
Ever wondered, why Mozilla creates a top-notch browser and gives it away as open source? Why Sun bought StarDivision and made StarOffice an open source program (called OpenOffice.org)? This is because these organizations make money this way, or at least plan to. Companies like Twitter, Netflix, and Ericsson are actually willing to pay developers to participate in the Open Source Software community, and they develop and use open source in their own frameworks.
Developing an open source program benefits a large number of people. The programmer gets to work with an extremely helpful community. This can hone his/her programming skills to a large extent. The organizations benefit as their code is getting refined, without much expenditure. Best of all, the user experience of the program gets better as a number of people are involved in finding and fixing the bugs.
With more and more companies understanding the importance of open source, the key role it plays in developing innovative software, and the rapid progressive development it enables, Open Source community has a bright future.
Google Summer of Code
Google Summer of Code or GSoC is a global program which offers students stipend to write code for open source projects during the summer. The program is open for students aged 18 or over. Since its inception in 2005, the program has brought together over 7500 successful student participants from 97 countries and over 7000 mentors from over 100 countries worldwide.
Through Google Summer of Code, accepted student applicants are paired with mentor(s) from the participating projects, thus gaining exposure to real-world software development scenarios and the opportunity for employment in areas related to their academic pursuits.
Strategies To Get Selected In GSoC
- Pick an organization that interests you.
- Connect with the community via mailing list and IRC channels and ask them how you could start contributing.
- Keep contributing, exploring and learning. Don’t hesitate to ask for help when stuck.
- When the application period for GSoC starts, find a project that interests you.
- Draft a proposal and ask a community member to review it.
- Submit the proposal.
- Wait for your proposal to get accepted.
Tools used for open-source development:
Before starting with an open source project, a budding developer must be aware of a few commonly used tools.
Most open source organizations use mailing lists/Internet Relay Chat to communicate with each other, as not all working on the project are in proximity. IRC or Internet Relay Chat is a giant chat room for a community that can have one or hundreds of users. It is a great way for someone to pose a general question and for anyone to answer the question versus sending email to one person directly.
Version Control Systems
A version control system (also known as a Revision Control System) is a repository of files, often the files for the source code of computer programs, with monitored access. Every change made to the source is tracked, along with who made the change, why they made it, and references to problems fixed, or enhancements introduced, by the change.
Git and Mercurial are the leading distributed Version Control Systems.
Bug Tracking Systems
A bug tracking system or defect tracking system is a software application, which keeps track of reported software bugs in software development projects. The time a bug was reported, its severity, details on how to reproduce the bug and the erroneous program behaviour gets recorded in a database, which is the major component of a bug tracking system. Bugzilla and Mantis Bug Tracker are the commonly used bug tracking systems.
Open source organizations:
In order to get started with open source development, a person should firstly choose a programming language and then, search for the projects based on it. Few open source projects, suitable for beginners are:
OpenHatch is a non-profit organization with the goals of lowering the barriers to entry into the open source community and increasing diversity. It achieves these goals through a number of initiatives, like running educational events and maintaining free, web-based learning tools, to help people get involved in collaborative software development.
It has an active IRC chat room, #openhatch, on Freenode, where they mentor new contributors. Its search page also filters out bugs based on languages and projects, hence making it easier for beginners.
The Mozilla Foundation
The Mozilla Foundation is a non-profit organization that promotes openness, innovation and participation on the Internet. Established in July, 2003, with start-up funds from the Netscape division of AOL, the Mozilla Foundation exists to provide organizational, legal, and financial support for the Mozilla open-source software project. Getting started with Mozilla is simple as it has multiple gateways for its new contributors:
This site suggests projects based on the programming skill selected by the user.
Bugs Ahoy is a site particularly for the new contributors. The website categorizes the ‘Easy bugs’ and ‘Mentored Bugs’ based on the various project like JS Engine, Devtools, Firefox OS etc. `
OpenStack is a set of software tools for building and managing cloud computing platforms for private and public clouds. Users deploy this platform as an ‘infrastructure as a service’ solution. Hundreds of the world’s largest brands, like Paypal, Bloomeberg, Go Daddy and other rely on OpenStack to run their business.
Visit openstack.org to view its different components, namely Swift, Glance, Nova, Horizon, Keystone etc. Each of these components have their own page, which contains the link to repository, bug tracker, documentation etc. They could be reached on their active IRC chat room, #openstack, on Freenode.
Kunal Arora, Batch of 2016, is a student of IT. He was selected in GSoC in 2014. Here’s an excerpt from his interview with The Alliance:
“It was in January 2014, when I felt the urge to be a part of a real-world project. Prior to this, I’d worked on a few personal projects. So, I started searching online for an organization I could contribute to and came across Mozilla. Hence, began my open-source journey. I looked for projects under Mozilla and contributed to the ones which seemed interesting to me and suited my skill-set, by sending bug patches with some help from the Mozilla community. It was exciting for me to know that I was contributing to software, which would possibly be used by thousands of people and this motivated me to apply for GSoC’14.
For GSoC, I chose SugarLabs which aims at developing and promoting Sugar, a learning software for children. The main aim of my GSoC project was to port the Sugar software, which was originally built in Python2, to Python3. My experience with SugarLabs was wonderful. It was a great learning experience, working with skilled developers and a helpful SugarLabs community.”