How is Open Source sustainable if it’s free
Free and Open Source Software (FOSS) is software coded by someone for anyone to use and build upon for free. And it’s not toy software either; some of the most important and powerful tools in tech are FOSS. This includes things like Linux, which dominates the OS market share of web servers, and languages like Javascript, Python, and C, which are some of the most widely used languages in the world.
This software is not only sustainable, but also powerful enough to be foundational to modern tech. The reason this can happen with no guarantee of money being paid for it is that this works on an economic model that is slightly different from the one the rest of society works on. The open source community “sells” its labour to themselves, and compensate themselves by providing even more labour for even more open source software.
As it’s only one entity dealing with itself, the problem that the concept of money was invented to solve does not exist, so no money needs to be used to make sure the value exchange is equitable.
This does, however, make open source labour a trust based community resource, which are extremely vulnerable to the free rider problem. The biggest culprits of this are tech corporations. So it is imperative that they contribute labour back, or, failing that, money to buy labour.
Why would something not be sustainable if it’s free?
Because no economic transaction can ever be sustainable if the value flowing in opposite directions is not equitable. Money is what we invented to exchange for value when nothing else would work.
This is similar to the social contract but for the economic aspect of society. The social contract for politics says that each member of society forfeits some freedom so as to benefit from the law, order, and safety. Similarly, an extension to economics is that people forfeit some economic value to society, so as to benefit from access to open markets where they can avail things like specialized labour and goods, in exchange for the credit they earned through their contributions.
The classic example to illustrate economic principles like this is a simple economy with a handful of participants. Consider a farmer, a baker, and a cobbler. The farmer grows wheat, the baker turns it into bread, and the cobbler makes shoes. All three need to eat, and the farmer needs shoes so as to go out into the field to harvest wheat. It is obvious that a healthy and equitable socio-economic contract can be set up here, because value can flow in a circuit which fulfills everyone’s needs.
But consider the actual logistics of the value flow here. The farmer can not harvest wheat until they have shoes. This should be no problem for the cobbler if they can see that their bread is only possible because of the farmer’s harvest, but people do not have such visibility in modern society (do you know the names of the people who grew your breakfast?). So if the cobbler has no way of knowing the farmer is proposing an equitable trade, they will refuse it because they think they’ll need those shoes to afford their bread later on.
The problem here is that there is no liquidity of resources. The cobbler has contributed to society by letting the farmer go out to the field without hurting their feet, but that contribution will only mature when the farmer harvests the wheat and when the wheat is grown into bread. That might take days. The cobbler needs some guarantee or promise that the value they provide to the farmer will come back to them in the form of their bread. Something like a receipt for the value they provided to society, and can be exchanged for value right now, rather than later on when the value they provided actually matures (when the wheat the farmer harvested because of the shoes is baked into bread the next day).
The tool we invented to act as this receipt is money, and it is the reason you can get society to fulfill your day to day needs even if the value you provided to earn that privilege is impossible to keep track of otherwise. If you contribute to society by fixing cars, then the value you created should and would come back to you. You need to eat and maybe a car you fixed belonged to someone who manages an industrial bakery and without your work on their car, they couldn’t have made as much bread as they did. Some of that surplus bread should thus go to you so don’t starve and can continue providing your mechanic services. But two questions arise for the baker: 1) How can we ascertain your services were actually involved in the value chain resulting in bread? and 2) How do we quantify the value you added? Both of these questions are trivial to answer if you use money and charge for your services. The fact that the person paid you to fix their car proves that your service was (probably) valuable, and the amount they paid you (probably) reflects the amount of value you contributed.
So if we did not have money involved in these transactions, flowing equally and oppositely to value, a lot of these economic benefits would simply not be sustainable.
So open source isn’t sustainable?
It’s been around for a long time, and it has only grown as an institution, so it looks like it probably is.
The GNU project was started in 1983, 36 years ago, and a lot of the tools created under it are some of the most influential and widely used pieces of software out there today. This includes things like the GNU C Compiler, GNU/Linux, Emacs, and has inspired many other extremely valuable open source tools like FFMPEG, Python, Javascript (specifically all three of its engines on Chrome, Firefox, and Safari), and all the Apache software.
It’s fair to say that if you have even looked in the direction of a computing device like a laptop or smartphone, then you have probably benefited from open source software, at least in some indirect manner. Even if you don’t use these tools yourself, they were critical for someone who made a piece of software that you have used and rely heavily on.
So how could these tools have become such a huge part of the global tech industry (and thus the global economy) if they just don’t follow the same economic model that we just saw is necessary for any economic value to be possible? Well that’s because the open source software that we see thriving today fulfills a condition that removes the need for money as a store of value.
How is open source special?
Unlike the general economy, in the open source ecosystem, the people who produce the value are the same people who consume the value.
If you are not a programmer, you may have seen the list of tools above and thought “how important could these be? I’ve barely heard of them”. That goes back to the idea that you don’t rely on these tools but people who make the software you use do. And that points us to the trend underlying all of open source. That the only open source projects that dominate their market, are the ones made for other developers to use. Developers who have the same skills as those needed to build open source software in the first place.
The users benefit from the tool so it is obvious that they should pay for it. But unlike a traditional system where barter is not feasible and so the value must be exchanged for money, here the users have skills they can use to develop other tools that will benefit the people who made the original tool they used. So if I make a piece of software that you rely on for your work, you can “pay” me back by making a piece of software that I rely on for my work.
Another thing that happens with any innovative tool is that the users will have feedback for the tool, and the people who make the tools will then have to invest a lot of money in understanding the users needs, and then incorporating those improvements into the tool. It is obvious that the users benefit from these improvements and so they must fund it. But what if the users could simply open the source code of the tool up and make the improvements themselves. And the original creator could simply redistribute those improvements to everyone. Now no money needs to change hands as the improvements are being done by the same people that benefit from them.
This has been validated by the open source community over time. There are a lot of people who have directly benefited from the GNU C Compiler and then gone on to use C tools that are beneficial to the people who made GCC in the first place. When Linus Torvalds wants to order groceries online, he interfaces with the company using a web page served to him by a server running Linux, an open source operating system that was named after him when he created it.
An example of an institution using this is how Valve partnered with open source developers to build Proton, an open source compatibility layer for windows games on Linux. This was built on top of Wine, another open source tool which is a compatibility layer for any windows application to run on Linux. Valve benefited greatly from the open source ecosystem here because if they were not able to leverage the windows/linux compatibility work done by Wine, then they would have had to figure out how to run windows games on linux all by themselves. That would probably not have been feasible, and so Valve would never have been able to launch their handheld gaming device, the Steam Deck, to compete with Nintendo’s Switch.
The open source community benefited greatly from this as well because Valve had to make general improvements in Wine to get their use cases to work, and those improvements were then merged in the upstream code. This meant a lot of Valve’s work on Wine is now available for anyone to use for free. This was such a successful paradigm that Apple recently did the same thing with its Game Porting Toolkit.
Would the same economic model work for everything?
No. As mentioned before, the only open source projects that are sustainable and have a huge impact in their industry are the one’s where the consumer can also be the producer. This condition must be fulfilled, otherwise, money is needed.
Taking our old farmer-baker-cobbler analogy, if all three people could do all three jobs then they would not need to account for who did what through money. One person could make shoes for another person, because even if they didn't get the bread they deserve today, they could simply grow their own wheat and bake their own bread until the bread they are owed comes back to them. This liquidity of labour is achieved without money changing hands, solely because everyone has the labour available to them.
As soon as this condition is not fulfilled, the open source model fails. This happens in two observable situations the open source community finds itself involved in. When they produce things for consumers who are not developers, or when they consume things made by producers who are not developers.
The first happens when free and open source tools are made for people who are not developers. These would be people like graphic designers, lawyers, or business people. Because these people do not have the ability to “pay” for open source tools directly by contributing back to it making other open source software, they have to pay with money to create a sustainable transaction. And as open source tools like GIMP, LibreOffice, and OnlyOffice don’t have a economically sustainable way of collecting monetary payment, their proprietary competitors like Adobe Photoshop, Google Drive, and Microsoft Office are the tools of choice for these people. Compare this to the primary tool developers use to write their code, VSCode, which is free and open source
This is also observable with operating systems. While Linux is the most popular operating system overall, if you exclude servers and phones and only consider operating systems people use on desktop computers, then its market share is basically non-existent compared to Windows and MacOS. This is because developers are a tiny fraction of all desktop users. The largest group of desktop users are people in business who use Windows, and the second largest is creatives who use both Windows and MacOS.
The other situation is when the open source community needs to consume resources that they can not make themselves. Things like legal services, community outreach, or food. For the case of individuals in the community, one solution could be only spending some time on open source and spending the rest making proprietary software for profit. But this decreases their contribution to the open source community and would lead to its extinction if everyone did it. In the case of people who wish to participate full time, or institutions like the Linux Foundation, Apache Foundation, or Free Software Foundation who only exist to participate in open source, a return to the old monetary paradigm is needed.
When these organizations have to get legal services, or give critical full time contributors a stipend for work that can not be left undone, they fund this from donations they get from large companies like Google or Microsoft. This may seem like it goes against the principle of the software being free, it actually doesn't. Firstly, it’s only software that becomes critical to global human infrastructure that needs money to make sure it doesn't have any downtime or vulnerabilities. Smaller software but still useful software can definitely be run by a few people in their spare time with no monetary concerns. Secondly, the corporations that donate to these foundations benefit far more from the software than they can ever pay back with developer time (which they also contribute a lot of) so once that trend is apparent, it makes complete sense to set up cash inflows from them for peripheral needs that aren't central to developer operations.
TL;DR
- Money is just a receipt for value provided in an asymmetric transaction
- Open source software is value provided by a group to itself
- They don't need a receipt as they will pay back with same value: more open source sw
- As long as good will is maintained this provides a huge amount of resource liquidity
- While the core operations don’t need money, there are situations when money is still needed