“Open source” is a term that’s thrown around a lot these days. You may know that certain things are open source, like Linux and Android, but do you know what it entails? What is open source software? How can you tell if a program is open source? And, really, who cares? How does the open source philosophy affect you?
As far as the user is concerned, if a program works, it works – little care is given to who created it and the philosophy behind the program. But like I said before, open source software is a philosophy and it has real ramifications for you as a user.
What Is Open Source Software?
When the average user downloads a program (iTunes, for example) they usually download an installer file that unpacks the program and installs it into the user’s system. From there, the user will access the program using the executable file (.EXE) or a shortcut to that executable. These executables are created from thousands of lines of source code.
In the example above, you’ll see some basic source code for a program written in the Python programming language. To the untrained eye, the above may seem complex, confusing, maybe even downright unintelligible. This source code, however, contains a bunch of commands and statements that are eventually compiled into a program executable. Once the executable is created, you no longer need the source code.
So when you run a program like iTunes, you don’t see the source code that was written to create iTunes. You only see the final product. And for most of you, that probably seems all right with you.
Open source software, on the other hand, are programs that are bundled with their source code in the release. Sometimes the developer will compile an executable from the source code and release them together; other times the developer will only release the source code and leave it to the user to compile the final product.
Either way, that’s what open source software is: software where the source code is open (public) as opposed to closed (private).
Why Open Source Software?
Imagine a recently-constructed house, complete and available to the public for habitation. You can buy that house and move in. While you own the house, you may rarely ever see the actual foundations of that house – the walls, the electrical wiring, the plumbing layout, the wooden structure itself.
Continuing the example, let’s say that at some point your water malfunctions and you need to fix it. Or maybe you want to add a few extra outlets in a certain room. Or maybe you want to expand the house altogether, extending it with a garage or annex. None of this is possible if you don’t have access to the internal guts of the house.
Similarly, when you install a program, you usually don’t have access to the source code. The plumbing, electricity, structure that makes a program run – you can’t see any of it. What happens if you ever want to alter the program to do something that it doesn’t yet do? What if there’s a critical bug that needs fixing?
Like a house where you must wait for the contractors or electricians or plumbers to fix your problems, you’re out of luck with an imperfect program until the developer fixes it and releases a new version.
Now, a lot of people can work on their own homes (called “do it yourself”) but this is only possible because they have the blueprints to their homes. Using the blueprints, they can make their own alterations to their house. That’s what open source software does – it grants you the blueprints to a program run so that you can view and alter them for yourself if you wish.
The Benefits Of Open Source Software
At this point, you might be wondering: If I’m not a programmer, then none of this really matters to me. But even if you can’t write a single line of code, you should still support open source software.
Here are a few reasons why you should.
Open Source Software Promotes Community
When source code is made public, novice programmers can read through it and learn from it, which bolsters their own programming ability. Like a library that leaves knowledge open for anyone who cares enough to grab for it, open source software helps proliferate education, creativity, and inspiration.
Open Source Software Promotes Speed & Co-Operation
If a bug is found in proprietary software, users have to wait for the company to find and implement a fix, and sometimes it takes a long while. With open source software, you have thousands of extra eyes looking at the source code, which means bugs are found and fixed quicker.
Open Source Software Promotes Competition & Variety
How many flavors of Linux are there? How many browsers have branched off of Mozilla Firefox? Did you know that Google Chrome is based on an open source project called Chromium? When someone can take a project and tweak it with their own ideas, you end up with more products than one.
Open Source Software Promotes Accountability
When you can see the source code, you can be sure that a developer isn’t doing anything malicious to your computer when you use their program. For example, KeePass is an open source password manager, which means you can check the source code to see if the developer is stealing your passwords (he’s not).
Accountability is important. As a case in point, consider electronic voting booths. Most (if not all) voting programs are closed source. When you don’t have access to the code, you have no assurance that the program truly does what it claims to do, which manifests itself in the form of election fraud. You can only have full assurance by checking the code. This is also important in the cases of patent infringement, where the source codes between programs can be compared to check for software theft.
There are more reasons to support open source software, but I’ll stop there. If I haven’t made my point by now, then no amount of extra words will help. Hopefully you have a better sense of the open source world and why so many people support it. If you have any questions, feel free to ask in the comments!
Image Credit: Paper Community Via Shutterstock