It’s PLDI week, so there’s no better time to get to know a few people in the programming languages research community, especially since we aren’t meeting each other in person this year. People of PL is a series of interviews that continues in the same vein as the People of POPL and the People of Language Design and Implementation interviews that were done by Jean Yang, Brandon Lucia, and Minjia Zhang.
In this edition, John Wickerson meets Ron Garcia, who is an Associate Professor in the Department of Computer Science at the University of British Columbia in Canada.
J: Tell me about the journey you took to get to your current position.
R: Well, it’s been a wild ride! It’s a journey that I feel very lucky to have had. If you’d told me N years ago that this is where I’d be now, I’d have said that’s absurd! I didn’t set out to become a professor, but I thought, well, let’s give this a try, and then I discovered that this really is my jam – I love it!
I was always into computers, but I actually started out as an electrical engineering undergraduate. This was in part because my stepfather, who is an idol of mine, was an electrical engineer, and I wanted to be able to do the things he could do. But it turned out that studying electrical engineering was not quite the same thing as being good at electronics! Eventually I realised that I did much better in computer programming courses than in the electrical engineering courses, and so, over the course of a couple of degrees, I took a journey from electrical engineering through to computer engineering, and then into computer science and finally PL. So, it took me a while to find my niche!
J: Ha, I didn’t know you started in electrical engineering. That means your journey has been the opposite of my own, because I started in PL as a graduate student, and have now ended up working in an electrical engineering department. One thing that I’ve enjoyed about the process of changing fields is that when I’m perceived as a bit of an ‘outsider’, I feel I can get away with asking really dumb questions in seminars, and sometimes I’ve ended up learning things rather more quickly as a result. Did you find anything similar when you changed fields yourself?
R: Well, I remember sitting in Logic seminars as a graduate student, letting much of it just wash over me, and thinking: this makes no sense! But I was relatively persistent, and every once in a while I’d go to a seminar and realise: hey, that person said something that sort of made sense! Early on, I didn’t ask any questions, but many years later – after hearing brilliant people ask questions where I actually knew the answer! – I realised that question-asking was a community effort. Sometimes when you ask a question, you’re asking on behalf of other people who are being shy, or are afraid of sounding like the idiot in the room.
J: Quite. You’ve reminded me of a time when I was a PhD student, and I was in a seminar about theorem provers, and I asked: “What is PVS?” I can’t remember who the speaker was, but I distinctly remember him saying in front of the whole room: “You don’t know what PVS is?!” That put me off asking questions for a little while!
R: Ugh! Yes, comments like that can be quite dangerous. I remember a friend telling me about trying to understand the difference between object language and metalanguage – that is, the language you’re defining and the language you’re using to define that language. And he read in a textbook by some famous mathematician something like: “If you’re not capable of distinguishing between metalanguage terms and object language terms, then maybe you should find something else to do, like basket weaving.” And I see that kind of thing and I think: why not help people up? Why assume that early struggles are a sign of incapability of success?
J: Absolutely. So, you’re now working in PL: what’s your current research problem?
R: The two-word version of my research problem is ‘gradual typing’, but I think that means different things to different people. The way I think about it is: I like type systems much more than I like type checkers. For instance, when I program in Racket, I use comments for type signatures because although I always program with types, the type checker often gets in my way. I like the idea (for which I should definitely give credit to Matthias Felleisen) that a type system is an abstract technology of thought, prior to being instantiated in a mechanism. I want computational support when I’m reasoning about types, but I also want to be able to incorporate reasoning from outside the particular typing discipline of the language I’m using. Which leads to…
J: Gradual types.
R: Gradual types, yeah. The complicated bit is: if one part of your program is type-checked according to some typing discipline, and the rest is type-checked according to some other typing discipline, or not type-checked at all – what have you got? According to formal reasoning principles: not a whole lot, unless you have some mechanism, like dynamic checks, for bridging the gap between the two typing disciplines. And so, I’m led to thinking about how we connect different typing disciplines, whether they’re dynamic types, or simple types, or polymorphic types, or subtyping, or static types, or information flow security types, or dependent types. In short, gradual typing is, to me, the blend of multiple styles of thought with computational support. It’s about aiming for a more nuanced and rich understanding of what types can and can’t do in the context of programming languages, in the context of proof assistants, and in the context of metatheory. And I think that clarity can really lay the path for things that I am not even going to anticipate.
J: What’s your favourite part of your job?
R: There’s something really neat about being able, in a pretty self-directed manner, to choose what facets of computer science I want to understand better, and then to have the joy of conveying that understanding to other people. I take great joy in finding the right way to explain things, whether it’s to students or to people in the research community, and whether it’s explaining old things in a new way, or new things that are inspired by a different understanding of old things.
J: What about your least favourite?
R: Well the scariest part of my first few years on the faculty at UBC was being asked to do things for which I had no background or training. We’re trained to be researchers, but then we’re suddenly given all sorts of responsibilities – for mentoring students, for teaching, for administering the University, for recruiting new faculty, and so on. I sometimes find that being an academic involves being pushed into the deep end of a swimming pool, crawling out again, gasping by the side of the pool, and then getting pushed straight into another pool! I’m not a natural multitasker, so I struggle to combine all these different roles – the overhead on task-switching leaves me mentally exhausted. It’s why I sometimes like the “crunch time” before a paper deadline – it gives me an excuse to push everything else by the wayside and focus.
J: You’ve been attending PL conferences for a while – DBLP tells me that your first paper was at OOPSLA 2003. Have you noticed any changes in the conferences over that time?
R: Interesting question. I remember going to a conference as a student where, in the Q&A after the keynote, someone got up from the audience and spent probably five minutes giving the speaker a good dressing down, in no uncertain terms! And it was not constructive criticism either. It really put me off. I think I’ve seen less of this over the years. Perhaps more attention is being paid to the creation of respectful environments. In any case, it’s been a nice change.
J: There certainly does seem to be a lot more focus on creating respectful environments at conferences these days.
R: The other change is the rise of the mentoring workshops. As one of the founders of the Programming Languages Mentoring Workshops (PLMW), I have to admit to being a bit biased about this, of course. But I think they’ve really changed the dynamics of meetings. They’ve created an energy and a means by which young people can be introduced into the PL community.
J: I’m a big fan of PLMW – it’s a great combo of technical talks that I can actually understand and useful mentoring talks.
R: Right. I’d benefitted immensely from the mentoring workshops I’d attended as a graduate student, both for underrepresented groups in computer science (organised by Valerie Taylor, Bryant York, Ilya Hicks, and Domingo Rodriguez) and in the programming languages community (organised by Kathryn McKinley and Daniel Jiménez). So when Kathleen Fisher asked me and Stephanie Weirich about running a mentoring workshop at POPL 2012, I just had to say yes. And it was an awesome event. I’m delighted to see that PLMW has now spread to the other major SIGPLAN conferences too. I think helping to get PLMW off the ground has been one of my greatest successes.
J: Quite. PLMW clearly has such a positive effect on the rest of the conference, just by being there. It’s like the CARES committee that I was talking about with Alexandra – it’s a good thing to have, even for people who don’t directly take advantage of it.
J: I’d quite like to talk a bit about race and diversity issues if that’s ok with you. To put things simply: what’s it like being a Black person in the PL academic community?
R: That’s a great question. It’s an important question and, in many ways, it’s a hard question for me. The easy place to start is to say that in computer science broadly, let alone in PL specifically, there are not a lot of Black people at the faculty level. When I got my PhD in 2008, there were 48 Black faculty in computer science in the whole of North America. By the time I got tenure in 2017, things had improved a bit and there were about 75. So the number in the whole of North America was only a little more than the size of my department.
J: That’s quite something.
R: Yeah, it’s something. The way I think about it: the path that I’ve taken has been pretty fortunate. Many things have gone right for me. I’ve had good environments and great mentors who have looked out for me. There have been many times along the way where I easily could have dropped out, but I was lucky enough to have the support systems in place to convince me that I shouldn’t, and that I belonged. Given conversations I’ve had with many other people, my own experience has been among the best that I’ve known – and I still carry a lot of scars. So if what seems like the best that happens is still pretty traumatic, then it leaves me very worried about everybody who didn’t have so many things go right for them.
My department is very supportive; indeed, my faculty released a statement in support of Black Lives Matter recently, which was extremely meaningful to me. And yet, one can assume that basically everyone who is Black has had experiences that lead to scarring, despite a lot of great experiences. I think the community’s been good, and I’ve received a lot of support, but at the same time, stuff happens. Things like being mistaken for service staff when you’re attending a conference, or being consistently mistaken for the one other Black person at a meeting. Of course, the first time something like that happens, it’s funny, but when it happens a number of times, it becomes challenging.
J: Right. When I talked with Alexandra about the challenges faced by female academics, what I understood was that the problem is not so much the big, blatant acts of sexism, but rather the large number of small acts. She called them “micro-aggressions”. Any individual act could be excused or brushed off, and would be invisible to a third person. But cumulatively, they add up to a pretty oppressive effect. I wonder whether that’s somehow analogous to what Black academics experience.
R: There’s no analogy involved – it’s extensionally the same thing. It is a death of a thousand cuts, even if some of the cuts are more psychic than tangible. I think it’s also useful to bear in mind that those who have become accustomed to experiencing these micro-aggressions find themselves needing to parse the world in much more emotionally taxing ways than everyone else. When something happens, they have to spend emotional energy trying to understand why it happened, and whether it was malicious or just a mistake. And that wears on their ability to assume the best in others, and their ability to understand the motives of others.
J: Can you give an example?
R: So, for instance, when I was a student, it was not uncommon for me to be asked to be in photoshoots for materials to represent an organisation. And although the intent there is often good – perhaps they really do want to create the diverse environment shown in the picture! – they don’t necessarily notice that the picture is not representative of how things actually are. This leads to a certain amount of discomfort. The extra service work commonly asked of people from under-represented groups is commonly known as the “minority tax.” Then on top of the work is the time spent deciding what to think about these requests, like deciding whether or not I am helping or hurting myself or others by participating in something like a photoshoot. Even deciding whether to participate in this People of PL interview, given the context of the world right now, imposes a certain amount of discomfort. That doesn’t necessarily mean it’s not the right thing to do, but it’s important that we recognise what is being asked. The point is not “don’t talk to me about this stuff!”, but rather that there is a great need for empathy all around.
I’ve tried to be an ally regarding gender, because as a cis-male I know that my voice is treated differently. And, in the same way, I am grateful to the many people who I feel have my back – in the PL community, in my department, in my faculty, and in my life in general. I feel very lucky to be in the PL community – it’s full of people who are working to make the world a better place for everybody.
J: Thank you very much for sharing all of this. You’ve mentioned that the number of Black people in computing is slowly increasing but does remain very low. What can we do to improve those figures?
R: Well, I’m not an expert on institutional change, but there are people in computer science (and the social sciences of course) working on this. For instance, there is an organisation called BlackInComputing.org that recently posted a letter together with a set of action items, and I think many of those are within reach. I also think outreach is important. Some of my students didn’t know that PL even existed before taking one of my courses, so it’s no surprise that minority students would not know either. We need to let young Black people know that PL is a captivating field, and we need to keep working on making our community a welcoming and safe environment for them. As I reflect on my own experience, I might not be in the PL community were it not for a few decisive moments where caring people were in the right place at the right time.
J: Ok, my last question, and it’s my favourite one: What would you be if you were not a computer scientist?
R: That’s a fun question. I would either be a music recording engineer, or a person who builds music equipment. Music was a very significant part of my youth, and I had originally planned to enroll in an audio engineering programme, but then I got a scholarship from Notre Dame, and switched to electrical engineering because they didn’t have an audio engineering programme.
I played bass guitar at the time, and picked up drums in grad school. Indeed, it was fun reading your interview with Mike Hicks because I discovered that he likes comic books, plays the drums, and plays Ultimate Frisbee – apparently he’s who I’m chasing in life!
J: Thanks Ron!
R: Thank you. I’ve appreciated your questions. And thanks for your work on this interview series in general. I think that humanising the people behind the work is so important. We are more than just facts sitting in papers. We are individuals with hopes and dreams and tragedies, all intertwined between the lines of the papers and textbooks and software, and so we must never forget the human aspect of the field, and the community.
Disclaimer: These posts are written by individual contributors to share their thoughts on the SIGPLAN blog for the benefit of the community. Any views or opinions represented in this blog are personal, belong solely to the blog author and do not represent those of ACM SIGPLAN or its parent organization, ACM.