Programming and Politics
With all the recent interest in politics inspired by Obama’s recent election, I thought I’d wirte up a few thoughts on the relationship between programming and politics. We often see links between computing and politics; many computing artefacts, such as the web, shape politics in fundamental ways, and politics, through laws and comissioned projects, have equally powerful effects on computing. But I haven’t seen too much attection paid to the link between politics and programming. I was inspired by a question on the Mozart/Oz mailing list, which points to this page of the E documentation. To quote the first paragraph:
Even with sequential programs, once we have side-effects, we have many more opportunities to confuse ourselves, and this can get much worse with concurrency. Friedrich Hayek’s writings on economics enable us to see the commonality between the problems of concurrency control, pre-object programming, and command economies. All three suffer from plan interference.
I find it fascinating to think that political systems, such as Hayek’s libertarianism, and programming paradigms, such as E’s capability-based contracts, could be so closely related. Indeed, you could even see similarities in the popularity of E and Libertarianism; both remain on the margins of their respective fields. However (and this is perhaps taking things too far), Hayek’s thoughts have been adoped in part by political systems of all persuations. And many of E’s features are creeping into implementations of other languages, such as Caja, so perhaps their impact is as a part of a larger system. Perhaps we could prototype policial systems, not as computational models implemented in traditional programming languages, but as principles in completely new programming languages, and evaluate the success of the language as indicitave as of the success of the politics.
But what really fascinated me about this situation is the idea, hinted at in the Mozart/Oz post, that if you were of a different policial persuasion, you may want to programme in different ways. Which programming language, for example, would you choose if you were a fan of Mao’s Little Red Book? Perhaps a language with no namespaces resulting in monolithic programming files? Speaking of which, perhaps one’s preference of a monolithic or micro OS kernel could have more to do with the local elections than any objective, computational measures. What other links between programming and politics could there be? I have a few ideas of my own, but feel free to suggest more.