There Are No Good Philosophers of Software

There are no good philosophers of software.

There is some good philosophy inspired by software, or on the society created by software, or on how software changes the way we think.

There is no good philosopher of software construction.

That is the provocation I threw out on Twitter in response to Hillel Wayne‘s excellent prompt, two and a bit months ago.

The provocation got some attention, and what I was hoping for even more, some excellent responses, and suggestions for new things to read. It definitely highlighted some gaps on my side. But I honestly do feel there is a hole where the philosophy of software construction should be, and that the world feels this lack keenly, especially when we consider how ubiquitous software is in sensing, controlling, and mediating that world. So I’ve recapped the original thread below, as well as some good responses to the original prompt, especially ones that point in interesting new directions.


Deleuze and Guattari describe philosophy, as distinct from art and science, as the creation of concepts.

Cover of Wimsatt - Reengineering Philosophy for Limited Beings

Hillel (the OP) thinks deeply and reads broadly on software construction. I would argue that there is no writer creating deep concepts for software construction as part of a larger project.

This isn’t really an anomaly. It’s because there is very little philosophy of engineering.

The two really compelling books I would put in that category are Simondon’s On the Mode of Existence of Technical Objects and Wimsatt’s Re-Engineering Philosophy For Limited Beings. Simondon only had readily available English translations relatively recently, and should be read more. This book analyses how machines improve through being recomposed in their broader context (milieu). A key concept is concretisation: replacing theory with realized parts. Wimsatt is great and you don’t have the translation excuse. He also touches on software and programming, but is not really a philosopher of software. A key concept is “ontological slime”, spaces of symbolic irregularity which have no simple organizing theory.

Otherwise, there is philosophy which theorises software and uses its concepts to describe the world – such as Sadie Plant’s Zeroes and Ones, or Benjamin Bratton’s The Stack.

There is writing which gives a sense of what computation is – such as Hofstader’s Gödel, Escher, Bach. “Strange loop” counts as the creation of a concept, so it is philosophy, or maybe theory-fiction. Laurel’s Computers as Theatre also fits here.

Cover of Simondon - On The Mode of Existence of Technical Objects, Mellamphy trans.

There is philosophy on the ethics of software, which is mainly about telling programmers what to do. This is fine so far as it goes, but not really a philosophy of software, and often not very software-specific.

There is philosophy written by mathematicians and computer scientists on the impact of computing: Turing’s paper Computing Machinery and Intelligence, and many such contributions since.

There is philosophy which sees computation as fundamental to the universe and intelligence, like Reza Negarestani’s Intelligence and Spirit.

There is philosophy which uses computation, like the analytical philosophers who write Haskell and develop theory provers like Coq, or Peli Grietzer’s Theory of Vibe.

There are software design guides which attempt to go up a level of abstraction, like Ousterhout’s A Philosophy of Software Design.

Then there are drive bys and fragments. Yuk Hui’s On The Existence of Digital Objects builds on Simondon and is probably in the neighbourhood.

James Noble’s classic talk on Post-Postmodern Programming:

Some work on computational materials by Paul Dourish, like The Stuff of Bits, and blog posts on the topic by Harrison Ainsworth and Carlo Pescio.

Abramsky’s paper Two Questions on Computation. Some essays in the Matthew Fuller edited Software Studies: A Lexicon. Other uncollected ramblings on blogs and Twitter.

But there is no coherent project created by a philosopher of software, such that I could point to a book, or ongoing intellectual project, and say “start there, and see your everyday world of software construction differently”.


The Project

A number of people pointed out that this long list of negations didn’t include any positive statement of what I was looking for. Let me fix that. A good philosopher of software would have:

  1. A coherent project
  2. That is insightful on the machinic internals of software
  3. In communication with philosophy, and
  4. That recognises software design as a social and cognitive act.

Hopefully that explains why I left your favourite thinker out. At least for some of you.


Misses

There are a couple of big misses I made in this informal survey of software-adjacent philosophy. There are some other things I deliberately excluded. And there were things I never heard of, and am now keen to read.

I got mostly software people in my replies, and a number of them brought up William Kent’s Data and Reality. I have read it, I think after Hillel’s enthusiastic advocacy for it in his newsletter. ((Personally I thought it was ok but not mindblowing. However, I listened to it on audiobook, which is definitely the wrong format for it, and in one of the late, mutilated editions.)) I would place it as a book in the Philosophy of Information, albeit one not really in communication with philosophy more broadly. The Philosophy of Information is definitely a thing in philosophy more broadly, one most associated with the contemporary Oxford philosopher Luciano Floridi. You can get an overview from his paper What Is The Philosophy of Information? Floridi has written a textbook on the topic, and there’s also a free textbook by Allo et al, which is especially great if you’re poor or dabbling.

