One of the most wonderful things about kids is all the ways in which they force you to look at the world anew. Take, for example, the first time a kid asks about a seed in their food. The pure amazement in their eyes when its explained to them that this tiny thing, that they were about to chomp down on, could instead be planted into some soil and grown into a whole new tomato, or cucumber, or corn or pea plant, is intoxicating. When they actually run off to find a cup and a cotton ball to place those seeds in so they can water and watch them germinate, you can’t help but share in their excitement.
When they, having seen this miracle performed before their eyes, subsequently ask why you bother buying anything at the grocery store, instead of just growing it on your own, is enough to make you reevaluate the whole concept of economics.
The first time my wife went through this process of discovery with our kids, I started thinking about the parallels between farming and open source software. At first, the analogy seemed rather apt. Why would you pay a farmer to grow food for you when you could do it yourself? How is it that farmers are willing to sell you food containing the very seeds you would need to start your own farm and potentially put them out of business?
The reason farmers can make money at all is because they are willing to do the hard work of managing the land, watering the crops, harvesting the food at just the right time and transporting it to a market where you can so conveniently pick it up. This is just like how, even though PostgreSQL is free and open source, you might still pay someone to provision the servers, configure and deploy PostgreSQL with just the right parameters, monitor up-time and manage fallback, providing you with a simple database URL so that you can immediately make use of this software.
Unfortunately, this rhetorical house of cards collapses with just the slightest poke. Yes, farmers do manage the land, but many do not manage their own seed stocks any longer. They will pay a giant agribusiness who has taken the time to perfect various strains for drought and pest resistance. These businesses may have even enhanced their seeds with genetic engineering. Where the analogy really breaks down, though, is that these agribusinesses are typically immensely profitable, very unlike the vast majority of open source projects.
The reality is that modern farming looks much like many other “goods”-focused businesses. They purchase some raw material inputs, apply a transformation on those inputs utilizing capital resources and proprietary knowledge, and generate goods that they can sell in order to cover the cost of the inputs and extract value from the transformation. The notion of a farmer who owns all the inputs and who requires only sun, water, and the farmer’s own physical labor to produced food is rather antiquated. In the face of economies of scale, massive supply chain networks, and competitors who are able to commoditize every element of production, this idyllic picture of the self-sufficient farmer just can’t compete.
Similarly, the notion of an open source developer who produces their own code, manages infrastructure and deployment, and charges users not for the software seeds of their product but only the fruits of putting all these pieces together does not stand up in the face of competition from large cloud providers that have commoditized everything but the code. The only things that prevents open source developers from going the way of the dodo and the subsistence farmer are the open source licenses they can place on their code. These licenses place restrictions on how that code can be used, shared, copied, and modified. In short, so long as the big cloud providers cannot commoditize the process of producing code, open source can hang on.
So long as producing code cannot be commoditized…about that…
Within the last few weeks a new phenomenon has emerged, the consequences of which I think are not fully appreciated by the software community at large, and the open source software community in particular. Using AI-powered coding agents, it is now feasible to completely reproduce open source code in a way that does not violate the restrictions of any license, but which results in a functionally equivalent piece of code.