Blog Post

Feminist Code: Critical Code Studies Working Group 2014

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 to interpret the world through. Frameworks that provided me with a structured (yet unstructured) ways to theorize about things that I had already been trying to describe, frameworks I felt kinship with. 

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 and I am extremely grateful. 

Notably, Mark C. Marino of USC’s Humanities and Critical Code Studies Lab reached out to me 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 mean, 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 framework as well as the exectuable 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 through [in 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. 

 

68

2 comments

I really enjoy the distinctions between "Code Feminism" and "Feminist Code", since they really articulate the difference between the intention and the artifact. One part of Douglass's quote really sticks out at me (emphasis mine):

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.

Possibility spaces are what I am most interested in when it comes to languages. The reason I was originally drawn to your initial post was that I wondered how making feminist concepts first class constructs in the language would influence the possibility space. I'm interested in the relationship between theoretical Turing Completeness and how a language's design influences human programmers to use certain solutions above others. Above all, I'm interested in seeing what people will make if such a language becomes a real thing.

I'm very excited to see where you go with this. Thank you so much for keeping us posted!

75

I think so much about this idea can be encapsulated in possibility spaces. A reality of this research’s current state is that the impact, construction, etc. is still widely in an unknown possibility space. Nevertheless, I am enticed by the potential such a space can have on human thought [construction|constraint]. 

Audre Lorde has said [even titled] The Master's Tools Will Never Dismantle the Master's House. Reverberating in spaces | theories | ideas like this, I’m vividly curios as to how such a space will disrupt | match | confuse ideas like Turing Completeness.

It is important to note that feminisms are plural and extremely diverse. A single feminist programming language, intending to come from a varied and inclusive space and set of people [anti-oppression | trans, queer, postcolonial, anti-racist, anti-classist, anti-ableist], would just be a start for epistemologically varied possibility spaces in computation. 

Thank you so much for the feedback! More news to come as we, eventually, approach a physical instantiation of such a language | possibility space.  

94