This blog post is inspired by a tweet I saw recently that directly expresses a sentiment that I’ve only seen implied in other forums. I figured I would take the time to craft a direct response.
How is Socialism defined? Many political theorists have answered this question, but I think the following citation from Upton Sinclair captures the essence.
“Socialism, you see, is a bird with two wings. The definition is ‘social ownership and democratic control of the instruments and means of production’”Upton Sinclair, “Remaking the World”, A Monthly Magazine for Social Justice, by Peaceful Means if Possible, October 1918, vol.1, no.6, p.5
In reference to this prospective definition allow me to illustrate how open source software is not inherently Socialist. Let’s say, for example, that I create an open source project to accomplish some task of personal interest to me. In no way does everyone else in the software world own that code alongside of me. I do not need to seek anyone’s permission to change the code, nor am I under any obligation to accept contributions to my project. Someone else can clone (or “fork”) my project if they please and make modifications to their own copy, but that is now their copy with its own existence separate from my original project. Social ownership is the ownership of one entity by parties in common. Therefore the example demonstrates how social ownership isn’t a requirement for small open source projects.
If we examine social ownership in the context of larger open source projects — such as Kubernetes or Consul — these can have extensive communities involved in building, reviewing, testing and documenting the software. However group participation is NOT the same thing as group ownership. The Oxford-English Dictionary gives the definition of “ownership” as follows:
“The act, state or right of possessing something.”https://www.lexico.com/definition/ownership
It’s clear then that ownership implies property and Kubernetes is not the property of any individual or company working on it. Indeed the “services and support” business model so popular in monetizing open source software refutes social ownership. If the project were owned in common then the community could legally force other businesses providing services based on a project to pay some residual to the project’s participants.
So much for social ownership. What about democratic control? In my previous example of the small, individually created open source project above, I am the sole arbiter of what goes into the codebase. If some other group wants to contribute a modification I don’t agree with, I am under no obligation to accept it. On larger projects, contributions are governed through pull requests which are then reviewed by members of the community. In my experience, anyone can review a pull request but only a few can merge it. This is not something open to a majority vote, but rather to a minority of people within the project who have a great deal of experience with the project and a vested interest in its conceptual integrity. Thus democratic control is not an essential requirement in open source software.
The final point from the definition has to do with “the means of production”. Is code sitting in a source control repository producing anything? No. It has to be compiled or interpreted then executed by a machine. Code is only productive when combined with a machine to execute it. Expand this to modern applications and you quickly see that semi-conductors, disk storage, networks, even whole eco-systems of other applications are required to derive any productive value from code as written. Socialist thought errs by asserting the fallacy that any one element in a long, complicated supply chain is by itself the means of production. And what would a Socialist supply chain look like anyway? A myriad of inter-related operations all with their own “workers’ committees” trying to ensure an abstract sense of what is “fair and equitable” not only in their negotiations with one another but also in regard to their internal affairs? I refer you to the decline of the Twentieth Century Motor Company from Ayn Rand’s novel “Atlas Shrugged” for a clear depiction of how appalling and destructive such a model would be.
Asserting that open source software is “inherently socialist” as found in the cited tweet commits an error of philosophical intrinsicism. The author of the tweet is assigning a quality to open source based on superficial characteristics that seem to align with his a priori support of a given political philosophy. A better approach would be to inductively analyze whether concrete observations in the field align with the definition of the hypothesized classification. I argue that they do not.