A while ago, a friend introduced me to an article titled, "Learn the Benefits of a Closed Source Platform" posted on a company's site called UniVoIP.
The arguments on the page paraphrased down to the following:
- Closed source software is more friendly towards end users
- Closed source software provides greater security since it cannot be modified
- Closed source software has more support
Yeah, I know. After reading it and re-reading it, I, too, thought it was a joke. Because if it wasn't, it looked like either someone did absolutely no research, or it was extremely biased and a company was posting propaganda with the intention to mislead consumers into making an poorly informed purchasing decision. I'll let you be the judge of that one.
Anyway, from doing my own research, it turns out these arguments for closed source software (or against open source software) are pretty common. There are other articles, such as "Pros & Cons of Open Source in Business" which, while they aren't biased, also contain some similar... um... misconceptions.
So, I figured I'd make my own article about open source versus closed source software.
Open source vs. Closed source
The difference between open source software and closed source software is that open source software has source code available, and closed source software does not.
Yep! That's literally it. That's the only difference.
What? You were expecting me to talk about the difference between support, security, user friendliness, or whatever? Sorry, bud, but you've been misinformed.
Okay, let me give you an example: Let's say Adobe decided to make Photoshop open source. Besides Hell freezing over, nothing would happen in this plane of existence. Photoshop would not be any less user friendly than it already is. Photoshop would not be any less secure (in fact it may be more secure since it can be independently audited for vulnerabilities, see below). And considering Adobe makes a lot of money from Photoshop, I doubt they would stop supporting it.
Destroying your arguments against open source
Now let's talk about that article and break it down point by point.
Closed source software is more friendly towards end users
A well designed application is friendly towards end users. Most end users do not directly experience the source code being public or not. Yes, I would agree that many open source alternatives to closed source applications are less user friendly towards end users, but that has nothing to do with the source code being public. That is more to do with the skill and time that went towards the project. Projects that aren't funded in any way will only get so much effort put into it because many of those developers have other things to do, as is the case with many hobbies.
That being said, there are also plenty of well designed open source applications. Chromium is used in thousands of popular applications, including Google Chrome, Discord, Steam, and probably a number of your other favorite applications. Chromium is also licensed under an open source MIT license, and even though it is open source, skilled developers from Google are paid to work on it.
And, of course, there are plenty of poorly designed, closed source, commercial applications, too. Tantacrul's infamous "Music Software & Bad Interface Design: Avid's Sibelius" video took a look at a music notation tool called Sibelius, only to suffer a complete mental breakdown because of some of Avid's poor design choices. At the time of writing this, Sibelius costs $99 per year and is used by thousands (maybe millions) of music professionals. It's possibly as standard to professional music notation as Adobe Photoshop is standard to professional graphical design, and it is certainly a powerful piece of software that deserves such recognition. Yet even it contains plenty of glaring issues that demonstrate a lack of care that went to designing and organizing the application, and this has undoubtedly frustrated many end users.
Closed source software provides greater security since it cannot be modified
NO! Just because software is open source does not mean you can edit it like a Wikipedia page. Yes, it's true that you can download the source code and make changes to it, but you can't just replace code on the official repository without permission, nor can you modify other people's copies of the software without permission.
Actually, software that is open source can be independently audited for security vulnerabilities, while it is solely up to the developer to find vulnerabilities for a closed source project. Yes, developers should write secure code regardless of if it's open source or closed source, but open source code puts a lot more eyes on the code, and a fresh set of eyes can always be helpful for finding issues with the code.
Also, closed source software can be modified since machine code can be modified. A better way to prevent tampering would be to use code signing, and this can be applied equally to both open and closed source software since, again, the only difference between open source and closed source software is source code availability.
Besides, if closed source software contains exploits such as buffer overflows and arbitrary code execution, then any security you thought you had is now completely irrelevant. Because the source code is not available, you'll have to wait for the developer to patch it, which, if you're running a business, means possible downtime... or worse, should the exploit be exploited. Many buffer overflows aren't hard to fix (often times it's a lack of a bounds check), so a potential one-line fix is now holding back your business.
After all, security through obscurity isn't.
Closed source software has more support
The availability of the source code does not affect whether or not it has support. Yes, most open source software does not have a lot of support behind it, but most closed source software doesn't, either. After all, it's called "abandonware" for a reason.
It is also true that a lot of paid software that provides official support is closed source. However, that is because people are paid to actually provide support with those projects. Some open source software provides support, including paid support. Qt, for example, is open source, but you can also purchase a license for it, giving you just as much support as buying commercial software... since it's also commercial software, but it's open source, giving you the benefits of both.
There are absolutely zero benefits for software being closed source to an end user. Having software be closed source only benefits the developers for various reasons (e.g. competition, trade secrets, non-disclosure agreements, limiting maintenance to a group of people, etc. - there are a number of reasons why developers choose to do this), but software will work exactly the same way regardless of if its source code is publicly available. Therefore, making the source code unavailable does not make the software inherently more secure, more user friendly, or more supported. The fact that software is closed source should not enhance your decision to use the software.
Open source software, on the other hand, allows for independent code auditing, and it allows you to fix issues yourself if you don't want to wait for the developer to do it. You can also modify the software to add functionality the original software didn't have.
All-in-all, the fact that software is open source is only a good thing to you, the user, as it provides more freedom. And even if you know nothing about programming and don't care about the extra freedom, in the end, it's just that.
- 2021-06-30: Clarified conclusion