« A Case for Feminism in Programming Language Design »

Hello,

I’d like to draw your attention to this interesting article, which may be of interest to the community.

An introduction to the article by the author is here.

22 Likes

This postmodern article deserves criticism, which I am deliberately posting anonymously. Their thesis is that

“Diversity in both the design of PL and the demographics of the community are limited because of the dominant culture that prioritizes theory and formalism over people and social impact”.

In particular, the authors claim firstly that framing PL research as a “hard” science, that is being a formal mathematical science, somehow excludes women, and secondly that changing the definition of PL to be “more inclusive” will make the field more accessible to women.

This thesis completely ignores the material interests of PL research to today’s society. The cold hard fact is that PL research, like any other scientific research, is funded to the extent that it develops the means of production or increases profit margins for corporations. So while you may be able to fool some funding agency for a time, trying to redefine what PL research is or what a PL is will do absolutely nothing for achieving gender equality in the “PL community”.

Secondly I want to point out how counterproductive it is to the struggle for gender equality and women’s liberation, which is a genuine issue, to say that calling PL a “hard” science relying on theory and mathematics is putting women at a disadvantage. This is again pushing aside the material conditions keeping women from entering STEM fields to questions of words and language. It suffices to point to the ratio of men to women in STEM fields in the soviet union to see that women are perfectly capable of doing “hard” sciences:

“Analysis of pedagogical journals suggests that girls’ quest for advancement in the 1960s was aided by the USSR’s standard school curriculum, which privileged the study of math and the hard sciences.”

See the full article here. So instead of asking that PL researchers and scientists in general contrive their research to linguistic choices to satisfy the postmodernists, I would suggest putting forward clear and productive demands on the educational system of whatever country you are in that is causing this problem in the first place.

6 Likes

I both loosely agree, and disagree a bit on the angle of the paper. I have a different background (not PL researcher, and male), but have related viewpoints on the problems described.

Overall I agree that there is an inclusion-problem in the field - but for my case, this observation has been local to a specific university I visited (different from mine). As @sysctl noted, this could rather be a responsibility of the university in question.

I studied CS at an alternative university where we could shape the set of our subjects quite freely, where I noteably also did philosophy, interaction-design, and STS. At that point I chose OCaml as my primary language, but also thought much more freely about what programming could be - and questioned why programming languages were how they were. As an example, I did a major project within philosophy where I chose to analyze PL-researchers/developers language-use in talks and papers, to understand what the difference of their ideals were between e.g. OOP, FP and procedural. A tendency was that these ideals were not argued for, but just seen as truths implicitly - and that they differed across paradigms. Overall I think there is a big academically unexplored vacuum of understanding the humans relation to the machine with relation to PLs.

This more human-machine-relation centered viewpoint is naturally much more qualitatively oriented, and more humanistically oriented - though, I’ve never seen this lack in CS as a question of gender. That said, I think gender-inclusion is a good thing, and inclusion in general, and would also be good to have the field of PL become more self-reflective and get a humanistic/philosophical side-focus.

2 Likes

I’m always glad to see creative and carefully considered discussion of these difficult issues that our community must grapple with. I have not yet read the article carefully, so I reserve my judgment on this.

I will only comment, in relation to the criticism offered by @sysctl, that I have heard many times the claim that framing things as “hard science” or doing things too abstractly or divorced from human impact makes a topic unpalatable to women, and I have never seen any actual evidence that this is the case, or (really) anything more than just an extension of the 1950s “boys play with toy soldiers, girls play with toy kitchen appliances” nonsense, repackaged for a new era and a more progressive-sounding vibe. There is a really embarrassing gender essentialism at play in this discourse…

I do not claim that the linked article is necessarily making this mistake — I am just voicing my opinion that this idea is all too common, and is becoming a surprising impediment to efforts to address gender inequality in computer science.

There is definitely a need to bring PL research and discourse closer to human life, and to the extent that the linked article defends this necessity and provokes thinking and debate on it, I think that is definitely a good thing. The framework of feminism can surely have some important things to say about this.

