May the Source Be with You: A Guide to Open Source Software Development

9ccdf9a858760509e0c3e0a2d3877483

When human beings built the computers and rocket ships that took us to the Moon, it was a top-down directive. Issued from on high by the President, and working its way down towards thousands of engineers and software developers.

Half a century later, things have changed into a more open, democratic, and inclusive development world.

Open source software development has overtaken traditional methods to produce some of the best, most compelling software ever invented. From operating systems like Linux, and Android, to WordPress on the net, and audio players in your ear – open source is here to stay.

SEMrush

Keep reading to learn how you can get involved, and learn with all this open source stuff is about!

What is Open Source Software Development

Open source code is a kind of writing. It is a form of writing intended to be read by a computer interpreter. As it is a form of writing, it is subject to copyright laws just like every other type of writing.

When a human being writes something, they keep the rights to that work under copyright law. Most software, when it is initially written, is “proprietary”.  That is, the author of the software retains all the rights to it.

If you copy or distribute proprietary software, you may be committing a crime This is how the software industry works. You make something good, then you make money from it. Nothing wrong with that!

But there is an inherent limitation to this particular model. The pool of developers who create the software is limited to the people who the owners of the product want to pay. In other words, the quality of the software is limited to the pool of money spent to build it.

The solution to this problem is called “open source” software. Open source means that the source code is published with a limited copyright, and anyone can get the source code for free. There are several popular “licenses” with various control mechanisms that dictate what type of copyright the author retains to themselves.

Open source software means at the code itself can be modified or distributed by anyone, for free. This doesn’t mean that the copyright owner has waived all of their rights. In fact, many rights are still retained in the open-source model.

In open source, the code is available for anyone to look at, change or distribute. This is a way for a company to solicit their customers and the general public at large, to aid in the development of the software. The idea is that as more eyeballs view the code, more brains find more solutions to the problems that the code faces.

History of Open Source

Open source software has been a tradition, especially in academic circles, since the idea of software was first invented. Before the 1970s, almost all software was open source. Copyrights were rarely enforced,  and a spirit of openness inculcated the academic community.

As the seventies turned into the 1980s, it became apparent that computer software was one of the most valuable things on the planet. Microsoft DOS catapulted a software engineer, Bill Gates, into the position of the world’s richest man. Software copyrights were taken away from academics and professionally managed by business people who fiercely protected their property.

Throughout the 80s and into the early 90s, open source software was almost completely non-existent, at least as a significant economic model. This all changed in the 1990s with the advent of web browsers.

There are many claimants the title of first major open source project, the GNU operating system by Richard Stallman being one of them. GNU still represents a major open source license, and components of GNU are included in the Linux operating system.

Throughout the 80s and early 90s, there was a movement towards free software, epitomized by the Free Software Foundation [FSF].  Early free software was exactly that: free. The software and the source code both were free.

The problem with free software source is that the authors retain absolutely no control, and can’t make money. It’s just given away. A new model had to be developed.

This was accomplished by the descendant of the Free Software Foundation [FSF], the Open Source Initiative (OSI). The Open Source Initiative was founded in 1998 by a consortium of internet companies that included Netscape, Linux, and the Mozilla company. The Netscape communicator, one of the world’s first great browsers, was made open source by the OSI.

Free Software vs Open Source

The concept of open source is quite different from free software. Free software means that the software is distributed 100% for free. Free software doesn’t imply anything about the source code though.

Open source is means source code is available in an open manner, usually freely available. However, open-source comes with a license, and therefore the code may still be proprietary.

Depending on which license your open source project takes, there are a variety of legal metrics that the license takes a stand on. These can include but are not limited to: linking, distribution, trademark grant, sub-licensing, private use, modification, and patent grant.

While the particular licenses are very technical and specific, most of them follow a general principle. In many open source projects, the source code is free and you change or distribute it any way you want. You have to change the name of your modified product.

You generally have to attribute the original software authors when you distribute the code. The question of “why open source?” is related to its distribution, not the copyrights.

The popular open-source product “WordPress”, is distributed with the GNU open source license. If a guy named “Bob” wants to modify WordPress, he can make any changes he wants and distribute any way he wants [even sell it]. But he has to call it “BobPress”, not “WordPress”.

The word “WordPress” is a trademark and is reserved by the WordPress Foundation that controls it. You can modify the WordPress code, you can change it and sell it. But you can’t call your finished software product  “WordPress”. That’s the only rule. 

Contributing to an Open Source Project

If you are a software programmer, you may decide to get involved in an open source project. Many open source projects welcome new programmers and specifically solicit the contributions of the community. Most open source projects that allow contributions have some sort of “ticketing” system.

These tickets refer to proposed enhancement features, and often bugs. You may also find requests for tests and refactoring. Additionally, some source codes, have ticket pools that are specifically designed for first-time contributors.

Most open source communities are very welcoming by their nature. When it comes down to it, you’re volunteering time, for something that someone else is probably making money off of. The people making money, are happy you are there helping them.

Git

Almost all open source projects are under some sort of Version Control. There are multiple types of Version Control Systems [VCS], like Mercurial, Subversion, and of course Git. Most of these have fallen out of favor though and today, almost all open source projects are held on Git. A major exception to this is the WordPress plugin repository, which uses subversion.

Git is different from github.com. Github.com is a commercial repo that holds many projects, but you don’t need to store git files on github.com. There are other online git repositories, like bitbucket.org, or you can host your own repo.

On git, a submitter puts in a pull request. A pull request is a request to the get administrator to pull in new changes done by a community participant. You take the open-source software code from the internet, modify it yourself, and then submit a pull request to have it merged into the main repo.

Git works by storing every change made to the source code from the very beginning to the end. It accomplishes this by creating hidden files that normally can’t be accessed by the main operating system. Git was created by Linus Torvalds, the same guy who created Linux, the open-source operating system the powers most of the internet.

Because of the way that Git stores files, it’s essentially impossible to lose data. Changes can be reverted or rolled back easily. This makes Git great for open source projects as there is a very low bar of trust. There are also software strategies you can employ to minimize your risk. You can read more here if you’re interested.  

Git makes open source possible because anyone can contribute. The programmers don’t even need to speak the same human language, just the universal language of the software. Open source in general, but git in particular, fosters the collaboration of different people spread across different locations in different times.

Open Source the World

Open source software development has completely revolutionized the internet. When many minds work together, a synergy is produced that is greater than the sum of the parts. Users, customers, and the general public at large all contribute to making the software better.

Check out our blog, for more tips and tricks about the latest trends in software and SEO!