Code is Not Neutral

If we look at the history of software development over say, the last few decades we see the conversations playing out from Pre-FOSS, to FOSS and what we could call ‘Post-FOSS’ all arging they ‘play nicer’ than whatever went before. They see themselves as useful interventions on whatever crummy system that went bad before they came along.

But have we noticed how they all share one unexamined assumption?

The assumption is: code is neutral.

The received wisdom of I think every argument in favor of proprietary, permissive, copyleft and public domain equivalent (anti-licensing) schemes, and all the hybrids inbetween is a variation on the assumption that, ‘code is neutral’.

Whether you like the sound of ‘information wants to be free’, 'free as in free speech, or the OSI’s ‘non-discrimination’ rhetroic, all of these ideas have the same assumption… that (somehow) their brand of politics enables code to stay pure, stay stuck in ‘neutral’ where nature intends.

Trouble is, code was never neutral, and never will be. Code is polarizing, amplifying, dynamic, dangerous, destablizing… it has gears.

We all know this, and yet all the licensing choices we are given are built on the idea that we had better not try to climb up the hill, because code wants us to stay stuck at the bottom. stuck in neutral.

Of course function() {whatever;}, on the face of it looks as neutral as any syntactic structure found in any language, but once the function is written out, it starts to take on significance.

Even at the trivial level of do print or whatever, it will be an inconvenience to users that are either unable or unlikely to want the program to print, it might introduce vulnerabilities in service of users that do and all the while manufacturers of printing devices and display screens and so on get to make money off the backs of that design choice.

There is a point when a programs function, no matter what it is designed to do is likely to become a political phenomenon worth paying attention further downstream if the program is used at any notable scale of operation.

Of course, for more complex functions that rely on libraries and API requests and so forth the political consequences are more obvious, in that these functionalities will benefit the organizations that control, or at least significantly influence the development and distribution rights attached to those dependencies, libraries, frameworks, extensions and so forth.

Eventually, we begin to see there is no code without coders, and so the impossible dream of those that promote politics based on the idea that code is neutral are taking us all as fools.

Software is built by people, information workers if you like. Free, Open Source, Fair Source or some variation cannot be fair because it insists on the false assumption that code is neutral, and a false assumption is hardly an unbiased, or neutral assumption, far from it.

The same assumption is at the heart of proprietary enterprise software developers, FOSS fans and everyone in-between that declare their regime is fairer… that it helps code to be distributed according to some economic axiom which we are led to believe will be neutral too… either by applying free market fundamentalism, contract theory, appealing to ethics, pragmatics or some other ideal, the distribution of software under all these regimes all assume code is neutral, and thus is beyond reproach, like the divine right of an absolute dictator or monarch.

The idea that code has some magical property that naturally resists politics is pretty much like saying: ‘write what you want, but alternative political opinions will be shunned, excommunicated, terminated, destroyed, kicked into the long grass’.

It’s just unreasonably stupid to insist that programs are written free from political ‘speech’, or a license should not be drafted for political purposes. Movements based on ‘openness’ and ‘free speech’ are thus beyond parody.

Code is not neutral. FOSS, anti-FOSS and all us folk somewhere inbetween need to get over this philosophical hurdle before we can even talk seriously about what needs fixing in our rapidly expanding sector?

I’m not sure it’s necessary to re-evaluate everything from its foundations before tackling more immediate problems (like the ones this community discusses).

Sure, it’s true that a lot of code has political dimensions (e.g. Facebook), but I’m not sure this is a universal property of code.

I can’t think of what the political dimension would be for my programming language. If you have an idea, feel free to share.

For me, the more immediate issue of monetizing it, and surviving the pressure placed upon me by having ten thousand FOSS competitors is more important than worrying about the implications of my code upon working class single mothers in the USA.


Metaphysics 101
Any language is an institution. Whenever information is conveyed across spatial/temporal difference dimensions, between more than one agent, a language is necessary for communication to occur, it doesn’t have to be the same language - I could call an object a pancake and you could call it a tortilla but what we have is an institution, a convention, a protocol, a framework or whatever. Languages are human artifacts, like a hat, a table, a license or a program, they are not like a pebble on a beach that exists whether we like it or not. Languages have to be invented before they can be discovered if you like.

Information, energy, matter are the neutral/natural resources that are matters of fact in the physical universe. They are made political through the production of observable data, knowledge, syntactic structures, processing and everything else.

