Paper: Feminism in Programming Language Design

UncategorizedLeave a Comment on Paper: Feminism in Programming Language Design

Paper: Feminism in Programming Language Design

Next week I will visit SPLASH to present a paper titles “A case for feminism in programming language design”, co-authored with Ari Schlesinger. A preprint of the paper can be found at the end of this post, if you want to check it out, or in the ACM digital library.

I fully understand that this paper title will create friction, people will surely be upset at the mention of feminism in the space of programming languages, and evenmore so because we suggest that PL design can use some feminism, but I hope this short post will help people understand how to read the paper, and what the back story is, so that they can understand better where we are coming from.

Rejecting feminism

Last year, I gave a talk about this idea for a group of young female CS students, and I asked who of them identified as feminist, and almost all of them raised their hands. When I was their age, I surely would not have identified as a feminist (so I guess we are making some progress), and to be honest I am not even sure why.

I think it was mostly that feminism was presented to me as a group of whiners. We had education, abortion, voting rights? What more could they want really? I bought into the ‘lean in feminism’ of the 90 and zeroes: if you simply work hard, you have the same opportunities as men, so just keep your head down and work. Of course it did not help that in mijn CS program there were, literally, only a handful of women (I was one of 2 out of about 120 students), so I already stood out like a sore thumb, I was surely not going to attract more attention by complaining about that.

So it people reading this reject the whole idea of feminism and ‘complainism’, I get that!
But over time, my thinking changed.

By the way, the image of feminists being complainers is not something that appeared out of thin air, but was constructed by opponent, as you can see in imagery from those days, for complaining about the vote, something most people would now feel is… a reasonable thing to want.

Source: National Women’s History Museum

Feminism is about examining systems

A thing I do, naturally, is to ask why things are the way they are. Maybe that is a result of my upbringing, where my dad’s parenting slogan was: “We will decide that for ourselves”, when people would have opinions of what we should or should not do. I also hate injustice and inequality.

Over time, I learned that a core tenant of feminism is to ask why things are the way they are, and by that to examine how we can make them more fair.

Now, that really resonates with me, because over time I have developed a few questions about why the PL community is the way it is. The question that I had did not have so much to do, per se, with the lack of women in PL, but about systems: what do we value and why?

Turns out, feminism has a lot to say about systems of power, because systems of power are exactly what feminism has been studying and changing (like: who gets to vote, have a bank account, have power over their own bodies etc.)

What is a programming language?

One of the PL community questions that has been bugging me for a long time is what is and what isn’t a programming language. As long time followers know, I used to work on spreadsheets—I did very cool things like build refactoring tools for spreadsheets—but the only thing people generally cared about was telling me over and over that spreadsheets are not programming languages. And it never became clear why that is. Argumentation that could easily be refuted (yes, spreadsheets are Turing complete, thank you very much) did not help in any case: Saying that spreadsheets are code is outside of the Overton window of acceptable PL opinions, I learned over and over again.

But why? In many other cases, the definition of programming languages is fluid, I remember when Python was not a programming language, but a scripting language, very different. And UML is, I think, universally not seen as a programming language, but it is featured in the book Masterminds of Programming which features “exclusive interviews with the creators of several historic and highly influential programming languages.”

So the way we construct what is a programming language is social, groups decide what is in and out, and if you are out, like spreadsheets, and thus like in early in your career, you cannot participate in the world of PL. If we want to study this phenomenon, we cannot do that in the realm of PL itself, you will need theories about how social constructs work, and that is where feminism can help!

How do we study programming languages?

The other question that has been rolling around in my brain for years, is how we study programming languages. Ever since I met Stefan Hanenberg at ECOOP 2010, when he was working on attempts with Andreas Stefik to get PL to do more user studies, I have wondered why studies with human subjects are so rare in PL. In software engineering (at least before the field was eaten by LLMs….) a broad variety of research methods were in scope, from formal proofs to corpus analysis of code and issue trackers to observations, interviews and theory building. PL is arguably similar to software engineering in that they both aim to improve te state of software by creating things that people could potentially use to improve that state with. Why are the research methods then so different?

My exploration of feminism has helped me, more than anything else I have tried in the last decade, including explaining to many people that yes qualitative work is also hard and valuable. If you do not understand where they are coming from, what systems of power their beliefs are rooted in, this does not do a lot.

I hope this intro will help people that were confused about this work to place the paper better and to enjoy reading it more!

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top