On the other hand, I notice that when my colleagues and I agree strongly about the need to consider social impact of PL work, it often happens that we may have very different ideas about what that would mean — for example, some could take it as meaning that we should view the mathematics of PL as somehow only valid insofar as it agrees with user studies (invariably with tiny sample size), whereas others might take it as meaning that we should carefully consider how our work will be used (e.g. to enhance surveillance that increasingly impacts women in the era of reproductive rights being under attack, etc). As always, there is much to discuss, and I hope that we can have this discussion in a healthy way that equally recognises both the good and the bad of any given proposal.

P.S. I don’t think it is productive to paint the authors of the paper or others as “postmodernist” — an accusation that never sticks because postmodernism itself defies a simple definition, and so has come to be a nearly meaningless term that is applied to refer to a cluster of related opinions and aesthetic preferences. I hope the discussion can unfold more about the specifics of various ideas and proposals, many of which differ from those of the historical postmodernists anyway.

7 Likes

The paper is not only/mostly about gender diversity

I did not read this paper in full but I did read the intro and skim parts of it. My understanding is fairly different from the one of @sysctl above, and I will try to clarify why. @sysctl is quoting the “Thesis statement”, at the end of the introduction:

Diversity in both the design of PL and the demographics of the community are limited because of the dominant culture that prioritizes theory and formalism over people and social impact. By using a feminist lens, we can take steps to build a more inclusive intellectual and social culture in PL that will benefit the the scholarship we create, the languages we design, and the experiences of all members of the PL community.

If I understand correctly, in this statement @sysctl interprets “limited diversity” as meaning “lack of gender diversity”. I have a different understanding, I believe that the author mean this in a broader sense (general lack of diversity: people from specific backgrounds are over-represented in PL research), and in this broader sense I broadly agree with this statement. (I would de-emphasize “prioritized over people and social impact”). Let me explain.

I think that it is reasonable that @sysctl would see “lack of diversity” and “feminism”, connect the dots and assume that the diversity is implied to (only) mean gender equality. This connection/deduction is often correct, and indeed some of the paper content is about this.

But most of it, the way I understood it, is about using tools of social sciences to study and question the dynamics of scientific research, and poke at potential issues with the way things are being done. The tools of social science here are those of academic feminism, and they are being used to study values, power dynamics, implicit/unspoken preferences. What can people looking at PL research tell us about this field? A priori I think that this is a valid question, and in fact I feel curious to read more about the results of such an inquiry.

The core point: PL research is not accessible to people who don’t do maths

I think a lot of the paper is about the following (my claim): academic language research, these days, focuses heavily on mathematical formalism, and that makes it less accessible to some people who love programming languages but don’t have a formal education in mathematics. In short, it is hard to publish PL work when you are not good at maths, and this excludes people.

This is not in itself a new remark, and it has been said in different ways by different people. For example, Tomas Petricek has been discussing these from a philosophy-of-science perspective for a while, see for example this post from 2017. Jonathan Edwards has long documented on his blog the mismatch between his own interests and the PL community current value systems. There are long lists of people, hobbyists or people in academia, who complained in plausible ways about the fact that they felt excluded by the scientific norms we set up for current PL research.

This is something that I personally have on my mind on a semi-regular basis, and it has various not-so-pleasant consequences. For example, locally where I live and work, if we use “is good at math” as a strong criterion to admit PhD students, this creates a selection effect that is also socially discriminating, students on average will come from better-off families or from intellectual elites. On the other hand, inviting students that are not good at math to start PL research is also a risky proposition, as it can give disappointing results and be a very unpleasant experience for those students – and sometimes it works out and it’s great, but the odds are against it.

(Note 1: in my experience specifically in France, this selection bias in favor of mathematic skills does not reduce gender diversity, on the contrary, there tend to be more women students and researchers in the more math-heavy sub-disciplines, and less women students and researchers in more software-implementation-heavy sub-disciplines.)

If the authors of this paper have a new perspective on these questions and can discuss it in ways that are different and enlightening, personally I’m all for it. They certainly have things to say about gender diversity as well. And also some ways of stating things that may be thought-provoking or unfamiliar or even disagree-able, for example I personally wouldn’t think of mathematical formalism as a “masculine” perspective (but then I haven’t thought about this very much, and the authors have). So what? Let’s take in the interesting remarks and perspective, we don’t need to agree with everything in an academic argument for it to have value.

