A Feminist Programming Language?

By Ari Schlesinger, Claremont Colleges

While it may make the most sense to start at the beginning, I have to say, I never expected two hundred and fifty words posted to HASTAC to spark such a flame.

When I first thought about feminism and programming languages in the beta DOCC (Distributive Open Collaborative Course) I was inspired. I had found an idea that spoke to me; an idea that I knew was big and complicated and important. Before that class I hadn’t spent much time at all thinking about feminism. The DOCC helped me uncover critical, feminist frameworks through which to interpret the world. Frameworks that provided me with structured (yet unstructured) ways to theorize about things that I had already been trying to describe, frameworks I felt a kinship with.

Ari Schlesinger_2014

Since then I have continued working with FemTechNet and the idea of a feminist programming language.  I sought out guidance regarding my research originally on the FemTechNet listserv where it was suggested that I post my inquiry on HASTAC in November of 2013. Come December of 2013 this post has garnered attention across the spectrum of Internet inhabitants, beyond my wildest imagination.  Many of you contributed to an amazing and inspiring conversation here (https://www.hastac.org/blogs/ari-schlesinger/2013/11/26/re-feminism-and-programming-languages) and I am extremely grateful.

Notably, Mark C. Marino of USC’s Humanities and Critical Code Studies Lab reached out to me to lead a conversation about Feminist Code at the biannual Critical Code Studies working group as a result. In order to continue the great conversation that began here, I would like to share with you some overarching ideas discussed regarding Feminist Code during this international working group.

For those of you who need a refresher, Critical Code Studies is built around the reading of code as text to be critically analyzed through humanities frameworks. As such, Mark Marino asked me to find examples of feminist code for the participants to critique & analyze.

To prep for this event I collaborated with Jacqueline Wernimont, Assistant Professor of English at Scripps College, and Ben Weidermann, Assistant Professor of Computer Science at Harvey Mudd College. Through my conversations with Jacque, we agreed on the clear absence of executable code written through a language developed with a distinctly feminist framework. The type of feminist code I was interested in theorizing about doesn’t exist yet; there is an archival silence.

With this in mind, I presented three examples of other types of feminist code that already exist in an archive of feminist computational artifacts: Mezangelle, the poetic, self-described feminist, anti-programming language, by Mez Breeze; an unpublished codework library by micha cárdenas titled femme Disturbance library; and a chrome extension called “Jailbreaking the Patriarchy.”

With these examples, I constructed the following three-pronged framework for identifying code that belongs in a feminist computation archive.

For code to be feminist, it must be explicitly identified as feminist (in particular by the developers | authors), developed with feminist theory, and/or developed with a feminist politics.

From this framing, I asked the participants to think about what it would mean for theoretically grounded feminist code to be executable. What resulted was a genuinely thoughtful and inspiring conversation about what feminism is and means, especially as related to computation.

During this conversation Jeremy Douglass, a Software Studies Researcher at the University of California San Diego, constructed a succinct and extremely productive way to define and differentiate between feminist code. Douglass summarized three categories of feminist code that recognize the framework defined above, as well as the executable archival silence: code feminist, feminist codework, and feminist code.

Code feminism is executable, syntactically traditional code developed in a feminist context | toward feminist ends. 

Feminist codework is non-executable codeworks | pseudocode | code-like texts articulating feminist ideas or subject positions. 

Feminist Code is executable, syntactically subversive embedded language or new programming [code] languages affording a fundamentally different feminist paradigm for software development. 

A vital addendum is that these categories are not exclusive; “however, they are distinct in that they seem to reflect three domains of thinking about where feminism is recognized. In feminist codework, we recognize feminism in the articulation of the content. In code feminism, we recognize feminism in context, agency, and action. In feminist code we recognize feminism in the possibility space of the code language itself, and the way that the code object arises out of core feature of that language.” (Douglass)

It was an honor to get to work with such talented scholars, to get to talk about feminist code works with Mez and micha directly, and to develop a vocabulary to speak about feminist computing, an invaluable co-constructed asset for further research.

I look forward to sharing more of this conversation with you soon as well as continuing to work with you all to develop this executable, feminist programming language.