The Importance of Open Source

2016-02-04

Diving in to the history and importance of open source software

no code

soapbox

Free and Open Source Software

Open source software is quickly becoming a necessary staple and cornerstone to software development itself and the advancement thereof. A recent(ish) study conducted by Black Duck Software (OSS logistics and legal problem solver) and North Bridge (venture capitalists that grow businesses) displayed just how important open source projects are becoming — at least in the corporate and business sphere. The aforementioned survey showed some pretty interesting results. Of 1300 survey-ees, a staggering 78% of them said their businesses run on open source; even more surprising, less than 3% of respondents said they don’t use open source in any fashion. Open source software has become pervasive in the sphere of software (along with its culture and philosophy). Its also been expanding its tendrils of influence outside of just software; there is a science movement, an e-book movement, and even an everything movement/manifesto(?) by an ex-CIA operative. Open source software and its cousin, free and open source software, are imperative and natural reactions to the globalized economy and world we now live in. So why is this all important?

A Little History

In 2001 Steve Ballmer (former Microsoft CEO) made further Ballmer history by saying the following:

Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That’s the way that the license works. The way the license is written, if you use any open-source software, you have to make the rest of your software open source.

In this instance, Ballmer was probably referring to the GNU GPL, and to some of the ambiguity present in the license. But the GNU GPL isn’t the only open source license, and to dismiss open source in its entirety is naive. Of course, Ballmer probably isn’t what most would consider stable and/or moral. Under Ballmer’s tenure, Microsoft faced an antitrust lawsuit and had some pretty underhanded corporate tactics at play, such as the infamous ‘extend, embrace, extinguish’ tactic/mantra. This attitude towards open source software was the norm in pretty recent memory. Advocates and users of Linux were seen as strange and tinfoil hat wearers. Open source software was anathema to corporations (‘cause how’re they supposed to make ludicrous profits) and nowhere near as prevalent as it is today.

Most people would say the advent and popularization of open source began with Linux.

Linux itself started as a small personal project by Linus Torvalds and was rather small and bare, but good. Unix, BSD, and Minix all came before Linux (read the history, its cool!), but it was really the combination of GNU and Linux that got things moving; today the number of open source Linux distros has reached ridiculous levels. There is a Linux flavor for everyone; there are distros for penetration testing, satanists, enterprise servers, hannah montana, and being the most vulnerable. All of this was possible through open source licensing and having a community of people coming together to develop something weird and wonderful. Not only are the Linux distros open source, but so are all of the tools and utilities on the operating systems (of which again, there are a ridiculous amount).

Today

Nowadays everyone and their mother either develop or make use of open source software; not only corporations, but also non-profits, programmer collaborations, and the average joe. If you’ve ever used any sort of ‘smart’ object, chances are that it has a small Linux-y OS. If you’ve ever touched a web browser, if you’ve ever used ANY sort of device with networking capabilities, if you’ve driven a modern car, if you’ve ev- well, you probably get the point. Open source software, tools, and protocols are everywhere.

Even Microsoft has embraced open source

The advantages of free and open source software are many; primarily I think it boils down to the ideas of libre and gratis. Richard Stallman clears up the ambiguity between the two here. The point is to have the freedom to change and modify the software/code as one sees fit. Being able to run into a problem with a program, dig into the source, and fix or extend the program is the ultimate in libre.

Proprietary software is the opposite; one is now dependent on the whims of some company or corporation (which is why proprietary smart gadgets are terrible), and getting into the source code often results in voided terms of service. Nobody (outside of the company) can extend or fix proprietary software, and most functionality can’t be independently verified to determine what may be going on with a program. If a company just hands you an executable of a program, its essentially a black box; A black box that (in extreme cases) may be doing something nefarious, but more often than not, the program is doing something dumb. Memory leaks, security vulnerabilities, corruption of data; these are problems that can be independently verified and fixed in open source projects (which is imperative when it comes to InfoSec according to KerckHoffs’s Principle). Not so with proprietary software.

Beware the black box.

Importance

The importance of open source software lies in the principles and ideas of collaboration, crowd-sourcing, and that momentous junction of libre and gratis. The nature of the the web (and the majority of technology) as we know it is that of one gigantic, dynamic, powerhouse birthed from the efforts of several passionate, curious, and unrelenting people. This age of information came about precisely because of the principles inherent in the philosophy of open source. Thus, it can be put forth that in order to keep this momentum going, that it is important for all that can and benefit from this to contribute to open source in whatever way they can.

Personally, I haven’t been so great at it. Its hard, different, and straight up intimidating to fork someone else’s code base, make changes, and hope they like it enough to merge it in. I can honestly say that I haven’t contributed to any major (or middling) open source projects. However, it took me some time to realize that contributing to open source isn’t just in maintaining and contributing code. Projects need documentation, how-to guides, troubleshooting help, bug-hunters, etc. Collaboration is one of the core principles of open source, and contributing can be done in so many ways that there isn’t particularly an excuse not to contribute.

With that being said, I would say this blog post is my first contribution to open source. Its small and insignificant, but its a start. Every important movement needs supporters and proponents; and every person needs an ethos and philosophy.

Consider this my declaration in support of open source.