Okay, so the political dimension for your programming language will be mostly pragmatic/utilitarian/consequentialist. This means you will be most concerned about what works, what efficiencies it offers and evaluating the results. It also means you will be less concerned about deontology… idealist, categorical imperatives, transcendence and so forth.

The point is, that is not a neutral political/philosophical position, and yet FSF and OSI and so on delight in misleading developers into thinking code is neutral and thus, it needs to be saved from proprietary control, ethical licenses and restrictions on use.

That is a bogus argument, and I am sure those FOSS guys are clever enough to know what they are doing… they are promoting a political agenda masked as a scientific/moral crusade and then pointing the finger at anyone else that dares to introduce usage restrictions on software that might prevent their corporate sponsors from getting the benefit.

This issue includes you. The most immediate issue for you might be money, in which I would say, ‘get a paying job’ or ‘marry a rich person’. If neither of those things appeals and you are dead stuck on writing out a new programming language then the most pressing issue for you will actually be clearly identifying the problem you want to fix.

Once you have a stable problem statement the implementation details will become clearer. It could be you approach a particular domain… like commerce, academia or engineering and get a research grant or sponsor, or if it’s for scripting then you might get a user group or proprietor of a system to take on your project.

Micropayment solutions… that is, less than about $25 per seat, and all the varieties of indie dev payments systems Ive seen… like free up to fifty seats or whatever I don’t think are gonna do it for you TBH.

To call that a political dimension sounds like a bit too much.
At some point, decisions, regarding the design and vision for the language, have to be made.
No decisions = no end product.
My decisions are oriented towards making the best language possible. Regardless of application or the political orientation of the user.
So… I’m being political by being apolitical?
That sounds to me like you’re trying to cram that square peg into that round hole just so you can pretend that everything neatly fits into your worldview.
I’m not sure that’s a good approach you’ve got there.

So, your suggestions are:
a) abandon what you’re doing and become another soulless corporate drone.
b) become a parasite so your rich wife can finance your expensive hobby.

No wonder leftists are so popular…

Well, I didn’t make the rules. Pragmatism, Utilitarianism and Consequentialist philosophical commitments are political, no matter if I like it or not, or whether you like it or not. That’s the cards we have all been dealt in this game of life.

I won’t patronize or embarrass you by asking you to do your own research because I am sure you will have already looked into it sufficiently well and decided to see politics being about elections and democracy and fascism or communism or something basic like that. That’s fine, I am not deriding people that do that, it’s a perfectly rational response to TMI. Just randomly accepting some ideas and rejecting others might be as good as any other decision making process, but all I would say pot luck is not the only method.

The other advantage is if you are going to refuse fairly well established and useful linguistic conventions it means I can save my energy too, by interpreting your responses as being eccentric and unreliable. If people have already been backed into a corner where they are unwilling to question ideas like the sanctity of individual rights as the only alternative to theories of natural law, natural rights, or social contract, I feel it removes any obligation I might otherwise feel to maintain a dialogue with them.

I have absolutely ZERO interest in converting people to an alternative set of unexamined commitments. My interest is in arguing with people that might be able to convince me to think differently about a subject by supplying reliable information, and that’s why I hang around here…because people here seem to have some interesting and durable life experiences and put the EMOTIONAL effort in to interact in good faith, despite our differences.

In contrast, I think you’ve been here about ten minutes and have already started some low level trash talk at my expense, which, for the life of me I cannot understand what you expect to gain from that sort of behaviour. All I get from that is you are frustrated and confused by my posts, and if that’s the case then I apologize but that is not my intention.

Anyway, if you re-read my comment you might be able to discern that my advice is more nuanced than you perhaps are accustomed to online. My responses to you have thus far been high effort posts, and this situation has to change because it seems to me that yours are often low effort posts and you don’t seem obliged to support your counterpoints with reliable data, which means they get tossed into the basket along with all the other reactionary opinion I see off random people off the internet. My worry is I get the feeling you are capable of much more than this.

However, given the time I have available I do feel obliged to give you fair warning that if you are not at least prepared to reflect and deliberate on the information given, I would be a masochist to put any further effort into discussing your technical concerns and business anxieties with you.

I feel this might be a the best course of action for both of us. You would not have to dodge my incessant, Marxist/Leninist/Trotskyist proselytizing on this forum and I would also then be able to focus on comments from other folk that at least partially salient to the content posted.

Shall we do that?

I still feel charitable enough towards you as a fellow human being at least to offer you the choice of how you would prefer to proceed here.