May 10, 2020 by Tim
In previous posts, I mentioned the term open-source software several times. It’s come up often enough that I thought it would be helpful to have a dedicated post defining what open-source software is.
Before we discuss computer software, let’s talk a little about recipes. This will all make sense later, I promise! Recipes tell us the ingredients and methods needed to cook a certain dish. Sometimes, recipes are kept secret, such as in the case of the original Coca-Cola formula.
If you have a sample of a dish (or beverage) made from a secret recipe, a skilled cook can usually make a reasonable guess of what the ingredients are. However, it will probably be impossible for him or her create an exact copy of the product by guesswork alone. Give our cook a copy of the recipe, though, and it’s easy to make a perfect replica.
Computer software works in much the same way. Some computer cooks choose to share their recipes, while others keep their secrets under lock and key.
Understanding open source requires knowing just a little about how computer software is created. You’ve heard the terms code and coding before, sometimes also called programming or developing. Computer code is a set of written instructions that tell the computer what to do. Write enough of these instructions, and you’ve got a complete computer program.
For most software, an intermediary step called compiling is necessary to create a finished program from the raw source code. We call the finished product an executable, meaning it is a program that you can execute (run) on your PC.
You may have encountered executables before. On Microsoft Windows, executables usually have the file extension .exe.
Source code is compiled to create a finished executable program.
Executable programs are usually binary files, meaning if you try to look inside them, all you’ll see is ones and zeroes. There’s no way to tell exactly how the executable works. Just like with recipes, it’s almost impossible to determine the exact recipe (source code) that went into the finished product just by examining it.
We are now ready to define open and closed source software. Open source means that the program’s developers freely share the underlying source code of the program. They may also share finished executables so that you don’t have to manually compile the code yourself, but anyone who wants to view the source code is able to.
This is in contrast to closed-source software, where only executables are distributed to the users. The source code is kept secret and is not available to the general public. Closed-source software is sometimes also referred to as proprietary software.
You probably have both open and closed-source software on your computer right now. Here are some examples of each.
Answer: it depends.
It’s important to note that just because software is free, that doesn’t mean it’s also open-source. For example, the Google Chrome web browser is free to use, but it is not open-source. Members of the open-source community sometimes use the terms free and libre to distinguish between the two kinds of freedom. Usually, free is used in the sense of “a free beer”, while libre means free in the sense of “free speech”. Open-source software gives the user the libre freedom to use, modify, and redistribute the software in any way he or she wishes.
Since they don’t sell their products directly, free and open-source projects often make money in other ways. This includes donations from individuals as well as contributions from companies like Google, Facebook, and even Microsoft, all of which use open-source software in their operations.
Other open-source companies distribute their software for free but charge for support. It’s free to use their programs, but if you need help from a professional, you’ll have to pay up.
One reason why people choose to use open-source software is for privacy. Without being able to view the underlying source code, there is no way to know exactly what a computer program is doing. For example, many people suspect that closed-source software, such as Microsoft Windows and Google Chrome, secretly monitors, tracks, and collects its users’ data, which is then sold to advertisers. The only way to guarantee that this is not happening would be to view the source code, which is not possible for closed-source.
Privacy is not the only reason for using open-source, though. Let’s take a look at some other reasons why you may choose to use open-source– or why you may choose to avoid it.
Open-source software is often free to use. This makes it a great choice if you are on a budget. For example, you can save hundreds or even thousands of dollars by using the free Gnu Image Manipulation Program (GIMP) instead of buying Adobe Photoshop.
Open-source software is sometimes considered to be more secure than closed source. Because the source code is freely available for anyone to view, there are more eyes to find any potential vulnerabilities. It also stands to reason that if there were any critical security flaws in the code, some bad actor would have already discovered it in the freely available source.
Whether or not open-source is actually more secure is a point of debate in the software world. Some developers claim that it is harder to exploit closed-source software because its inner workings are kept secret. However, it’s been proved many times over that this kind of security through obscurity is simply not effective. Hiding your secrets away means that it’s a matter of when, not if, they are revealed. On the other hand, open-source software needs to be secure from the start, or its flaws will immediately become public knowledge.
As we discussed above, open-source software also provides better privacy protections than closed-source. With a closed-source program, there is no way to know for sure if the software is tracking you or accessing other data on your computer. You have to take it on faith that the software developers respect your privacy. With open-source, on the other hand, you can audit the source code yourself (or, more realistically, rely on experts in the community) and be certain that you know exactly what the software is doing.
One disadvantage of using open-source is that there is usually no technical support provided. If you have an issue with an open-source program, you are on your own to fix it. You may need to to post on a support forum or email the developer and receive an answer within a few days. This isn’t ideal in an urgent situation. However, some open-source projects do offer paid support plans.
In contrast, most paid closed-source software provides technical support to its customers. If you have an issue with a product you’ve paid for, you can usually call or email the support team and receive an answer fairly quickly. However, this is not a universal rule, as some paid software has poor or minimal customer service (ever try contacting Microsoft support?)
Another disadvantage of using open-sourced software is that there is a risk that the developers will simply walk away and stop working on the project. This is especially a concern with smaller open-source projects, where there may be only one or a few developers who may or may not be getting paid for their efforts. If these programmers decide to drop out and you rely on their software, you may be in trouble.
While closed-source software also gets discontinued, companies usually feel more of an obligation to create a contingency plan for their paying customers. However, this is not a guaranteed thing: it is possible to be left high and dry by proprietary software, too.
There is one bright spot with orphaned open-source software. If the developers leave the project, you can always access the code and continue working on it yourself, or try to hire a new programmer who will continue to maintain the software for you. This is not an option with discontinued closed-source software.
Unfortunately, another disadvantage of open-source software is that is sometimes doesn’t have as many features as closed-source. Open-source programs can also be more difficult to use. Again, this isn’t universal. There are many examples of open-source programs that are equal or better to closed-source solutions. However, as a general rule, open-source can be lacking in advanced features. For example, if you are just a basic user, you may be fine using LibreOffice Writer instead of Microsoft Word, or GIMP instead of PhotoShop. If you are a power user who has spent years mastering all the tricks of Word or PhotoShop, the open-source alternative will probably fall short of your expectations.
If you are working at a company full of Microsoft Word users and decide to switch to LibreOffice Writer, you will probably get some funny looks when you start sending .odt files instead of .docx. If you need to collaborate with other users, it’s probably best to use the same software they do, whether it’s open or closed source. For personal use, or if you do not need to share your files with others, feel free to experiment with alternatives. Also note that in some cases, this point is irrelevant. For example, the open-source Mozilla Firefox web browser will display any web page just the same as the closed-source Google Chrome will.
Here at Green Mountain IT Solutions, we use both open-source and proprietary solutions when appropriate. Each has their place. It’s important to understand the pros and cons of open-source and choose carefully when considering any new software solution.
Green Mountain IT Solutions is here to answer any questions you may have on choosing software. Call us today at 802-489-6948, or send us an email at info@greenmtnitsolutions.com.