I think there’s a lot that software people can learn from pretty much anything in my list, and the Philosophy of Information does shed light on software, but it only rarely addresses point (2) in my criteria: it does not give insights into the machine internals of software. Some of it is tantalizingly close, though, like Andrew Iliadis’ paper on Informational Ontology: The Meaning of Gilbert Simondon’s Concept of Individuation.

I also should have mentioned the Commission on the History and Philosophy of Computing. Though it isn’t really a single coherent intellectual project in the sense I mean above, it is an excellent organisation, and the thinking that comes out of this stream is most reliably both in communication with philosophy and insightful about the machine internals of software. This paper by Petrovic and Jakubovic, on using Commodore64 BASIC as a source of alternative computing paradigms, gives a flavour of it.

It wasn’t mentioned in the thread or the responses, but I’ve recently been enjoying Brian Marick’s Oddly Influenced podcast, which takes a critical and constructive look at ideas from the philosophy of science, and how they can be related to software. Often, given his history (he is that Brian Marick), he’s in reflecting on things like why Test Driven Development “failed” (as in, didn’t take over the world in its radical form), or how the meaning of Agile has morphed into a loose synonym of “software project management”. That makes it sound like just a vehicle for airing old grievances: it’s very far from that, and always constructive, thoughtful, and ranges across many interesting philosophical ideas.

I mentioned Media Theory thinkers via Software Studies (which even includes Kittler), but it’s worth noting that media theorists have been thinking about software quite seriously, and there is some useful dialogue between software construction and design theory, usually restricted to the context of user interfaces. Wendy Chun’s Programmed Visions and Lev Manovich’s Software Takes Command are good examples. I first read Simondon because Manovich recommended it in an interview I no longer have to hand. And other people gave Kittler’s There Is No Software paper the name check it deserves.

Others pointed out that the Stanford Encyclopedia of Philosophy is rigorous, free, and has an article on the Philosophy of Computer Science.


Glorious Discoveries

The discussion unearthed some books and papers that look pretty great, but I hadn’t even heard of, let alone read.

  • Kumiko Tanaka-Ishii – Semantics of Programming
  • Federica Frabetti – Software Theory: A Cultural and Philosophical Study
  • M. Beatrice Fazi – Contingent Computation: Abstraction, Experience, and Indeterminacy in Computational Aesthetics
  • Reilly – The Philosophy of Residuality Theory

And a suggested side-quest from philosophy of engineering

  • Walter G. Vincenti – What Engineers Know and How They Know It: Analytical Studies from Aeronautical History

A Conciliatory Postscript

We can imagine both a broad and a narrow definition of the Philosophy of Software. In the broad definition, most things in this post would be included. And yes, academics, if there were a hypothetical undergraduate subject on the philosophy of software, it would probably be best to use the broad definition, and expose young developers to a broad collection of ideas about the way software works in the world. So I am not completely sincere in my provocation, but I’m not utterly insincere either.

There are delicate and intimate connections between software construction and philosophy. Consider the tortured, necessary relationship that both philosophers and programmers have with names, with intuition, or with causality. The possibility of exploring these connections, and inventing new concepts, gets swamped. It gets swamped by illiteracy and thinkpiecery on the software side, and by mechanical ignorance on the philosophy side. The narrow definition of the philosophy of software, and the recognition that there is no coherent philosophy of software construction, brings it back into view.

The Platform Socialist Calculation Problem

The Socialist Calculation Problem refers to the difficulties planned economies have in co-ordinating production and consumption in even moderately complex societies. The Platform Socialist Calculation Problem occurs when computational resources are cheap, but inputs to the calculation are of low quality because of poorly structured social co-ordination.

One of the clearest and earliest presentations of the original Socialist Calculation Problem is by Hayek. With striking foresight, and concurrently with Shannon’s invention of information theory, Hayek pointed out that the economy is an immensely complicated computational problem. In a market economy, this computation is massively distributed, and mediated through the price mechanism, with many different people adjusting prices based on local information, and thereby propagating information on supply and demand throughout the entire system. 

