A Commons of Software Productive Infrastructure, By and For Capital

13 min read Original article ↗

The problem

There is a growing call for sustainable open source, non-profits, and adjacent organisations that appears to align with the very strong culture of radical anti-capitalist organising and contribution in either free or open source software projects1. There is also an almost unaminous shallow understanding that there is an "exploitation of the software commons" by capitalists, in that software licenses typically permit capitalist firms to use software without reciprocating value. But it ignores that capitalist firms have always been drivers of free or open source, even within the GNU Project itself.

This is a narrative that itself is now part of the perpetuation of exploitation, and provides an ideological exception for anti-capitalists to contribute in their free time to a system that is not neutral. And is in fact part of and a reinforcement of capitalism2, and this is preventing us as software engineers from fulfilling the social needs of end users.

A commons of software productive infrastructure by and for capital

What is software productive infrastructure?

The prevailing understanding of the economics of open source is very innocent. We think romantic imagery of free-software pioneers among like-minded peers in an academic environment. Or of present-day noble maintainers attempting to meet the social needs of end users. But this is romanticism and it is not accurate even in the context of free software and the early days of the GNU project.

The problem is that the majority of work in producing software is not allocated to meet the social needs of end users. Even if it were, a significant proportion of work would need to be directed towards the production of a software means of production, a capital good. No one can make software without compilers, libraries, and other similar projects that help us create software. Even the most simple software will create utilities that can expand to libraries or frameworks as the software develops.

Before the GNU manifesto was even published3, Stallman had to build this kind of software4, starting with GNU Emacs before moving onto the GNU toolchain. This is also the exact source of interest in free software (and presently open source software) from capitalist firms, because it reduces the costs for any capitalist firm that develops software5, and any firm that uses it.

The organizations that use software, namely schools, factories, offices, and e-commerce enterprises, collectively employ far more software developers within their organizations than the few companies who sell proprietary software, such as Microsoft. Thus, free software is very attractive to these organizations as it allows them to reduce their individual development costs by collectively maintaining a common stock of software assets. Thus, the use-value of free software is valued by organizations that can and do pay software developers to make it, even though they have no exclusive copyright on it

– Free software: copyright eats itself: The Telekommunist Manifesto

This isn't restricted to just software means of production and capital goods though. There is lots of other software that assist or organise production even if they aren't directly a part of it. Version control systems and present day git forges, communications systems for coordinaing development, platform infrastructure to support deployment and distribution, all have a range of open source ecosystems for much the same reason as above (think Matrix, Gitlab, Kubernetes etc today). Essentially we can refer to these kinds of software and infrastructure as software productive infrastructure. Primarily this isn't an end user consumer good, but is part of the production of other products or the operation, coordination, and circulation of other goods and services. Although they all tend to be employed like capital goods in reducing the cost of production for capitalist firms.

The GNU Project, a commons of software productive infrastructure

The GNU project explicitly has a moral grounding in the philosophy of free software and tried to produce a UNIX replacement for end-users. Not only for employment as a capital good for firms but also as a consumer good6. And they also aimed to "finish" or "complete" the GNU system (with waterfall development being the most common way to produce software at the time)7. The reason why the GNU project never finished is not because it was too complicated, too unfocussed, but it's because only the work on software productive infrastructure, such as the GNU toolchain, could reproduce itself with interest and support from capitalist firms. Employing free software as an end user simply did not have the same resource allocation or interest.

Capitalism doesn’t require that a profit be made on the production of capital goods because profits are made through the control of the circulation of consumer goods. Anything that decreases the cost of capital consequently increases the potential profit that can be captured through the sale of the goods. Capitalist firms will support the creation of copyleft software in order to employ it in production. However, in most cases, they will not support the creation of copyleft art. Why would they, as art is a consumer good, and the industry is not in the business of giving away consumer goods for free. They are in the business, however, of earning profits by controlling the distribution of consumer goods. Failure to understand the difference between capital demand and consumer demand propagates the myth that the success of free software can be a template for free culture. Under capitalism, only capital can be free. That’s why software can be free, but culture cannot be free without more fundamental shifts in society.

– Free culture requires a free society: copyfarleft: The Telekommunist Manifesto8

Reading through the early Free Software Foundation and GNU bulletins this is pretty clear to see, especially in the donation acknowledgements. A significant proportion of the resources being allocated to the FSF were from the vendors of commercial software9. And later there is explicit thanks to a multitude of corporations that Stallman has been in direct conflict with ideologically: Intel, Motorola, Texas Instruments, Hewlett-Packard, NeXT, Sony, IBM, and many more10. These early days of free software are a lot similar to the foundations providing governance over FLOSS projects today than most people realise if they removed their imagined nostalgia.

The investment into the GNU project as software productive infrastructure commons becomes even more apparent by the incorporation of Cygnus Solutions from 198911. Cygnus Solutions was a hugely successful and influencial startup that was founded with the explicit purpose of developing and providing support for free software and they were acquired by Red Hat in 1999 in a transaction valued at $674m, or $1.3b in 202612. They supplied many maintainers for the GNU project and by 1991 were doing "over 50% of all GNU toolchain development"13. Stallman himself recognises the significant impact Cygnus was making to the project when the GNU project appeared to "Stall" in 199314, and Cygnus frequently appeared in the FSF's own bulletins with donation matching campaigns, and advertised their own services as a way to fund and deliver development of the GNU toolchain. Communiques from both the FSF and Cygnus explicitly identify developments on the GNU toolchain that were a product of collaboration between the FSF and Cygnus15. John Gilmore, a Cygnus Co-founder, is presently a director of the FSF and in his bio for the FSF states "He co-founded Cygnus Support, the successful commercial free software company that polished and supported GCC, Binutils, and GDB; and invested tens of millions of revenue dollars into engineers improving GNU tools"16.

