12 December 2021

"Open source" is not broken

I read this article (“Open Source” is Broken by Xe) written in the aftermath of the unfortunate log4j2 fiasco. The author discusses a pertinent problem that has plagued the FOSS (Free and Open Source) world ever since large for-profit corporations started their widespread consumption of FOSS, ever since countless “unicorns” raised infinite amounts of funding on valuations built pretty much entirely on FOSS, ever since FOSS got co-opted into corporatisation and capitalisation. And yet, countless maintainers of critical and widely used FOSS struggle to make a living.

Whose fault is this? I do not believe that this is FOSS’ fault as a conceptual framework or a system. If FOSS was broken, the internet as we know it today wouldn’t exist; the countless marvels of technology that we take for granted and techno-economies that thrive on them wouldn’t exist; millions of software developers (like me) who learnt to write code with FOSS and learnt to make a living with that knowledge wouldn’t exist.

FOSS as a system has certain fundamental freedoms at its core. These freedoms are codified for practical (and legal) purposes as FOSS licenses that ensure the same fundamental freedoms albeit in slightly different ways. This has worked beautifully to create today’s thriving technological landscape where anyone, anywhere (assuming geo-political freedom of access, unfortunately) can instantly get access to the highest quality cutting edge technology—free of cost, no strings attached, no questions asked. What a broken, terrible world it would be if every bit of software and information had to be paid for. A world without Wikipedia. A world without FOSS programming languages and operating systems and databases and browsers. Even in 2021, how many people even have the ability to pay $1 online, something the Western world seems to take for granted. Billions of people would be shut out from being able to access information and technology.

How is it that FOSS, a beautiful system that has uplifted and empowered massive swathes of human beings across the globe irrespective of their borders, race, creed, and economic backgrounds, is “broken”? To imply that FOSS is broken because it is abused by a certain category of users, is a form of victim blaming.

FOSS is the victim, not the culprit

The overarching issue here, like with many things, is profit/rent seeking and maximisation which underpins pretty much all established economic (hyper-capitalistic) systems. For-profit corporations exist to maximise profits for its shareholders at any (generally legal) cost. While the frameworks that define corporations may be “modern”, profit and resource maximisation has been the hallmark of most human civilisations since time immemorial. FOSS, despite its legal manifestations, is still largely a system of spirit and goodwill. When someone makes a FOSS library available for $0, it is inevitable that a for-profit corporation whose sole purpose of existence by definition is to consume resources at $X and sell resources for more than $X for a profit, will consume it. Where is the spirit or goodwill to contribute to a resource that cost the corporation $0? Is it with the developer who installed the lib? Their manager? The VP? The CTO? The president? The CEO? The board? The shareholders? Can the VP or the CTO convince the board to create a fund to pay $X for resources that cost $0? Paying $X for things that cost $0 (giving away money for “free”) is fundamentally incompatible with the very nature of for-profit corporations. The system is broken, not FOSS.

This is incredibly frustrating to FOSS contributors and people who care about FOSS and its spirit. I never cease to get frustrated when so-called “tech” companies boast of their “innovation” and “growth” without, forget contributing, let alone acknowledging FOSS on which they’ve built their enterprises. Our economic frameworks are in such a way that systems of goodwill and public good like FOSS are destined to get abused. If one thinks about it, in reality, for a for-profit corporation, it is not abuse but playing by the rules—optimal utilisation of resources to generate profits (unprofitable “unicorns” of today still operate on the premise that there will be future profit).

Free as in beer

FOSS does not imply that software and labour that go into it have to come free of cost. It is absolutely fine to sell FOSS for any price its creators deem fit. FOSS is free as in freedom and not free as in beer (cost). And yet, how many FOSS projects does one come across that charge a fee for access? In the last two decades of using FOSS, I cannot recollect a single instance where I had to pay a fee to access FOSS (and for the longest time, I would not have been able to afford to pay any either).

Then why is it that millions of FOSS developers, despite knowing that their work may be consumed by for-profit corporations for nothing in return, continue to produce immense amount of FOSS free of cost? This is what I certainly do on a daily basis. In reality, if there is a fee, very few people will (can) use it. Wikipedia and countless news websites pleading for donations and subscription fees to be sustainable is telling. Thinking about it, if there was a paywall, even for $1, how many people would pip install a library?

With a fee, the likelihood of gaining adoption and usage (which is the whole point of making one’s work FOSS and publishing it out in the open irrespective of the philosophical goals) drops drastically, and given by what seems to be an almost total lack of FOSS that charges for access, possibly to zero. That is, if all FOSS charged a fee for access, FOSS as a system would most likely never have proliferated. If there is no usage or adoption, then there is no question of funding or being paid for the labour either. Textbook Catch-22.

Then again, how does one price FOSS? How much would one be willing to pay for a 100 line CSS library, or a UUID generation library, or a logging library, or a full fledged database? How about a Linux distro and its countless direct and transitive dependencies? In the NodeJS world, it is common even for not-so-complex software to have thousands of dependencies. What if all such dependencies, every bit of FOSS, cost a fee? The internet and the world as we know today wouldn’t exist. As I said earlier, I certainly wouldn’t have been able to learn and become a developer myself. Wikipedia would most likely not have come into existence given that it was entirely built on FOSS which again was built on other FOSS; ad infinitum.

It is absolutely right that there has to be viable funding for FOSS projects especially given the advent of for-profit megacorps and their ways of consuming FOSS. It is absolutely right for FOSS contributors to ask to be compensated for their labour and time.

That these don’t exist for complex reasons, however, is not FOSS’ fault. That is a reductionist view along the same lines of “A FOSS developer should know what they are getting into when they charge $0. Why not just charge money? It’s their fault.”. FOSS developers cannot predict the growth of their projects to even think of pricing, which is a post-facto outcome of it being widely used, which again significantly depends on it being free of cost in the first place. The graveyard of dead FOSS projects is far bigger than the school of budding and established FOSS projects. All that was labour and time too.

Whose fault is it then? I believe that it is the society’s fault, the system’s fault, no matter how abstract or vague that sounds. Modern economic systems and civilisation are so intertwined that one cannot even begin to think of ways to untangle them to carve out a better situation for FOSS when these are the same systems that are responsible for graver problems like extreme income inequality and planetary destruction. It sucks for FOSS and FOSS developers, but, again, it is not their fault. While I believe that it is unethical for large for-profit corporations to not support FOSS projects from which they derive (extract?) immense amounts of value, it is not illegal, thanks to the system.

It is a complex societal problem and a complex reality with no silver bullet solutions or answers. I really hope viable solutions emerge so that developers whose efforts on which the world is built do not have to struggle to pay rent. But, it is not FOSS’ fault, and FOSS is not broken.

FOSS is not black-and-white

I have never written FOSS in expectation of monetary returns, even when I was barely making a living. I did it because I liked it. I continue to write useful FOSS because I like doing it and seeing people use my software makes me happy. Do I get annoyed when entitled demands show up on GitHub issues? I do. Do I get annoyed when people don’t read the documentation and post trivial questions wasting my time? I do. Will I get annoyed if a mega-corp consumes my work in ways I don’t like? I most likely will. Will any of these detract me from writing FOSS and giving it away? No. I am just one drop in the ocean of FOSS contributors who write FOSS for countless personal reasons. That is the beauty of FOSS. FOSS is not black-and-white.