Every attempt at socialist planning we’ve seen in practice has basically fallen over, due at least in part to this problem. The calculation is more or less a  linear programming problem with a truly enormous square matrix, every row and column of which is a different product in the economy. Even though computational power has increased by many orders of magnitude since the 1940s, there’s good arguments that it doesn’t match the staggering scale that such a combinatorial explosion requires. Cosma Shalizi’s informal, but very well-informed, left-wing re-presentation of the problem in terms of algorithmic complexity is a good summary.

Soviet central planning was the largest scale demonstration of this failure. For a fictional, but historically well-grounded, exploration of it, you really can’t go past Francis Spufford’s novel Red Plenty. It is beautiful, and computational, and sad. It weaves through the multiple perspectives of bureaucrats, engineers, farmers and intellectuals as they try to make the experiment of central planning work, and how it fails, on both the primitive computational hardware available, and the social gaming of the system that happens so that people can survive.

And yet.

A number of recent books and articles have made the argument that however scary the Big O notation for calculating a modern economy is in theory, in practice, the problem is tractable to a good enough approximation. The theoretical argument by people like Cottrell and Cockshott is that most of the goods across an entire economy are not needed as inputs to the entire economy, so most of the entries in the enormous matrices are zeroes. This simplifies the calculation. Building on that, the authors of The People’s Republic of Walmart argue in cheerful, accessible prose that giant computational planned economies have grown up in front of our eyes in the last twenty years. The most obvious of these are Walmart in the US, and globally, Amazon. The close links between WeChat, delivery systems, and the Chinese state is also notable. The basic idea of Platform Socialism is that a government could take over these economies and run them not according to wealth but according to need.

(You might also be asking: Why does it seem now like I’m reading a god-awful, capitalism-fellating airport business book? Suck it up. Socialism is about logistics, comrade.)

Phillips and Rozworski, The People’s Republic of Walmart

I think platform socialists may be onto something. We have so much more compute power now, and so much more comprehensive, cheaply accessible inventory, that I think there is a good argument that the computational aspects of the Socialist Calculation Problem are solvable in many practical settings, through good approximations. My view has shifted over the last twenty years. But so has the tech, and the logistical power of these companies; and I’ve also become aware how even in WWI the House of Morgan played a central planning role in the simplified war economy. 

But there’s a second aspect to the the problem of socialist planning, and that’s of needing an alternative input to prices to signal and resolve production and consumption needs and desires. This is the problem of feedback against material reality. Amazon and Walmart don’t suffer from this, because as big as they are, they still sit within a wider market economy, its prices, and the purchase decisions of hundreds of millions of consumers. 

The Soviet, and traditional planned economist, substitute for external prices, is that work units and/or living units go through a budget planning process on some annual cycle, then there are iterations that resolve conflicts, etc. I don’t see how this would be any less painful and detached from reality than the bureaucratic budgeting process in large corporations or government departments. I’ve read or listened to a number of expositions of such planning systems, and they are universally dire and unconvincing, usually in turgid Marxist prose that sounds like it was emptied out of the oil trap of an undermaintained Soviet tank, an expression of the authors’ secret wish for death over the prospect of living through departmental budget mud-wrestling splayed through every level of social interaction.

The answer given by PR Walmart is more interesting. They propose that something like product reviews at amazon.gov can be a more dynamic and useful input to the planning calculation, and the shadow prices therein. This would probably supplemented with lot of voting and discussion, often online.

The last two decades of platform experience is terribly reminiscent of just this kind of interaction. Instead of getting free or cheap stuff from governments in return for votes, we get free and cheap stuff from giant tech platforms in return for having ads served up to us. Generally, as a social form, it kind of sucks. In many ways it is worse than the pre-platform internet. As a result I am more pessimistic about socialist ratings being a solution than I would have been fifteen years ago. Make that economic ratings platform pervasive without some better structuring mechanisms and you won’t get farsighted climate solutions, you’ll get TikTok mobs stamping on a human Boaty McBoatface, forever.

This is an institutional design problem, in the same class of problems as parliamentary government itself: the Platform Socialist Calculation Problem. Feedback on material and social reality has to be timely, robust, and not vulnerable to spam and dumb mobs.

Socialism isn’t the only system with a calculation problem. Benjamin Bratton calls the failure of market economies to include inputs not easily represented as agent-centric numeric prices the Capitalist Calculation Problem. Climate change is the most obvious and urgent example. No agent represents the damage of excessive atmospheric carbon as a price, except, crudely and after much kicking, the state. Even then political will to set an explicit price reflective of the damage still isn’t there after more than thirty years of trying; what signals do exist are sent through carbon taxes and centrally planned net zero targets. So capitalism has a problem with feedback from social and material reality as well, though it has to be said that it kicks in at a much higher level of complexity.