(Note 2: Mathematical PL research can be beautiful, I really like it. Just I wouldn’t mind if more people had their own active communities doing PL research in other ways that they have found produces valuable scientific insights, where they felt at ease, had access to good working conditions and academic recognition. We could discuss things together from time to time, and often we would just ignore each other because everyone is swamped in their own work.)

16 Likes

When I read this I think that in PL research, we can have some « mathematical » subjects (semantics…) and some « soft science » subjects (should we use word tokens (BEGIN END) or character tokens () {}… to enhance readability and reduce the number of bugs… why such language or paradigm is more successful… I guess both examples qualify as social impact). But perhaps I miss the point.

I would add (my claim): the paper advocates that not only the current value system of PL research excludes people, it also prevents the emergence of new fields of study that are not only centered around efficiency, correctness, etc. but also usability, accessibility, knowledge spreading, empirical study of productivity, etc. for example; which is a loss.

Exactly, one of the points of the paper is that such subjects are poorly studied despite their usefulness, because they are less valued.

6 Likes

This also gave me pause. I maybe can see what the authors are getting at if “masculine” is replaced with “male-dominated” or “stereotypically seen as masculine”, but that use of the adjective is not explained in the paper.

1 Like

The authors also seem to say, in apparent earnest, that Arabic speakers will struggle with writing 1 + 1 rather than ١ + ١. Perhaps @aryx is right, and the article is actually a subtle joke, or revenge for the Sokal affair.

3 Likes

Maybe I can quote the whole sentence, because there is also something else interesting in here that I would not entirely agree with but which I think can contribute to the discussion:

The current standards of evaluation in the PL community are set from a masculine perspective as well, valuing formalism and formal methods over user studies, quantitative over qualitative work, and the examining of technical aspects over context and people.

Putting aside the obviously bizarre point about the mentioned values being “masculine” (here is the gender essentialism I mentioned before), I would like to mention that the author seems to misunderstand the main ways that the PL community tends to evaluate work. It is qualitative evaluation that is privileged in PL over quantitative, not the other way around! I will personally admit to being part of this mainstream cabal that dominates PL with qualitative methods (namely, the qualitative method of mathematical proof) and ignores quantitative aspects almost entirely.

User studies, which do appear in PL but are not valued as much as many would like in the mainstream PL community, represent a quantitative approach to PL research & evaluation that complements the major qualitative methods that currently dominate large parts of PL community evaluation (namely, mathematical proof and aesthetics). Of course, not every quantitative approach is pure numbers and user studies are no exception — but the premise of user studies is that by making some kind of quantifiable experiment whose results can be analysed in a statistical way, you can learn something about PL.

I will just finish by proposing what I think could be a corrected version of the author’s statement, and we can try to draw from it some valuable points that we should consider carefully.

[My version] The current standards of evaluation in the PL community are set from a masculine one-sided perspective as well, valuing formalism and formal methods over user studies, quantitative qualitative over qualitative quantitative work, and the examining of technical aspects over context and people.

It strikes me that the author is, in their own way, making some valuable points that we could benefit from, if we were to try and tease apart what is correct from what is incorrect and see what remains. What was the last mainstream PL paper you saw that actually did a careful analysis of contextual and human aspects of the work at hand? And what would it look like for us to build this into our work going forward? To me these are deep and important questions, and thinking about them could improve our field in a number of ways.

7 Likes

And aesthetics is not a “hard science”, and even a very subjective quality. It is such a complex notion, rooted in the messy world of “being human” interacting with the world of machines - and could in itself support a whole field of research. Where is that field?

Thanks for the links @gasche, especially this one. I am actually currently teaching a course at university, for the second time, that takes the kind of point of view as at that link.

We take students that have no FP experience, and that will not do FP or PL in the future, and we deliver to them, in one semester, as many of the results of FP and PL theory as we can, subject to the strict constraints that they offer (1) very useful, (2) optional models for understanding (3) parts of programming at large, (4) in any language, whether FP or not. We present the mathematical tools and in no way disregard them (e.g., in one part, lambda calculus, full proofs of type safety of PCF), but we deliberately avoid overly “mathematizing” the class, and a core idea is that these tools are in no way the only factor in real world programming, and their current state is not the final word.

