Kalila Shapiro discusses the problematic supremacy of English in global programming, and explores ways that Indigenous programming languages, including Jon Corbett’s Cree#, have sought to break down this “cultural coding barrier”
Despite being taught around the world, programming languages are written primarily in English. Why is English our default? While an increase in support for the international text encoding standard Unicode has allowed developers to create computing languages in their native tongues, their widespread adoption is far from the norm. In Week Two of the Critical Code Studies Working Group, Dr. Jon Corbett (a Cree/Saulteaux Métis media artist, computer programmer, and sessional faculty at the University of British Columbia), Dr. Outi Laiti (a Sámi Associate Researcher at the University of Helsinki’s Indigenous Studies program and project manager at JHL), Jason Edward Lewis (a Hawaiian and Samoan digital media theorist, poet, software designer, and University Research Chair in Computational Media and the Indigenous Future Imaginary and Professor of Computation Arts at Concordia University), and Daniel Temkin (an artist who specializes in photography, programming languages, net art, and paintings) explored how the use of a “lingua franca” in programming languages can stifle ability and creativity in code writing, how the dominance of English affects Indigenous people in particular, and what scholars can do to bring the logic and thought patterns of different Indigenous groups into coding languages.
In the main discussion of Week Two, Indigenous Programming, Temkin questions why, despite the advances in Unicode and the increasing opportunity for development of languages like Yorlang (in Yoruba) and قلب (in Arabic), 90% of programming is done in tools that are English-based. He raises this as a point of concern – by using primarily English, coding is restricted to a Western style of thinking, enforcing Western biases about what functions and capabilities are most important. To support this claim, he draws on Laiti’s theory of Ethnoprogramming which argues that hardware and software rely on cultural practices since they are primarily built on terminology (i.e. different commands, functions, etc.). This raises not only a language barrier but a cultural barrier. Not only must non-English speaking programmers learn to write code in a non-dominant language, but they must also adjust to a different way of thinking – a different logic. This difference creates extra barriers which may prove to be too daunting to new coders.
Particularly affected by the cultural coding barrier are Indigenous peoples. Laiti, in her thesis, says “Indigenous people have their own language. They have a small population inside a dominant culture of the country. They still practice their cultural traditions and at last, some of them live in a territory that is, or used to be, theirs. They identify themselves as Indigenous people.” (13) Stated another way, Indigenous populations must struggle to preserve their cultures and ways of life while surrounded by dominant majority cultures. Temkin is careful to note that “indigenous” as a blanket term in the Western world can be a bit misleading, as there is a tendency to view all the different cultures as one. He encourages a focus on the “Pan-Indigenous Lens” – the shared sociopolitical and cultural perspectives most Indigenous groups face in resisting assimilation. Maintaining traditions and beliefs is a hard but important task in the face of more dominant groups.
Both Temkin and Laiti argue that the forced Western style of code promotes submission to colonial dominance that Indigenous groups have resisted for centuries. To preserve their culture in the digital world, native peoples have been working on not only making coding languages in their traditional languages but also, more importantly, bringing their cultures into the building blocks of what they create. For example, every project written in Corbett’s Cree# language begins with the tradition of smudging. In the physical world, smudging is the cleansing of the mind, body, and spirit. Corbett’s digital smudging resets virtual machines to their starting state, preparing it for a new task. The code mimics a traditional practice, enhancing the connection between code, creation, and daily life.
After Temkin’s introduction, a discussion about English dominance unfolded among the working group. Working group participant Kalila Shapiro wondered if English was used because of the assumption that everyone understands it. She noted that this way of thinking is a problem as not everyone understands it and because languages shape how we think, stating, “…who I am in English is different than who I am in Spanish. By making everything in English, it seems like stifling creativity as well as the ability to bring your background into your work, as […] culture and language directly reflect and encourage each other.” Working group participant Zach Mann, of a similar opinion, quoted French director Claire Denis, “I had a screenplay which was naturally in English, because the story takes place in space and, I don't know why, but for me, people speak English – or Russian or Chinese – but definitely not French in space” (Jagernauth). Laiti joined the discussion to raise the concept of using different languages in code for different purposes. English is not, by default, the standard language – it is just what the programming world is used to and there does not seem to be any reason to explore anything more “obscure”.
Working group participant Stephanie Morillo wondered what learning to program was like for people who did not speak English, noting that Latin American coders did not have a lot of resources written in Spanish or Portuguese for them to use. Working group participant Derya Akbaba, a Turkish American from a family of engineers, reinforced Laiti’s point about English being used as the default because it is considered the norm. Akbaba said, “I asked my uncle if there were Turkish words for the things he was mentioning and he said 'Yes, but they are absurd and are not as concise as the English equivalents.’ This remark has stuck with me since then. I wonder if implicit in learning programming in another language perpetuates a hierarchy? It was clear in my uncle's response that he found learning the Turkish equivalents to be not worth his time. Does this mean there is an economic value in learning to program in one way or another?” Adding to this, Jeremy Douglass highlighted another problem that those wanting to use their native language, especially Indigenous languages that do not use the Western alphabet, risk working with editors that understand their language but, due to technical limitations, cannot display the correct characters. This limits developers to English letters, even if the Unicode can understand and display other alphabets.
Code Critique Thread: Cree
In another thread, Corbett elaborated on his project Cree#, a coding language he is developing that matches the cultural way of thinking and linguistic patterns used by the Cree people and in the wider Anishinaabe language family. He explains that Cree culture depends heavily on storytelling. As such, his programming language is built on flexibility, where users can highlight certain parts of their code the way different speakers might focus on different parts of the tale. The code is the same narrative, but its output is slightly different. Cree# serves also as a language revitalization project – getting young coders to interact with both the Cree language and culture. Regarding a prescribed style of thinking, he says: “As for the effects of English in code implementation, I see a perpetuation of existing programming paradigms, continual use of English automatically adopts Western and settler/colonial perspectives and practices. Therefore the pedagogical foundations of computer programming are rooted in Western ideas of what coding is, before you even start to learn how to program” (Corbett). Corbett’s morphemic and holistic Cree# approaches code as a changing body, which is a stark contrast to the Western programming idea of a static set of separate commands.
Corbett, Jon. “Week 2: Cree#” CCS Working Group 2020, Jan. 2020, http://wg20.criticalcodestudies.com/index.php?p=/discussion/71/week-2-cree.
Jagernauth, Kevin. “Claire Denis on How Philip Seymour Hoffman Inspired 'High Life' and the “Heartrending Charisma” of Robert Pattinson.” IndieWire, IndieWire, 25 Mar. 2016, https://www.indiewire.com/2016/03/claire-denis-on-how-philip-seymour-hoffman-inspired-high-life-and-the-heartrending-charisma-of-robert-pattinson-102813/.
Laiti, Outi. Ethnoprogramming: An Indigenous Approach to Computer Programming : A Case Study in Ohcejohka Area Comprehensive Schools. University of Lapland, 2016. https://lauda.ulapland.fi/handle/10024/62624.