The institutional nature of the problem suggests there may be constitutional solutions. I don’t really see any Western lefties working on it, except maybe two Marxist economists, and a few Ethereum DAO people (Distributed Autonomous Organizations). In China you have serious smaller scale experiments with social credit, but not with more material economic planning, that I’m aware of. The attempts to redirect monetary capital to social ends, like KlimaDAO, are more convincing (and Klima basically died). At any rate, across this selection, I have not been impressed by anything but the experimental gumption of the DAO soviets so far. One thing in their favour is that spinning up a small platform business/commune gives immediate feedback on and experience with these ideas; unlike the usual socialist fairy dust of “first we capture the state, then we get rid of capitalism, then we can invent the socialist economy”. Platform socialism that doesn’t learn how to help people to thrive from the ground up won’t be worth a damn.

We are learning to think of democracy not in terms of the history of an idea or the emergence of a social movement, but as the assembling of machines.

Mitchell, Carbon Democracy

References

Cottrell and Cockshott – Economic planning, computers and labor values

Hayek – Economics and Knowledge

Shalizi – In Soviet Union, Optimization Problem Solves You

Spufford – Red Plenty

Phillips and Rozworski – The People’s Republic of Walmart

Waistcoatpunk

The supposedly definitive speech for hopepunk is given by Samwise Gamgee in The Two Towers: “That there’s some good in the world”, and so on.  It’s a fine speech, and it would be churlish indeed to pick on good-hearted Sam. But recently I read (or possibly re-read) Michael Moorcock’s old essay on Tolkien, as well; the one that pegs Lord of the Rings as an armour-clad Winnie the Pooh.

I was never quite the Tolkien-maniac so many teenagers are, though I won’t claim it was out of social competence or any foresightful discomfort with JRR’s racial scheme. It was probably because I’d read too much trash fantasy before I got hold of The Fellowship of the Ring, and was hoping for more of the same. Even though I knew it was unfair, it seemed like Tolkien was plagiarizing himself. 

Underneath, I think the structure of the world and the story might have also got up my nose. I always sympathized more with elves than hobbits. More fool me, perhaps. All of the hobbits have a bit too much Forrest Gump in them, a much worse work of art whose magic moron morality I will continue to hate until my dying day.

I was certainly up for Moorcock’s pulp literary experimenta. My taste was much more for Melniboné than Bag End. And he’s a pretty good critic. He gets the politics of Middle Earth and Middle Hopepunk bang on:

While there is an argument for the reactionary nature of the books, they are certainly deeply conservative and strongly anti-urban, which is what leads some to associate them with a kind of Wagnerish hitlerism. I don’t think these books are ‘fascist’, but they certainly don’t exactly argue with the 18th century enlightened Toryism with which the English comfort themselves so frequently in these upsetting times.

Epic Pooh

It’s not that hopepunk is bad. Like Tolkien, it’s deeply anti-fascist, and pro-community, in a rural traditionalist way. But it’s as punk as a hobbit in a four button waistcoat. It’s comfortable to wear, but I remain skeptical it will change much.

Every Fucking Platform

phone
Every Fucking Platform

We argued on the evening before lockdown
The lonely morning made it sweet again 
But by the time we needed food from Woolies
Everything I said was wrong and you cursed me in the rain
We split up for a while after a phone call
I pinged you six days later on WhatsApp
I was hoping that the break 
Would make things go a little better for us
And for a little while it almost did

Now I’m having drinks in front of YouTube
And I’m trying hard to forget your name
I’m staring at the label of a bottle of Corona
And every fucking platform feels the same

You said you had a question about Fleabag
But all of my replies were left on read
And when I checked on Facebook you were posting cats
And screenshots of your Duolingo French
Foolishly, I followed you to Twitter
Like a ghost I doomscrolled Trump and Kamala
And all the bright young things
Were throwing up their takes on Harry Potter
While I stared at your unfollowed avatar

Now I’m watching egirls dance on TikTok
And they’re singing that bloody sea shanty again
And I can’t believe I’m dancing to this but a cute girl liked my last one
And every fucking platform sounds the same

While waiting for a coffee with my mask on
An email from you brought me to Discord
But all the channels seemed to be for tankie poly rationalists
And anyway, it sounded like you weren’t alone
So I drifted till I ended up on OnlyFans
A horny platform for a troubled soul
And for a month I paid a woman far too much
To flash her tits and make me feel trolled