The class is going really well, the students are extremely engaged, the department likes it, we are considering updating other parts of the program in light of it, and we plan to offer it more widely in the future. I’ve developed a decent amount of material, to share soon-ish. None of it is mathematically new – it is all in the order, style, and framing of the presentation.

We don’t teach any particular FP language. We use OCaml as a simple background language, but we teach ideas from FP applied to concepts one finds in Python, C++, etc. We discuss recent research and the future of programming with a very broad point of view.


Among other problems, the FP community suffers from a sort of “Haskellization.” I have nothing against Haskell specifically, but I am mentioning it because it is notorious for being associated with a sort of overly-mathematical attitude, for a relatively limited set of concepts from even mathematics. Some of our students do have experience with Haskell and take that attitude as a synonym for FP, but we call their attention to that while those tools are useful and Haskell as a research program has been very productive, nonetheless something else is going on in programming. It’s clear from an even an “OCaml” point of view that this type of “Haskell” approach is “overly” “mathematized” when it comes to general use. Regrettably, it leaks into OCaml as well.

The well-known example, of course, is that it’s not the most salient part of most data types that they belong to certain algebraic modules, even though they do. We sort of “re-educate” the “Haskellized” students to know that, use it, but not overly emphasize it. It’s not relevant to programming at large, even most functional programming, just as it’s not the most salient for almost everything we do in practice with mathematics, and in need of frequent attention, that many of our mathematical objects also belong to certain algebraic modules.

We poke good-natured fun at how FP programmers, as a group, click on “algrebra” links :slight_smile:

The mathematically (as viewed presently) “maximalist” approach is useful for certain specific research directions, but “feeding it back” from those directions, back onto general programming, or its overall future in wide application, remains often not very useful.

I constantly ask myself the question of how this research actually is broadly useful, what is the actual “added value” that it can bring to the programmer or researcher outside a relatively narrow research program, and how to present that value in the most efficient, but unobtrusive, way possible. What is the actual answer, to a Python programmer, or a networks researcher, for why the lambda calculus is relevant and worth learning? The course is strictly filtered by these kinds of criteria, and the time freed up by filtering we use for teaching other topics.


Regarding the article that spawned this thread, I have little to add. Arguably it has some good points. It has a lot of huge weaknesses that others have already written about. But I am glad that you have extracted this component of it and then shared those links!

8 Likes

Why the lambda calculus (and I guess the functional programming) ?

This style of programming is introduced in Java 8, since 2014… it should be considered as a common feature of any a modern language.

(It is present in Python since v1.0).

It should be noted that Java 8 has introduced the functional programming, but also convenient libraries which leverage it (typically stream functions like filter, map…). However, Java is not as functional as OCaml and we will see some loops in Java replaced by a recursion in OCaml.

It should be noted that a functional approach is used in big-data computing (Map-Reduce typically).

(In the same way, generic types are not very useful alone, but enable a programmer to develop safe libraries : Java collections, C++ STL…)

I agree with @gasche’s point of view. The paper is using feminism as a framework for sociological analysis, but it is not limited or only focused on gender equality/inequality, and actually has a broader scope and potentially other goals. I am also still reading the full article, but obviously the article mentions: exclusion, accessibility, non-Western languages among others.

I don’t think the article is a subtle joke or anything like the Sokal affair. And without having been able to read the article in depth, I think the authors’ stance is not to claim that mathematical formalism in PL is per se masculine, but the emphasis on this approach to the detriment of others.

Many sociologists consider that our evaluations are based on a ‘habitus’: structures of knowledge with which we structure our view of the world. These structures are acquired and depend on our social class, biography, gender, ethnicity… and bias our evaluations, even those that we ourselves consider rational. An important part of the article focuses on describing the mechanisms of reproduction of patterns of domination makes me think that the authors are at least partly aware of current sociological theories that analyse these mechanisms ethnographically.

To take another example, a scientist named Robert Jastrow has a paper/book on the human brain and the computer. He states that “since mind is the essence of being, it will be fair to say that this daring scientist will have penetrated the computer and now lives in it […] the machine will be his body, and he will be the mind of the machine [he then goes on to praise this state as desirable]”. This would be an eminently masculine vision, not so much because it is technically possible or not to reach this situation, but because he considers it a desirable goal. In this kind of situations, I agree with the authors of the paper what we need “feminism lens” to confront these questions, at least to have a broader point of view.

