Decolonizing Coding


Disclosure: My interests in this area are not just in multilingual, multi-dialectic linguistic approaches, they also are tied to the need for the effective utilization of programming languages as creative tools. I think the desire for artists to want to control the underlying means whereby they make digital-based art is natural and healthy – unfortunately, the existing modalities for this sort of exploration is linked to learning how to “think like a developer”, or settling for languages that have limited scope and usability in real-world contexts. To no small degree, JavaScript alleviates at least some of this problem, but the underlying nature of programming in general still persists. It’s as if a budding musician says “I want to learn to play the Bassoon,” and their instructor replies. “Good, so it shall be – but first, let me tell you about auto mechanics.” Much of my life’s work (for better or worse) has included bypassing or alleviating this problem, especially in relation to making music (and to some degree, video and design work) with computers. As a mixed-race artist, I welcome the possibility of collaboration towards more creative, increasingly decolonized, and highly engaged control of both the ends, and means, of production in this regard.

Why aren’t there more non-English programming languages? By this, I am referring to languages that reflect the semantics of different cultures, not just implementation of a computer language’s syntax in different languages. While internationalization of keywords is both relevant and important to ongoing efforts to decolonize development, what I am referring to is related, yet separate. The approach I’m proposing is based on hybridizing of languages, rather than implementation of other hegemonic language bases. The reasons for this are several, including potentially harder to hack code (which could also carry with it the cost of being harder to decipher overall), forms of code that semantically map to different modalities of thinking, as well as non-hegemonic semantics that encourage creativity in the development process in heretofore under-explored fashions. If the internet is a set of free-floating nations, with their own languages, customs and rules – there needs to be languages – and dialects of languages — that reflect this.

One guide of how this could take shape semantically is JavaScript. JavaScript doesn’t read like your typical programming language, because it’s not. In JS, almost everything is an object. Further, JS is not a high-level power tools workshop sort of language, like C or even Java (well, sort of) – it’s a quirky scripting language written under pressure, that turned out to be able to do almost anything.

The reason this is relevant to multi-lingual, multi-dialect code is that JS mirrors many of the potentialities of forms of coding that move past English for their underlying semantic structure. While JS is English-based, it’s also a peculiar dialect within the range of computer languages out there – as noted above, this has turned out to be a much greater asset than liability, and further, the need to address an ever-widening range of problems has led to hundreds of libraries, which form a range of dialects. I view it as one possible inspiration among several that happens to have a very robust history, especially in its still-active post-DHTML era.

s/o to @codemesh for lighting a fire about this.