Technostructuralism
2019 / 04 / 03· Rust Memory Safety ·Reading time: 4 minutes

The systems we build are manifestations of our politics. So what is the philosophy of Rust and what does it offer for the state of software?


So Steve Klabnik posted a really thoughtful piece on open source and free software (read it if you haven’t), and the responses on places like Hacker News made an error that seems common in these circles: believing working harder will solve a problem.

This is a reproduction of a Twitter thread

The following is a reproduction of a thread I’d posted on Twitter back in 2019. I am sharing it here because Twitter has increasingly locked content behind a login prompt and I’d like to be able to refer people to this material without them having to have a Twitter/X account. The original thread can be found at Twitter. The version reproduced here is done without the thread-markers, @-references, and hashtags which were used in the original.

This comes up with people defending C, who argue “people should write better C.” Of course, this is nonsense. If a person can write better C consistently, we should assume they will. If a person can, with extreme focus, write better C, that doesn’t mean they can sustain it.

It comes up with free software too. When someone points out the failures of the free software movement, the response is “more people should believe in free software, THEN we can deliver our goals.” This is nonsense. You don’t get more adherents by demanding more adherents.

In both scenarios, people refuse to re-examine structures. It’s not that C isn’t meeting our needs, it’s that we’re not good enough to meet them ourselves. It’s not that free software isn’t achieving its goals, it’s that not enough people believe in it for it to succeed.

This is all tied to the underlying politics of the software developers, often characterized as “technolibertarian,” which believes strongly in the goodness of technology, and the primacy of the individual in determining outcomes.

This ideology is diametrically opposed to the structuralist view that Steve appears to be taking in his piece, or that tech critics are often taking in their critiques of tech. It plays out in the thousand externalities of tech which go unaddressed.

What’s frustrating about this ideology is it opposes resolution of structural problems, against mounting evidence of their existence and the failure of existing solutions to fix them. It also connects to a point about programming languages as political objects.

Steve’s a leader in the Rust community, and that’s no accident. Rust is a structural response to C. Where a technolibertarian says “write better C,” a Rustacean says “write Rust, which changes the structure so it, and not you, carries the burden of correctness.”

This is not a small point. It’s a microcosm of the fact that the technologies we build are manifestations of our politics. It is not possible to keep politics out of tech, because our politics shape how we approach problems, and what we build to fix them.

We have, as I see it, two competing cultures in tech. The dominant culture, technolibertarianism, and the counter-culture, which I’ll call technostructuralism. These two cultures are often talking past each other, but they’re building systems that match their perspectives.

I know which side I prefer. Hopefully (maybe with a name, mine or someone else’s) the technostructuralists can come out of the closet and unify their technology with their politics. At the very least, let’s move the conversation.

Copyright Andrew Lilley Brinker. Made with ❤ in California