In this context, the article motivated me to ask myself if programming languages are a technical tool for human beings, then: what is the place of human beings in this question? Is it only about logical-technical aspects or should we also consider the “human” part? What would a human part mean in the issue of PL? I never raised before these questions.

Incidentally, there is a growing interest in learning how to build open software communities that enable good cooperation. This seems to be important for long-term projects to move forward and also for community members to have a continuous motivation over time. Maybe it’s just that I don’t know many cases, but in this particular topic I have found more women interested in participating than men. Just in something where not only logic is key but also knowing how to manage the human side of the projects.

8 Likes

Mostly agree with what you are saying here (especially that we should take the author as engaging in good faith, and not make comparisons to Sokal), but I want to clarify one point. You say:

I think the authors’ stance is not to claim that mathematical formalism in PL is per se masculine, but the emphasis on this approach to the detriment of others.

I have to clarify that the author’s explicit claim is that the (over?)emphasis on mathematical formalism in PL is rooted in a masculine perspective, as has been quoted earlier in the thread. So although I think this article has many interesting things to say that deserve attention and earnest engagement from us, a defence of the article does still have to grapple with the gender-essentialist assumptions made in there. I think a lot of value can still be got from reading it, even if you put those things aside.

1 Like

I think earnest engagement could indeed be helpful. A good start would be for people who think there is something valuable in the article to say explicitly what that something is, rather than explaining that they haven’t exactly read the article, but they’d like to make clear that they’re in favour of feminism and user studies and hypothetical enlightening perspectives and apple pie. Admittedly, the article is difficult to engage with, because it’s so meandering and vague, but that’s a problem for its advocates to deal with.

So far, the concrete engagement (as opposed to general signals of alignment, or broad musings) seems to be mostly critical, so it’s difficult to know what people have found so interesting and valuable.

3 Likes

@yallop Well, I’ll start here with a quote from the paper that I found insightful.

POPL in their principles describe that reviewers should
focus on “whether the approach is fundamentally sound” and
“whether the paper contains sufficient information for others
to reproduce and build on the results”. This strongly points
in the direction of formal proofs and places several types of
work as out of scope, including a lot of qualitative work that
cannot be reproduced, since its goals aren’t to be reproduced
but to inform further thought.

I think this is both an accurate critique of POPL and something that ought to provoke us to think carefully about our criteria for scientific correctness. For example, although I would not agree with the author’s characterisation of formal proofs as un-qualitative, I think a lot about the fact that it is nearly impossible to publish a paper in POPL whose main contribution is a new and more insightful way to think about a problem or cluster of existing results. Such a paper cannot appear at POPL, unless it is dressed up with a bunch of “new” results that appear to be the kind of result valued in POPL, but are (typically) not nearly so interesting as the insight that led to them. In a recent edition of POPL, I had to fight extremely hard on the PC for such a paper — which I found to be one of the most insightful papers in the conference that year, but there was much hemming and hawing as to whether such a paper could appear at POPL.

So while I think the author has a slightly mistaken view of the qualitative-vs-quantitative divide in PL (if it can be said that there is such a divide), I see myself and my own experiences very strongly in the author’s commentary about the difficulty of publishing certain kinds of scientifically important (and, time has shown, influential) work at major PL venues.

On the whole, the article contains a lot that I disagree with. Perhaps it appeared that I was providing only some vague “lip service” to valorise something that has no value — but I hope the example I provided above illustrates the way that one might try and draw something useful out of this, and that even if the framing of the author is mistaken in many ways, there is still some valuable points made.

5 Likes

I also want to quote the following from the conclusion of the paper, which I wholeheartedly agree with and found to be very well-stated:

Our hope is that this essay gives space for others who
want to broaden PL in any imaginable way: by widening
the definitions of what a programming language is, includ-
ing parts of programming currently populated by women,
such as end-user programming, scientific computing and e-
textiles, by allowing PL papers to study things that are not
just the language itself, such as error messages, IDEs, or
ways of thinking that programming languages encourage,
and by allowing qualitative work seeking to understand, to
challenge, to document and to exist alongside the formal
and quantitative work we have seen in the past.

Hear, hear!

3 Likes