“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!
0 comments:
Post a Comment