Now I’m sitting playing rounds of DOTA
And a Chinese guy wants me to know his name
And I can echo idioms
In seven different acronyms 
But every fucking platform looks the same
Cya l8r, 88, gg, ragequit, brb
Every fucking platform’s just the same

(With a debt to Paul Kelly’s original.)

Retooling the Social Media Contract

Why would Reddit spend developer time on cryptocoins?

I think to understand this, you have to see the current situation of a handful of highly centralized platforms, with centralized moderation, and enormous commercial and media power, as a kind of disaster. From that perspective, which I basically share, this is an attempt to make better technical infrastructure for communities of curation and moderation.

A recent symptom of this disaster: Novara Media, the independent leftwimg British media organization, had its entire Youtube channel deleted without notice or serious explanation. Novara is quite high profile, too: a number of its hosts, like Ash Sarkar, have regular columns and make appearances in more mainstream media. It was reinstated about a day later after various public figures across the UK political spectrum weighed in. Nothing but the most generic corporate response was offered. They had no previous strikes.

This is hardly the first example, and it is more related to bad platform design – technical and governance – than cancel culture or any primarily socially-driven phenomena. It wasn’t in response to any particular statement or social media outrage storm. The current platforms foster these problems the way giant monocropped fields invite plagues of locusts.

Facebook and YouTube are at one extreme because they are central platforms with few community or user controls for the bulk of the platform experience.

Take YouTube. How many interactions can you have with it? Like, dislike, watch, comment (requires semantic interpretation), report (requires human, eventually). You can search for specific videos or follow the feed. It is widely indexed and close-ish to the open web.

It’s also one flat user social structure, feeding into a corporate policing structure. The model there is deep learning trained filters feeding a large team of corporate censors, mostly not in-house, but outsourced to censorship specialists in the Philippines and other middle income countries. It’s essentially a design based on a chemical factory toxic waste pipeline. The whole focus on improving it is just about making a better waste filter, essentially out of deep learning tech.

Facebook is similar but not even on the open web, it’s a non-indexable enclosure. In many ways Facebook is best understood as an anti-website. In addition the ML-determined feed is even more dominant, making for even less user agency.

Twitter is largely flat as well, but has always been on the open web, had a usable API, and is open to bots and experiments. By being pseudonym and multi-account friendly it also makes separate curation across different accounts easier.

All of these platforms still have the factory toxic waste pipeline design. The also have always had some form of non-exchangeable social media currency. I’ve said previously that this makes them accidental reserve banks of sincerity.

The two main exceptions to the toxic waste pipleline design are Reddit and Mastodon. Reddit is much bigger, and for-profit, but is not FAANG (MANGA) big. Reddit is built around the idea of specialized communities built around shared interests. These communities come with community moderation and curation built in. It also has a pooled reputational currency (karma) and exchange currency support.

YouTube and now Twitter have got into the superchat / exchange currency pledges, but on a socially flat technical foundation. Reddit has a technical structure that includes community moderation and curation at a far more local level. Then when the platform police – or the meatspace police, for that matter – get involved, it’s rarer, and after a previous locally semi-autonomous policing and socialization process has happened.

Federation also gives more scope for individual communities to match the most appropriate national laws, and concentrates criminals and abusers in identifiable communities around the topics of their obsession.

The main platform built on federation is Mastodon, though it is of course re-applying patterns behind the internet itself. Mastodon is a social media protocol where people run nodes and choose which other nodes are on the network. Though fascist nodes exist, the main communities just refuse to federate with them.

Where do Reddit’s new community points fit with this? The write-up highlights autonomy, and developers speaking elsewhere have talked about federation. That contains much of the mastodon model. Perhaps with such a solution, Reddit could radically federate, to avoid the thousands of censors processing toxic waste that other platforms have, and emphasize their role as a platform at arms-length from content. That means expanding community self-management and making clearer organizational separation. But Reddit also want to make money, and they already govern two currencies. This leads fairly quickly to some form of tokens, and maybe some reputational stake or sponsoring system when communities federate or certain privileges are achieved.

There has been so much crypto hype, mostly without understanding the necessary latency and complexity tradeoffs, that I would start from a position of skepticism for deploying it as a technical solution on an existing platform. There have been a lot of tenuously useful blockchain projects. For Reddit, however, if they want a federal architecture and localize content management, the contract mechanisms in Ethereum already have a similar shape, and reinventing the wheel would be a waste. This is a real use case that may actually requires the power and cost of Ethereum smart contracts, or some more user-accessible extension.