I don’t have a title for this that works.
It’s horrible, it’s difficult, and it’s because all of the titles sound so relentlessly negative that I honestly don’t want to use them. I promise this isn’t about being negative, it’s about the work we have to do to be better as an industry. As someone that doesn’t believe in hills, or like walking up them, or death, or dying, this, I think, is probably the hill I’m going to die on.
I want to talk about how open source has in the most cases, been turned into exploitation by the biggest organisations in the world. How it’s used to extricate free labour from you, and why this is fundamentally a bad thing. I’m going to talk about how we can do better. I’m going to talk about what needs to change to make software, and especially open-source software – something I love dearly – survive.
Because right now, open-source is in the most precarious place it’s ever been in its entire existence, and I feel like hardly anyone is talking about it.
Before I start with the gory details, I want to talk about loving things.
More importantly, let’s talk about how it’s important to understand that you can be critical of something that you love because you want it to be better, not because you want to harm it.
I’ve been building open-source software since the actual 1990s. When the internet was a village, and everything was tiny. When I was tiny. But it’s important to understand that on any journey of maturity, the techniques, opinions, and approaches that get you from A to B, are not necessarily the things that you’re going to need to get you from B to C.
People frequently struggle with this fact. Humans are beautiful and oft simple creatures that presume because something has worked before, it’ll work again, regardless of the changing context around us.
As technologists, and an industry, we’re going to have to embrace this if we want open source to survive.
At this point we all know this to be true.
You probably use Visual Studio Code at the very least as a text editor.
As of 2018 40% of VMs on Azure were in Linux.
Open source won the hearts and minds of people by telling them that software could and should be free.
While the GPL and its variants – were probably not the first permissive and free software licenses – they were the licenses that rapidly gained mindshare with the rising popularity of Linux in the late 90s.
Linux, really, was the tip of the spear that pushed open-source software into the mainstream, and it’s GPL license was originally described by the Free Software Foundation as “free as in speech, not free as in beer”. A confounding statement that a lot of people struggled to understand.
So what does the GPL really mean? In simple terms, if you use source code available under its license, you need to make your changes public for other people to use. This is because the FSF promoted “software freedoms” – literally, the right of software to be liberated, so that it’s users could modify, inspect, and make their own changes to it.
A noble goal, which shows its lineage as the license used to build a Unix clone that was supposed to be freely available to all – a goal centred around people sharing source code at local computer clubs.
It’s important to stress that “free” never meant “free from cost”. It always meant “free as in freedom” – and in fact, much of the original literature focuses on this by describing software that is “free from cost” as “gratis”.
From the FSF FAQs:
Does free software mean using the GPL?
Not at all—there are many other free software licenses. We have an incomplete list. Any license that provides the user certain specific freedoms is a free software license.
Why should I use the GNU GPL rather than other free software licenses? (#WhyUseGPL)
Using the GNU GPL will require that all the released improved versions be free software. This means you can avoid the risk of having to compete with a proprietary modified version of your own work. However, in some special situations it can be better to use a more permissive license.
Despite Linux, and despite early and limited forays into open source by organisations like RedHat the strong copyleft licenses of the GPL were not the reason open-source software is thriving in the market today.
They’re certainly not the reasons ultra-mega-corps like Microsoft, or Amazon, or Google now champion open source.
The widespread adoption of open-source software in the enterprise is directly related to the MIT license, and the Apache – “permissive” licenses, which don’t force people that build on top of software to re-share their modifications back to the wider communities.
Permissive licensing allows individuals or organisations to take your work, build on top of it, and even operate these modified copies of a work for profit.
Much like the GPL, the aim of open source was not to restrict commercial exploitation, but to ensure the freedom of the software itself.
This is a trick question really – because in any situation where there is a power imbalance – let’s say, between the four or five largest organisations in the world, and, some person throwing some code on the internet, the organisation is always the entity that will benefit.
Without wanting to sound like a naysayer – because I assure you, I deeply love open-source, and software freedom, and the combinatorial value that adds to teaching, and our peers, and each other, I cannot say loud enough:
Multi-national organisations do not give a single solitary fuck about you.
Businesses do not care about you.
But you know what they do care about? They care about free “value” that they are able to commercially exploit. The wide proliferation of software in businesses is a direct result of licenses like the Apache license, and the MIT license being leveraged into closed source, proprietary and for-profit work.
Want to test the theory?
Go into your office tomorrow and try adding some GPL’d code to your companies' applications and see how your line manager responds.
Permissive licenses explicitly and without recourse shift the balance of power towards large technical organisations and away from individual authors and creators. They have the might to leverage code, they have the capability to build upon it, and they have the incentive and organisational structures to profit from doing so.
Open-source software took hold in the enterprise because it allowed itself to be exploited.
Nope. It’s entirely accurate.
exploitation (noun) · exploitations (plural noun)
- the action or fact of treating someone unfairly in order to benefit from their work.
"the exploitation of migrant workers"
- the action of making use of and benefiting from resources.
"the Bronze Age saw exploitation of gold deposits"
- the fact of making use of a situation to gain unfair advantage for oneself.
"they are shameless in their exploitation of the fear of death"
Oh wow, that’s got such a negative slant though, surely that’s not fair?
Surely people are smarter than to let their work just get leveraged like this?
This is just the truth. It’s widely reported. The vast majority of open source projects aren’t funded. Even important ones.
There is no art without patronage. None. The only successful open source projects in the world are either a) backed by enormous companies that use them for strategic marketing and product positioning advantage OR b) rely on the exploitation of free labour for the gain of organisations operating these products as services.
I can see you frothing already – “but GitHub has a donations thing!”, “what about Patreon!”, “I donated once, look!”.
And I see you undermine your own arguments.
We’ve all watched people burn out. We’ve watched people trying to do dual-licensing get verbally assaulted by their own peers for not being “free enough for them”. We’ve watched people go to the effort of the legal legwork to sell support contracts and have single-digit instances of those contracts sold.
We’ve seen packages with 20+ million downloads languish because nobody is willing to pay for the work. It’s a hellscape. It victimises creators.
I would not wish a successful open-source project on anyone.
(Never ask reddit)
I recently made the observation in a reddit thread that it’s utterly wild that I can stream myself reading an open-source codebase on YouTube and people will happily allow me to profit from it, but the open-source community has become so wrongheaded that the idea of charging for software is anathema to them.
Let’s get some direct quotes:
“Ahh, so you hate gcc and linux too, since they're developed by and for companies?”
“Arguing against free software? What year is it?!”
“If it’s free, why wouldn’t it be free to everyone? That includes organizations. I’m honestly not clear what you’re suggesting, specifically and logistically.”
Obviously I was downvoted to oblivion because people seemed to interpret “perhaps multinational organisations should pay you for your work” as “I don’t think software freedom is good”.
But I was more astonished by people suggesting that charging for software was somehow in contradiction with the “ethos” of open source, when all that position really shows is an astonishing lack of literacy of what open source really means.
In 1999 Napster heralded the popularisation of peer-to-peer file sharing networks. And Metallica litigated and were absolutely vilified for doing so.
The music business had become a corporate fat cat, nickel and diming everyone with exorbitant prices for CDs (£20+ for new releases!), bands were filthy rich and record executives more-so.
And we all cried – “what do Metallica know about this! They’re rich already! We just want new music!”.
I spent my mid-teens pirating music on Napster, and AudioGalaxy, and Limewire, and Kazaa, and Direct Connect, and and and and and and. And you know what? If anyone had spent time listening to what Lars Ulrich (Metallica’s drummer) was actually saying at the time, they’d realise he was absolutely, 100% correct, and in the two decades since has been thoroughly vindicated.
I read an interview with him recently, where he looks back on it – and he’s reflective. What he actually said at the time was “We’re devaluing the work of musicians. It doesn’t affect me, but it will affect every band that comes after me. I’m already a multi-millionaire. File sharing devalues the work, and once it’s done, it can never be undone.”
And he was right.
After ~1999, the music industry was never the same. Small touring bands that would make comfortable livings scrape by in 2020. Niche and underground genres, while more vibrant than ever, absolutely cannot financially sustain themselves. It doesn’t scale. We devalued the work by giving it all away.
And when you give it all away, the only people that profit are the large organisations that are in power.
Spotify, today, occupies the space that music labels once did, a vastly profitable large organisations while artists figuratively starve.
I wish I had the fine wine and art collection of Ulrich, but forgive me for feeling a little bit like I’m standing here desperately hoping that people listen to this message.
Because we are here, right now.
I love open-source, just like Lars loved tape trading and underground scenes, but the ways in which we allow it to be weaponised is a violence. It doesn’t put humans, maintainers, creators and authors at its centre – instead, it puts organisational exploitation as the core goal.
We all made a tragic mistake in thinking that the ownership model that was great for our local computing club could scale to planet-sized industry.
Here’s the scariest part, really.
We got here because this is what we wanted to do.
I did this. You did this. We all made mistakes.
I’ve spent the last decade advocating for the adoption of open-source in mid-to-large organisations.
I, myself, sat and wrote policies suggesting that while we needed to adopt and contribute if we could (largely, organisations never do) to open-source for both strategic and marketing benefit, that we really should only look at permissive licensed software, because anything else would incur cost at best, and force us to give away our software at worst.
And god, was I dead wrong.
I should’ve spent that time advocating that we licensed dual-licensed software. That we bought support contracts. That we participated in copyleft software and gave back to the community.
I was wrong, and I’m sorry, I let you all down.
Every time a small organisation or creator tries to license their software in a way that protects them from the exploitation of big business – like Elastic, or recently Apollo, or numerous others over the years – the community savages them, without realising that it’s the community savaging itself.
We need to be better at supporting each other, at knowing whenever a creator cries burn-out, or that they can’t pay rent in kudos, or that they need to advertise for work in their NPM package, that they mean it. That it could easily be you in that position.
We need new licenses, and a new culture, which prioritises the freedom of people from exploitation, over the freedom of software.
I want you to get paid. I want you to have nice things. I want you to work sustainably. I want a world where it’s viable for smart people to build beautiful things and make a living because of it.
If we must operate inside a late-stage-capitalistic hellhole, I want it to be on our terms.
And here’s a little bit of light, before I talk about what we need to do the readdress this imbalance.
There are companies that do good work in open-source, and fund it well. They all have reasons for doing so, and even some of the biggest players have reasonably ethical open-source products, but they always do it for marketing position, and for mindshare, and ultimately, to sell products and services and that’s ok.
If we’re to interact with these organisations, there is nothing wrong with taking and using software they make available, for free, but remember that your patronage is always the product.
Even the projects that you may perceive to be “independent”, like Linux, all have funding structures or staff provided from major organisations.
The open-source software that you produce is not the same kind of open-source software that they do, and it’s foolish to perceive it to be the same thing.
We need both better approaches, and better systems, along with the cooperation of all the major vendors to really make a dent in this problem.
It will not be easy. But there’s a role for all of us in this.
This is the easiest, and the most free of all the ways we’ll solve this problem.
The next time each of you is about to send a shitty tweet because Docker desktop made delaying updates a paid feature, perhaps, just for a second, wonder why they might be doing that.
The next time you see a library you like adopting an “open-core” licensing model, where the value-added features, or the integrations are paid for features – consider paying for the features.
Whenever a maintainer asks for support or contributions on something you use, contribute back.
Don’t be entitled, don’t shout down your peers, don’t troll them for trying to make a living. If we all behaved like this, the software world would be a lot kinder.
I think it’s table stakes for the next iteration of package managers and component sharing platforms to support billing. I’d move to a platform that put creator sustainability at its heart at a moment’s notice.
I have a theory that more organisations would pay for software if there were existing models that supported or allowed it. Most projects couldn’t issue an invoice, or pay taxes, or accept credit cards, if they tried.
Our next-generation platforms need to support this for creator sustainability. We’re seeing the first steps towards these goals with GitHub sponsorships, and nascent projects like SDKBin – the “NuGet, but paid” distribution platform.
A step up from that? I want to pay for libraries that I use in my Azure bill. In my AWS bill. In my GCP bill.
While I’ve railed against large organisations leveraging open-source throughout, large organisations aren’t fundamentally bad, immoral, or evil, I just believe they operate in their best interest. The first platform that lets me sell software components can have their cut too. That’s fair. That’s help.
I think this would unlock a whole category of software sales that just doesn’t exist trivially in the market today. Imagine if instead of trying to work through some asinine procurement process, you could just add NuGet, or NPM, or Cargo packages and it’ll be accounted for and charged appropriately by your cloud platform vendor over a private package feed.
This is the best thing a vendor could do to support creators – they could create a real marketplace. One that’s sustainable for everyone inside of it.
For users! For teachers! For your friends!
I feel like I need to double down on what I said at the start. I love open-source software dearly. I want it to survive. But we must understand that what got it to a place of success is something that is currently threatening its sustainable existence.
Open-source doesn’t have to a proxy for the exploitation of the individual.
It can be ethical.
It can survive this.
I do not want to take your source code away from you, I just desperately want to have enough people think critically about it, that when it’s your great new idea that you think you can do something meaningful with, that it’s you that can execute on and benefit from the idea.
By all means give it away to your peers but spare no pity for large organisations that want to profit from your work at your expense.
In music, there’s the idea of supporting our scene, our heritage, the shared place where “the art” comes from.
This is our culture.
Pay your friends for their software and accept it gracefully if they want to give it you for free.
An expanded version of this piece is available as a conference talk - if you would like me to come and talk to your user-group or conference about ethics and open-source, please get in touch.