What is open source?

Open source in it’s most literal definition is software in which the source code (ie. the instruction set which describes the functions that make it) is freely available to view, edit and then redistribute. Most software that you, as a general PC user, would use (Microsoft Windows, games, Adobe programs etc) are closed source. And for a pretty obvious reason!

The digital world is not quite the same as the physical. You can easily clone in the digital world. If a master engineer builds a machine, or a sculptor makes a work, even though you may know how they did it, the only way to recreate it for yourself is to develop your skill. And so the work becomes of worth to you to purchase to save that time. It may be you will never gain the skill level required to sculpt as well, or have the creativity to reach the same solution. In the digital world, if a master programmer (or team) make a great software like Photoshop, all the secrets of the software can be copy and pasted if you have the source code. A quick reskin and you have your own version of Photoshop that may look unique on the face of it, but is just as powerful. Suddenly you can try and sell it having done minimal, or no work! So companies close their source code so they have secured something of value which can’t easily be recreated and gain a market share.

However, there are also many benefits to opening your source code. The Linux OS was founded on open source and it has allowed the entire world to help build it into the advanced distributions it has today. By opening the source code, and allowing other developers to see how the software works, it can fix problems, develop features and even take technology into directions and areas that may never have been thought of.

Trusting in the technology

I believe that open source code is one of the most important phenomenons in programming. It appears society’s intrinsic link to the economy, the very human desire for IP recognition and a general inherent distrust in the outcomes of sharing, that have brought the concept of proprietary, closed source code as the current de-facto model. However, the idea of ‘open sourcing’ your software could be a vital method to opening up society from a culture of ownership and control into a culture of sharing.

The arguments for and against open source are, bizarrely, often originating from similar places: arguments against open source often revolve around the need to keep control of code for business reasons or to ensure code security and robustness. Arguments for are open source usually because it is a vital part in technological progression, Google’s Kubernetes for example, or to also ensure code security and robustness.

I see just one major question we need to ask before all others:

How are users expected to trust in software if they are told they are not allowed to see inside it?

We are going through a similar shift with the food industry. Food origin is again something we are told to believe is the truth, factory packaged with false, misleading images of animals grazing in fields, or text such as ‘Farm fresh’. The reality is totally different. Gradually the public is demanding better scrutiny of this and I feel this is the same with technology.

Even if being able to see the source code is of absolutely no use to you as you are not and have no intention of being a programmer, you should still consider the impact that keeping the secrecy of that technology has.

Trusting Software

Take a particularly important example; the web-browser extension. This is arguably the most dangerous code in the browser (for user privacy) as it is third-party code, the same as web applications, yet runs with elevated privileges which the user usually has to grant. Extensions are particularly bad psychologically, as users believe them to be more trusted than say a random program downloaded from the internet or a slightly dubious web page. However this isn’t the case.

When considering the options for ad-blocking extensions, users have a large choice and most opt for Adblock Plus - a closed source app. Heule, et al, state “over 71% of the top-500 Chrome extensions can trivially leak the user’s data from any site” and what is to stop Adblock Plus from being part of that percentage? We do not really know.

HOwever, we could know if we could see the source code. The fact is we are trusting humans we have never met to provide us with their code and a promise that it does what it says, securely, with no secret, hidden, or extra functionality.

One alternative for Adblock Plus is uBlock, and this extension is completely open source. As a result we can be sure that there is no hidden tracking or data leaking as we are able to review the entire codebase.

We have seen this more recently with Zoom in the COVID-19 pandemic. They have had a series of “zoombombing” incidents whereby third parties who are not part of the video conference have been able to bomb the connection with their own data, and in some cases forcing the conference to view particularly nasty material. If Zoom was an open source project, that hole or bug in the code which allowed this may have been closed up before any serious violations occurred.

Trusting Hardware Too

It’s not just software that can be open sourced. Hardware should be under similar scrutiny. You may have heard of the Right To Repair. This is a pretty absic idea that if you buy something, you should be allowed to attempt to repair it yourself, if it breaks. After all you own that device.

Apple is a prime example of a manufacturer that does not think so. They have campaigned aggressively against small businesses or individuals repairing their hardware. It has even been speculated that they have engineered in components designed to fail after time - The whole lightbulb conspiracy, and they have already been fined for doing it with their software. If they had repair manuals and schematics available for people to analyse, they would gain the trust of their users that this is not the case.

However it opens up the same problem as software, will someone (China) just take it, clone it, and sell it cheaper to gain the market share?

It is a business model that can work, however. This isn’t necessarily a technology manufacturer, but Dualit, maker of household appliances, have built their business around the opposite idea to Apple. They have it so that their customers can not only get the full disassembly manuals for their products, but also buy any component directly from Dualit to repair themselves.

Conclusion

It is a contentious debate. But there is a middle ground too, a sort of part-open source that used to be prevailant in games particularly. And that is openeing up a development environment. Not necessarily the entire codebase, or possibly any of the code base, but providing a development environment which allows third parties to expand on, or fix bugs or build features and patches without being able to copy and paste the whole program to feed their own market. Bethesda released Elder Scrolls 5: Skyrim back in yet because they opened the game up to “modders”, you can continue to play the game even today as if it is new.

In a way Dualit use this model for their hardware by selling the components and not the raw materials.

For the future of web development, where third party apps are the norm and everyone can develop and share their own web software with ease, some degree of open source is pretty essential. The ability to keep secrets allows for bad intentions to develop, and bad abilities to go unnoticed. If source code is open, there is near zero opportunity to sneak in malicious, insecure or badly functioning code as all the code can be reviewed.