On Open Source and the Sustainability of the Commons

by Ploum on 2024-07-01

TL;DR: put your open source code under the AGPL license.

Much have been said about the need to pay Open Source developers for their work and the fact that huge corporations use open source software without contributing back.

Most articles I’ve been reading on the subject completely miss the mark. Plenty of commentators try to reinvent some kind of "free software but with forced contributions" or "free software but non-commercial". Those are naive and wrong. If you impose limitations, it’s, by definition, not free software anymore.

The problem is not about Open Source or Free Software. The problem is everything else.

Open Source utopia, as envisioned until the first decade of this millennium, was to create a huge, powerful stack of open-source software that would serve as the foundations of any human endeavour. Including building businesses or, for some, proprietary products. Free Software would be part of the commons, a huge natural pool of resources. Every business would be small in comparison. Just like we allowed private companies to sell water (a common good) thinking the companies would be small compared to the nearly infinite supply of water.

We were naive.

What we got is more or less the opposite: huge monopolistic corporations and lots of small fragmented free software pieces that connect them. Bottled soda factories pumping so much water that whole populations start to suffer from the lack of fresh water and, as a consequence, being forced to buy bottled water.

Technically, Open Source won. Politically, it lost. The reason is simple: it was easier to build consensus around technical solutions, washing away political implications that were seen as out of scope or too hard to agree.

Every megacorporation is now built on top of free software. But they managed to make it effectively proprietary by hiding their code behind web interfaces. When publicly distributed, the open-source code is hidden behind layers of indirection bypassing any packaging/integration effort, relying instead on virtualisation and downloading dependencies on the fly. Thanks to those strategies, corporations could benefit from open source code without any consequence. The open source code is, anyway, mostly hosted and developed on proprietary platforms.

Even hardcore free software geeks now use some dependencies/plugins mechanisms that are hardcoded to only look at Github. Through nested dependencies, millions of people are running code directly downloaded from Github without even realising it.

Due to the original open-source utopia paradigm, every time a developer push free code on Github, she feels like she’s contributing to the commons. But, effectively, she’s pushing code into production in hundreds of exploitive corporate projects. When a problem occurs, per corporate tradition, pressure and blame fall on the maintainer. Even if that maintainer is not on the payroll.

Paying the Maintainer Makes the Problem Worse

That will be an extremely unpopular opinion but I’m convinced that paying the contributor/maintainer a dime is not the solution. It worsen the situation. It acknowledges the responsibility of the aforementioned maintainer and legitimises the exploitation.

We need to remember that most (if not all) free software is provided, "without liability". That rule should be enforced. We should not care about corporations. If there was no support contract prior hand, let them burn. Trying to force corporations to pay the maintainer is like trying to force landlords to pay firefighters only if their house is burning. Or agreeing that a factory should give a small tip to volunteers cleaning the river it is polluting.

Paid and unpaid open source developers are pressed into providing a support they never promised in the first time. So they ask companies for mandatory contributions, something they explicitly refused when they licensed their code.

So, what can we do?

In the short term, it’s very simple. If you care about the commons, you should put your work under a strong copyleft license like the AGPL. That way, we will get back to building that commons we lost because of web services. If someone ever complains that a web service broke because of your AGPL code, reply that the whole web service should be under the AGPL too.

We were tricked into thinking that BSD or MIT licences were "freer" like we were tricked into believing that building a polluting factory next to our local river would be "good for the economy". It is a scam. A lot of unpaid or badly paid developers would probably benefit from switching to a copyleft license but they use BSD/MIT because they see themselves are "temporary embarrassed software millionaires".

We should also actively fight against automatic installation of recursive dependencies. No, it is not normal and no sanely engineered system should do this. We should not trust the Microsoft-owned Github to distribute software. A git repository is a development tool, not a distribution mechanism for end users. Something the Great Ancients understood fully when they started projects like BSD, Debian or Red Hat which are called… "distributions". Yes, the "D" in BSD stand for "distribution". It is not by accident that those distributions care a lot about the license of the software they distribute.

Get Rid of Monopolies

In the long term, the root causes of most of our problems are the monopolistic corporations. Without them, we would not have this discussion. There’s a generational divide here. Brilliant coders now on the market or in the free software space have never known a world without Google, Facebook and Github. Their definition of software is "something running in the browser". Even email is, for them, a synonym for the proprietary messaging system called "Gmail" or "Outlook". They contribute to FLOSS on Github while chatting on Slack or Discord, sharing specifications on Google Drive and advertising their project on Twitter/X. They also often have an iPhone and a Mac because "shiny". They cannot imagine an alternative world where monopolies would not be everywhere. They feel that having nice Github and Linkedin profiles where they work for free is the only hope they have to escape unemployment. Who can blame them? They cannot imagine a world without monopolies. They don’t search, they Google, they don’t shop online, they go on Amazon, they don’t read a book but a Kindle, they don’t take a coffee but a Starbucks. For them, politics is only a source of conflicts, a naughty word.

As they start to understand that they are exploited by those omnipotent deities, they see only one way to make it acceptable: ask, through one of those deities (Twitter, Facebook, LinkedIn), to be paid. They understand that they are two classes of coders in the world: those who are exploited without being paid and those who are paid to be exploited. A bit or even more in some cases. While a few hands keep all the power.

What elderly, like myself, should teach them, is that there are many alternatives. We can live without Google, Facebook Microsoft, Apple, Amazon. We can write code which is not on Github, which doesn’t run on an Amazon server and which is not displayed in a Google browser. We should also insist that every piece of technology is, by essence, political. That you cannot understand technology without understanding the people. And you cannot understand people without understanding politics. Every choice you made has an impact on the world.

At the turn of the century, the free software community was focused on fighting Microsoft monopoly. We even joined force with Google and Apple to fight Microsoft. We completely failed. We helped build a world where mostly everything is "Microsofted", "Googled" and "Iphonized". All of this made possible thanks to open source and millions of hours worked for free by people who contributed to what we thought was "the commons".

The lesson we learned is harsh: we can never trust corporations with anything. They destroyed our oceans, our atmosphere and our politics. There’s no reason to trust them with our software, our privacy and our daily lives.

In the long term, our only hope is to build stronger commons. Every day, we must fight to protect and improve the commons while letting corporations have as little power as we can over it and over our lives.

If you are a creator or a coder, you can do it today by adopting copyleft licenses and enforcing them as much as you can.

Put your open source code under the AGPL license!

As a writer and an engineer, I like to explore how technology impacts society. You can subscribe by email or by rss. I value privacy and never share your adress.

If you read French, you can support me by buying/sharing/reading my books and subscribing to my newsletter in French or RSS. I also develop Free Software.