The Virtue of Open Source

Timmy
6 min readOct 13, 2016

--

“It’s not just companies driving [technology] forward anymore, it’s anyone or everyone.”

— Chris Wanstrath, CEO of GitHub

What is the virtue of open source? Or, why is it good?

I’ve been thinking about this question for years. I am perpetually overwhelmed by the benefits of open source software (OSS). It’s easy to fall into a pattern of work and never stop to appreciate what it is you’re doing. I’ve always believed in open source, but never really put into words why open source is good. So I want to take a step back, express the “why”; without the “why”, the “what” loses all meaning.

Some articles have been written about the benefits from the perspective of the user, and others have touched on the benefits of being an open source contributor. This article is an attempt at bringing them all together.

The User

The user is anyone involved in making the decision to use an open source project, not just the developer including it. Many need permission first, which is why all open source projects should come with a license. There are several established licenses in open source, the most popular of which is MIT. The common element in these licenses is the provision that the software is free to use, modify, publish, and distribute. And that is probably the most obvious benefit to using open source: it’s free.

You Can’t Beat the Price

While donations are sometimes encouraged, OSS usually costs nothing to use. And there is no need to account for multiple copies of software like with proprietary software, which reduces administration costs.

But cost is not just about the initial price of the software. Companies that make use of open source do not need to constantly reinvent the wheel. They can use existing platforms, libraries, and plugins to build their projects. They get the Lego blocks for free, saving an inestimable amount of time.

Those Lego blocks can be swapped. The needs of a particular project can be volatile; the ability to swap out components is an incredible, cost-saving advantage.

And here’s the biggest one: free support.

Support

There are vast communities behind successful OSS that are there to drive its continued success. Your company does not need to carry that burden, but you also get to contribute and improve it as you use it — something that isn’t possible with software from vendors. Gone are the days where you would be at the mercy of a proprietor’s timeline. Vendors can halt support at any time, but support in open source is not limited to the project authors. Anyone willing to dig into the code and understand it can take it on. This means that OSS is generally more secure than its counterpart (more on this later).

Not all OSS has equal levels of support. It’s up to you to make sure the community behind a project is lively and determined. One of the first things I look at when choosing a package is the latest commit date. If it’s been a year since the last commit, I move on. Things change quickly in our line of work, and if a project isn’t actively supported, its repudiation is all but guaranteed. The nice thing is, if the problem the project was solving is still applicable, there’s often another project out there with better support. The best solution can be chosen in place of the only solution.

However, sometimes software has undergone the test of time and proven itself consistently reliable. Support becomes a non-issue when considering whether to use it. OSS such as Apache, MySQL, and others are widely considered safe-to-use because of their vast networks of supporters and cemented dependability.

Quality & Security

OSS projects that ignore testing, documentation, or maintainability inevitably fail. They’re quickly rejected and largely ignored. Open source has an advantage here. Bugs get fixed faster, and the same new features that might be implemented later in proprietary software are available sooner.

It’s true. Bugs get fixed faster. First of all, you get more bug reports. Whereas a plethora of bugs in closed software remain obscure, open source is subject to constant, public scrutiny. This leads to a slew of bug reports that would never have been filed otherwise. Rather than trust that software is as secure as it says it is, you get to audit it yourself.

Secondly, severe defects and security issues can potentially get fixed within hours of their being detected. Contrast that with closed source. When a usually-ambiguous bug report is filed, there’s a delay while the vendor determines its validity. The bug may or may not get fixed, and you have to wait until the next release to find out.

In terms of new features, developers are continually spawning new projects that have no real goal other than exploration and research. It is this kind of ambition that has lead to groundbreaking advancements in the scientific community, and the same is true here. OSS developers are the first ones to the shiny and new, and commercial organizations just do their best to keep up.

As specifications such as EcmaScript and HTML are developed, open source developers build projects that conform to and make use of those specifications before anyone else. This means that new features that will soon become available get experimented with almost immediately.

In the end, open source gets closest to what users want because the users have a hand in making it that way. It can have technical superiority because it is not subject to a vendor’s priorities or requirements. Oftentimes when a company releases their own open source project, the community improves it in ways the company never would have thought of on its own.

The Contributor

You may wonder about the benefits of contributing to open source, or why an employer would want to allocate time for their employees to contribute to open source. There are many benefits, and I might get weepy on you. I’ll save the best one for the end, but I’ll start with the most commonly iterated.

Separating the Chaff

If you’re a developer that’s just starting out, contributing to an open source project looks good on a résumé. Most companies that attract good talent will look at your open source contributions, most likely on GitHub.

If you’re a manager interested in recruiting good developers, you’re going to have a hard time grabbing the attention of motivated developers if you work for a company with a poor open source presence. The ninjas of the developer world are pretty much the same people as the ninjas of the open source world, where quality is prioritized over number of features and there’s no sales department dictating what to build next. OSS developers solve real problems that benefit a larger audience, making everyone’s job easier.

Self-improvement Clause

The fact is, contributing to open source makes you a better developer. When your code is available for anyone to view, it encourages you to avoid hacks and write your best code. The open source community demands clean, tested, maintainable code with proper documentation. You usually can’t get away with less.

Also, releasing your own open source projects on a regular basis cultivates a mindset that enables you to find ways to modularize parts of an existing architecture and maximize reusability. Even if those pieces don’t get released as open source projects, it greatly increases how much is shared within your company and elevates the standards you feel you must meet when sharing it. That makes your colleagues’ jobs easier.

The Community

It all comes down to this. The number one reason for contributing to open source is the community. Who are these open source people? Well, they are volunteers. They are people giving up their time to contribute something back to the community. Open source is a place where “Pay it forward” is a common adage. So many people who have benefited from open source have already learned the advantages and think it only fair to contribute something back. It’s a place where the most common reason for doing something is to help someone else.

If you think you’re not good enough to work on open source, you’re wrong. Even if your code sucks, people will often give you constructive feedback on how to improve it. You’ll be amazed at how quickly you progress as a developer. You get to learn, and you get to develop relationships with people knowing that there’s one thing you already have in common: generosity.

So, thank you.

--

--

Timmy

Lead Front-End Engineer at Pylon AI, jQuery Core Team Lead