On economic principles, free & open source software, and paywalls.
Walk the streets of any major urban center in North America today and one thing becomes clear: the cracks of civilization are showing. It’s not uncommon to witness several instances of true human suffering—and sometimes depravity—in a brief walk across a few blocks. And while the modern Westerner’s attention span is remarkably short, anyone remotely honest remembers what these same places were like even a few years ago—they were often safer, cleaner, more orderly, more productive, and more pleasant.
It leads to the obvious question: Why? Why did it change? Why are there now so many visible, impoverished people everywhere? Why does nobody seem to care about where they live, or who lives there? Why have the basic societal interaction standards we once took for granted dissipated away?
I recently understood that this question only makes sense from a particular kind of perspective which arises at a particular time. A person with this perspective is one who witnessed the more orderly society functioning, yet did not witness the building of the more orderly society, and thus does not understand the mechanics of the more orderly society. In other words, this person has a distinctive blind spot—he knows what could be reaped from a more orderly society, yet not what was sown to produce that more orderly society.
Correcting for this blind spot illuminates the absurdity of the question. It’s no saner a question than “why can I no longer travel at 60 MPH?” by a driver whose car has just broken down, or “why are there no buildings completed?” by a construction company manager who fired all of his employees, or “why is there no food?” by a farmer who failed to replant his crops.
The mystery is not why the city has become unsafe—it’s why it was ever safe to begin with. It’s not why there are impoverished people—it’s why everyone is not impoverished. And the reason why that is the mystery—and not the initial question—is that poverty and unsafety are the default state of the world. Poverty had to be eliminated, not created, and cities had to be built, not found.
In other words, what was not produced cannot be consumed.
The same principle works when extrapolated to entire populations, or sectors, or industries. When a population consumes more than produces across time, that population subsists on borrowed time. Without continued net-production, they eventually return themselves to the initial state of the world—impoverished, and without the fruits of any labor.
It’s easy to understand why one would be interested in consumption of others’ product without their own equivalent production—even if it’s involuntary on the part of the producer, making it parasitic exploitation. Production is difficult, often unsuccessful, and it requires sacrifice. When a dog is presented with food, the dog doesn’t wonder “have I produced as much food as I am consuming?”—the dog is happy to consume regardless. While humans are not dogs, they share some of the same primal instincts.
Obviously, not everyone can produce everything they need. But through trade— the voluntary exchange of surplus product—the benefits of one’s production can be extended to others. Imagine, for a moment, that each producer in a society is a node in a graph, and that a directed edge between two nodes suggests the transfer of surplus goods from one producer to another. If each producer produces a unique good, with its own unique set of benefits—let’s say food, shelter, clean water, and clothing—then each producer specializes in one skill, yet is able to consume products from all skills. One producer can specialize in the production of food, yet also have food, shelter, clean water, and clothing, without knowing anything about producing the latter three.
This is, of course, the division of labor. It’s why there are nearly 300 million registered cars in the United States, despite many owners being unable to change their car’s oil (speaking from experience), and especially unable to produce cars. It’s why there are over 300 million smartphones in the United States—making what would’ve been considered state-of-the-art technology a near-ubiquity in even lower-class circles—despite an extraordinarily small population of smartphone producers on Earth.
Underlying all traded goods is a common notion of value—it is perhaps no coincidence they are called “goods”. And in even the most primitive societies, this value organically manifests physically, as currency. Say, for instance, that person A produces clothing, person B produces shelter, and person C produces food. Person A can trade clothing for shelter with person B. Person A then needs food, but person C doesn’t want to trade his food for clothing, and would instead prefer shelter. In order for person A to then obtain food, he must use clothing to purchase more shelter from person B, then trade that additional shelter for food from person C. Person B might not need more clothing, but they want water, and so person A needs to go find some person D who produces water—and so on.
In short, bartering becomes complex quickly, and common currency allows trades to trivially compose.
But imagine, now, persons E, F, G, H, …, Z, who obtain surplus goods from persons A, B, C, and D, yet trade nothing in return. Irrespective of whether or not these transactions were voluntary or involuntary, the benefits of the goods—the clothing, shelter, food, and water—now become diffuse amongst the larger population. The population as a whole now tilts—perhaps almost entirely—towards consumption over production, and thus becomes more impoverished.
Importantly, this is not a population of robots—it’s a population of people. There is a distinct psychological element at work. Whatever the reasons that enabled the productive few to freely supply the consumptive many have created a society in which it is personally beneficial to consume, yet not produce. In such a scenario, three possibilities exist. First, the productive few—incentivized to also consume what surplus good are left, yet not produce more—may become less productive, and resort to their own consumption without production. Second, the productive few may become effectively enslaved to the consumptive many—they must continue producing, and perhaps increase their efficiency, such that the consumptive masses can continue consuming. Third, the productive few require that the consumers trade something of value back—or in other words, they raise their prices.
The first scenario leads ultimately to poverty among the population—goods, while they may still be defined as “free”, will be nonexistent, or at least will be in short supply. The second scenario leads to resentment, violence, the degeneracy and infantilization of the consumer, and a destruction of social fabric—not to mention the effects of such things on the producers’ productive capacity. The third option applies pressure on the non-productive many to become productive themselves.
I see these principles as central to the science of human action, and how it may transform natural resources into something of value to people. Or in other words, central to understanding how true wealth and wellbeing is generated.
I received an email recently which found my paywalled work of the Hidden Grove project—my writings, my codebase, and so on—contradictory with my dislike for tech giants, and my writings on self-reliance and ownership. The overarching argument was that paywalled code, content, and communities are not healthy nor ethical, and the true solution lies in the free and open source philosophy. By my ownership of the content and code, I am depriving ownership and agency from the community. The email’s point being this: software, related content, and community ought to be voluntarily produced and copied at no charge, and the production of this software ought to be financed via only voluntary contributions. It is virtually free in terms of monetary cost to make a copy of a file, and therefore the production of that file’s original ought to add no premium over the cost only of the copying of the file.
Now, to be clear, the email made good points regarding the openness of ecosystem building blocks (which I agree with, but have not written posts about before)—there is good reason that an ecosystem ought to be built on open protocols, specifications, and formats. Such work is the glue of an ecosystem, and it is the glue of an ecosystem which allows any decentralized and non-centrally-controlled composition at all to occur. And indeed, even the most proprietary corners of the software ecosystem still produce open documentation—at the very least—for their operating system APIs, their walled garden software stores, and so on, because without doing so, their ecosystem fails. Such a property is required for any future successful ecosystem—and there’s good reason to suppose that future ecosystems will have a higher standard for transparency and openness than successful ecosystems of the past.
But these points don’t extrapolate to the ecosystem at large—glue cannot solely comprise the ecosystem, just like freely-available walkways cannot solely comprise a grocery store.
I could imagine writing an essay suggesting that charging for food or clothing is unhealthy and unethical. But the reason why food and clothing are charged for nonetheless is the same as why a grove cannot magically become a cabin—it requires human action—production—to make a cabin from a grove. The producer of that cabin requires (and wants) other goods and services, and thus must trade with other producers. And for those other producers to exist, that producer must exist within a successfully productive population—one which selects for net-production over net-consumption, lest the population becomes impoverished through a shortage of goods. This reality comes not from political decisions, nor from top-down societal organization—but rather directly from the human condition within the world.
In the software world, it is clear with abundant evidence that there is a shortage of good-faith, well-made, well-designed, simple, performant, local-first, ethical, non-surveying, handcrafted software. And because software is an important part of computers, and because computers are an important part of the living standard for many, the wealth of many, and the modern world’s social fabric, software is rightly labeled a “good”.
Software production is difficult and expensive—it requires resources, expertise, and time. But software producers cannot simply produce software—they are one producer in a sophisticated network of other producers. The reason why they have food, water, clothing, cars, roads, homes, electricity, leisurely time, vacations, video games, and indeed the computers on which they program (including the software they did not produce) is directly because of their participation in this sophisticated network of producers.
Furthermore, the true “good” of software is not merely one snapshot in time of software which has been produced—in other words, the “good” is not only the executable or source code files stored on disk. It rather walks the line between a consumer good—the executable and source code files—and a service—the upkeep, upgrades, and bugfixing done over time by the programmer (who has expertise in their software specifically).
Given these realities, I find the furthest extreme of the free and open source philosophy not only unethical in its own right in that it incentivizes wide-scale consumption over production and thus impoverishes the software world, but divorced from reality in that it misunderstands the economic forces responsible for the production of software (and all of the production on which software relies) altogether.
The cultural popularity of the free and open source philosophy has, as such, been partly responsible for the software world’s decay, because it convinces capable engineers to build teams with no resources; to build factories with no fuel source; to build cars with no engine. The benefits of any valuable work which does occur are diffuse among the population at large, benefiting corporations and consumers alike, but benefiting the producers responsible to a much lesser degree.
To be clear: A producer’s voluntary decision to freely give food, clothing, or indeed software to others is not an unethical act. Generosity is not unethical—precisely the opposite, in many cases! But freely giving away goods can only come—meaning it’s only physically possible for it to come—from a surplus of goods. Many companies—which have almost all arisen to success through profit-driven production—have a surplus of programming resources, and thus may make a calculation (based on ethics, or other business calculations) that freely giving away software is the correct move for some projects. But when free production becomes the rule rather than the exception, on net, poverty (in some form or another) results.
One might argue that people ought to simply produce without being so greedy—whatever they happen to need or want is irrelevant, and they must work for the collective good. But as I’ve already demonstrated, freely available goods, given for the sake of the collective, can only come from some source of abundant wealth—some source of surplus goods.
But the fact that wealth and abundance is necessary for freely giving is not the primary reason to reject such arguments. The primary reason is rather that it isn’t within one’s rights nor capabilities to arbitrarily command that others sacrifice the maximizing of their quality-of-life, and instead work for the collective. If this were asked of me, for instance, I would simply respond “no”—myself, my family, and my friends are far more important to me than some abstract “collective”, and it’s my right to prefer myself and them over others. This is an ineradicable truth about the human condition, which results in an irreconcilable conflict between the “greedy producer” and the exploitative parasite demanding free goods. Such a conflict erodes trust, good-faith cooperation, and production altogether.
The viable path for those who desire a better software world must be through understanding these economic forces—that they’re an aspect of physical reality, human action, and the human condition itself—and that they’re not aspects of particular political decisions. Large corporations may have a surplus of programming resources; independent programmers don’t. It’s friendly only to current market dominators—through both free labor, and through a lack of competition—for individual, good-faith software producers to enslave themselves to the population at large, rather than to create economic engines capable of amassing the resources required for market-wide competition. For them to freely give up their work is to arbitrarily fix the price of their goods to zero. This does not alleviate, but in fact causes, shortages.
Proponents of free and open source software argue that there are important upsides to the availability of both software and its source code. It allows good-faith consumers to learn and develop as programmers. It allows the programming-capable subset of the userbase to contribute improvements and bugfixes. It promotes user-driven customization, exploding the possible beneficial outcomes of software. It promotes trust—users are, at the limit, capable of inspecting exactly what code they run. It promotes self-reliance—users (consumers) are not as beholden to the original software producer.
Part of this argument vastly overstates the benefits of contributions from a population of decentralized programmers. While a small set of such programmers may familiarize themselves with foreign, open source codebases to a degree sufficient for quality contributions, empirically it seems that such programmers are in a tiny minority. Free and open source projects—particularly ones which are collectively-owned, and which have weak standards—are often disastrously complex, poorly-designed, slow, unreliable, and buggy. The most successful free and open source projects are led by smaller teams with a tight grip over the project, who exercise strong standards and judgment in accepting and rejecting contributions.
But to be clear, there are important truths in this argument. Openness does create trust; it creates tacit knowledge; it does allow some portion of useful contributions; it helps train programmers as apprentices on real projects, who may develop into some of the most valuable contributors on a project; it helps decentralize ownership, such that users cannot have the rug pulled out from under them.
In short, rejecting openness as a model outright is foolish. But worshipping it to the degree that economic reality is ignored? That’s foolish too.
Internet debates will often give the impression that openness is black-and-white—that a project or community is either entirely free and open source to the masses, or it’s entirely closed, for-profit, and practically removed from ethical considerations. But this is a nonsensical and false dichotomy. There is a rich space of possible organizational models which simultaneously obtain benefits from openness, yet respect the economic reality of software production.
I don’t see the reality of a successful software project as being different from a working software solution—the final work must conform to some set of constraints. Ignoring economic constraints when organizing a software project is like ignoring performance constraints when organizing a software project’s architecture—doing so will divorce the solution from exposure to important realities to which it must be plastic.
I wrote before about “closed developer circles”—referenced in the title of this post as software kingdoms—that, under the control of the owner, contain code, information, and community, with access granted according to the terms of the circle’s ownership. I proposed the idea to strike a balance between closed and open models—to provide a model capable of financing projects, accumulating resources, and providing diffuse benefits for a smaller population comprised of those who’ve demonstrated investment (either by personal connection, contributing work, or by contributing capital—which is a stand-in for other production).
Within the walls of a software kingdom, code and ideas can be freely shared with permissive usage rules. Newcomers can be trained, and have their questions answered. Shared tacit knowledge can be accumulated amongst members. Culture can be built, such that cooperation naturally arises. Members can reap the benefits from production. Ownership may decide that some work is to be open source and free, too—this has been the case for the vast majority of my posts, for instance.
But importantly, a software kingdom has the additional ability—disallowed by the free and open source model—to focus and filter for economic power in the form of capital. It is therefore an organization more capable of growth, production, and thus real consequences in the software world.
It’s for these reasons that I’ve personally adopted this model for Hidden Grove, rather than what I see as the naïve and hamstrung free and open source model, which has failed to prove itself productive, and has failed to compete in the software world, for decades.
If you enjoyed this post, please consider subscribing. Thanks for reading.