by Eduard Kamburjan — 20 November 2024
Topics: interview
This is the second part of the interview with Felienne Hermans.
In part 1 we talked about education and touched on diversity in research. How well are we handling different kinds of diversity in computer science? Are we better or worse than other disciplines in handling the kind of diversity of people who start with us?
Let us take gender diversity as an example: If you look at all the programs, then we are the worst:
Male/female ratio of university and college staff and students, The Ministry of Education, Culture and Science (OCW), The Netherlands
I remember that when I was a computer science student, there were two girls in my year. I thought that once I am in my 40s, then the field will be more diverse—now I am in my 40s and the situation is not much better.
If you look at cultural diversity, then it is harder to measure because we generally do not ask students for their backgrounds. I have looked at cultural inclusion in programming languages as part of my work on Hedy, a programming language for children that has been translated into 47 languages. Out of the top 10 most used programming languages, there is not one that allows you to use non-Latin numerals, e.g., Arabic numerals (١,٢,٣,…) or Chinese numerals (一, 二, 三, …). This would be relatively trivial to implement, we do not use these characters for anything else, and many languages allow Unicode. But even such a small change to parsers is not done because people do not know about non-Latin numerals, or if they do, they do not care. When it comes to other cultures, “they” can “just” use English characters!
This is just a discussion about numbers, not even keywords, which are addressed in few languages. These are almost trivial problems to solve—almost too easy, so as a community, we do not care about them. We care about big, difficult questions, such as artificial general intelligence and so on. But why are we not looking at more basic things, too? Why is not all software in the world supporting all alphabets and all numbers? It is, again, a matter of education and awareness. For example, we call our numbers Arabic numerals, but Arabic scripts do not use them. I did not know this until I was 37—I discovered by accident when I was engaging with the Arabic community because of my Hedy language. But why did I never learn this before? Not in elementary school or in high school, where I had to learn Roman numerals. In university, I took five compiler courses, including all advanced ones, and no one ever mentions to me that a digit is not necessarily a Latin one?
This is the cultural problem that we have: You probably know the programming language Whitespace or other programming languages that were created to be very hard to look at, like brainfuck. Apparently, Whitespace is in the discourse, it can be created, and people like it, but Arabic languages are not. What is the value system that the existence of whitespace in our courses conveys to students? Whitespace is, of course, just an example, but it conveys what we care about programming: Just look at us being quirky. How do people know about whitespace? Because they learn about it, it is shown in jest in many PL courses. And how do they not know about non-Latin programming languages? They do not learn about it, because of the value system that we project.
This value system also started with Dijkstra and the mathematization of computer science (see Part 1). Which means things like “We all are in computer science to get something out of it. Fun, enjoyment, intellectual stimulus and so on. Computer science is there for me, we are not there to solve a problem for other people. The thing I want to get out of it is value for my ego, and contributing something is a means to do so by doing certain things and not doing others.”
If we want to embrace diversity, should it be less about enforcing hard mechanisms and more about fostering culture change?
Yes, but that is of course tremendously hard. The people who are in computer science now choose computer science because of the current way which appeals to them. I wrote about cultural issues, and for the last half a year, I have been researching what the culture of programming language research is. People do not like to hear this, and I even get hate emails just for pointing out that it would be good if programming languages also were in other languages than English. Some people say that this would make programming worse, because currently we have one language, and if there are 50 different languages, everyone will have their own community and will fracture the field.
We project a rigid image of programming language research, and this drives people away from the field, specifically women. When I was a young female grad student, I went to ECOOP. This was actually my first conference, and I went there with my first paper. And I found that this was not for me. And then I switched to software engineering, not only because of gender, not just because there were more women in software engineering, but also because I was not so interested in programming for programming’s sake. My motivation for research has always been to use my skills to make the world a better place. But there is research showing that if you care about social change, that is actually a negative predictor for picking computer science. People that care about social change do not see how to fit into computer science, or programming languages specifically.
If we are the people that create programming languages, is it not a problem that we have this very narrow perspective on what a programming language should or should not look like? Not that academic programming language research has so much impact on practice, but it has an impact on education. If we keep producing programming languages by men for men and by white western people for white western people, then the systems around it will be exclusionary.
There are further kinds of diversity, for example, educational background and immigration history. We also have very few people who are second-generation immigrants. Do we have an idea why this is the case?
I have a hypothesis, but contrary to the other things I said, which are well-researched, I cannot back it up by studies; these are more my personal views. Usually, at least in Europe, immigrant children tend to be driven by status and wealth because immigrants are often not that rich, unless they are expats (which are seen, and see themselves, as not immigrants) What many immigrant kids want are jobs that will get them status in society. I know this a little bit because I teach in a high school in Rotterdam that is very much an “inner-city high school”.
Computer scientists are terrible at conveying that you will get a good career out of computer science. We even think this is a bit dirty, it often comes back to the question “Why do you do computer science?” Again, the value system we project is that you should love computer science. That you should not just go into computer science because you want to make money. That you should already do this as a toddler, otherwise you do not belong here. This is not projected by other fields or programs, like law or medicine. It is much more accepted to say: I don’t know what I want to do, I’ll do law because it gives me a good job. I do not have to like law since I was five. And this nerdy image—we are not wearing a suit to work, we wear a hoodie. Who is this attractive for? That is attractive for people that already have status because they are white and because they are middle class or upper. This behavior, shedding status, is something you can do if you have status. But if you desire status for whatever reason, then destating your profession is actually at the detriment. This is just my hypothesis, I do think it is well-founded, but I do not have studies to back it up.