The GNU toolchain was not simply produced by the FSF or volunteer contribution. By the end of the 1980's the GNU toolchain was being produced directly by and with the material support of captialist firms. And the GNU project at large was being reproduced by its employment as a capital good in the production of other software. This did not happen in conflict with the principles of free software, it was totally complementary and embraced while the software that was free was employed as software productive infrastructure.

Attempting to open source consumer goods

Source-available license agreements pre-date free software, even with one such agreement between MIT AI Lab, Symbolics, and Lisp Machines Incorporated being a dispute contributing to Stallman's focus on the GNU project17. Alongside permissive software licenses for software produced for Unix environments, BSD obviously being the notable mention being described as "freely redistributable"18. They became even more prevalent in the run up to the dot com bubble. The Apache HTTP server was also described as "source code available" prior to the Open Source Initiative, despite qualifying as free software by definition. With their own about page describing why Apache is free as in beer rather than following the free software party line19. The NCSA Mosaic web browser, the counterpart to the NCSA httpd that the Apache http server project adopted, was also source available with several companies buying licenses to develop and sell their own web browser, including Microsoft (deriving internet explorer)20, and Mosaic Communications Corporation. That being the company that would become Netscape Communications because Mosaic would be the subject of the codebase rewrite that would be internally known as Mozilla, and become Netscape Navigator21. NCSA Mosaic was a major consumer facing product that was being distributed with source code available, but was controlled by the need for a commercial license to redistribute.

The term open source itself was coined to successfully brand the practical advantages of both free software and the permissive BSD/Apache software lineage to capitalist firms. That were already the primary means by which free software was being reproduced. The Open Source Initiative was created during a cataclysmic moment when Netscape announced the intent to make its source code "freely available" as a commercial strategy22, but had not yet done so, and did not know how to. The difference between this and the prior NCSA Mosaic licensing was that Netscape would be freely redistributable, so the parent company would have no control over who forked etc.

For Christine Peterson, this was simply a matter of renaming free software because of how distracting the discussion of free beer was.

At these meetings, we discussed the need for a new term due to the confusion factor. The argument was as follows: those new to the term "free software" assume it is referring to the price. Oldtimers must then launch into an explanation, usually given as follows: "We mean free as in freedom, not free as in beer." At this point, a discussion on software has turned into one about the price of an alcoholic beverage. The problem was not that explaining the meaning is impossible—the problem was that the name for an important idea should not be so confusing to newcomers. A clearer term was needed. No political issues were raised regarding the free software term; the issue was its lack of clarity to those new to the concept.

Bruce Paren's account of the same events support this, stating that the initial OSI definition was just a copy and pasting of the debian free software guidelines23. I think there is a lot of misreading about this event because of Raymond's write-up that would follow24. Because when it came to explaining what open source was, OSI co-founders Raymond and Perens would in their own terms de-emphasize "the importance of the freedoms involved in Free Software"23 and "the Free Software Foundation's propaganda"26. With Raymond arguing quite explicitly about the reduction in capital required to produce software that is open source27. People often point to this moment as though commercial interest did this delibertly to sabotage free software but this is revisionist28. The moral argument of free software was not relevant neither to free software's own reproduction by them or in the practical value free software already had to capitalist firms, using and maintaining explicitly free software as software productive infrastructure throughout the history of the GNU project, and consistently within the ideology free software29.

This is the turning point where the free software community would begin to feel the consequence of the capitalist firms always being the primary way in which free software was reproduced, now that they had their own label: open source.

The ideology of free software has failed to substantially deliver freedom in consumer software

The software productive infrastructure that had to emerge before the GNU System could be built, such as the GNU Toolchain, only reproduced itself through its employment in the production of software in capitalist firms.

The reason why the GNU project never finished, the reason why "there is no good GUI for free software", the reason why foss startups go open core, the reason why non profit foundations fail to adequatly meet the social needs of ordinary end users, are all expressions of the same contradiction.

Free software could abolish the private ownership of software as a commodity, but it could not abolish the social relations around its production. The software commons was not simply a commons for end users, or society as a whole. It became a commons of software productive infrastructure: a shared stock of tools, libraries, operating systems, protocols, compilers, and platforms that reduced the costs of production for anyone capable of employing them.

And under capitalism, that means it became most “free” precisely where capital needed it to be free.

Free software really did defeat proprietary enclosure across large parts of the software stack. But it did so most successfully where software functioned as a means of production, not where it appeared as a social good for end users. The freedom of the code did not become the freedom of the people using it. It became the freedom of capital to build upon it.

Is FLOSS materially progressive?

You might be tempted to conclude that this means free software and open source are not progressive over proprietary software but that would be a mistake30. FLOSS is materially progressive as it socialises access to software productive infrastructure, reducing the monopoly firms like Microsoft have, and lowering the capital needed to begin production. The result is a progressive development of productive forces in software production, but the software productive infrastructure commons is still only reproduced by capitalist firms for their own benefit.

You might be tempted to conclude that you would need to form a cooperative with your friends in order to reproduce software for social need. But a cooperative's purpose is still to accumulate capital, the purpose is still profit in private ownership. What is needed is organisations that create and maintain a common stock of productive assets, venture communes.

Check out The Telekommunist Manifesto.

Closing

This is likely going to become part one of a series called "Software for Social Need" is a telekommunist manifesto of sorts that I am writing to explain why the Matrix project consistently fails to meet the social needs of users and how we should try to fix that without boring cooperatives or proprietary software.

Thanks once again to my sponsors on GitHub and Ko-fi. I'll see you in the next update.