Skip to main content

How to create the PL culture I'd like to believe we deserve

I herein interrupt my (ir)regular schedule to post about something sociological rather than metalogical.

I considered relegating this content to my personal blog, but honestly I think these words need to fall on the ears of exactly the folks who are mired enough in the technical community to follow research blogs. This is a post about "PL culture". What I mean by that is the characteristics, defined by the perceptions of its constituents, of "the PL community" -- or any subset of active programming languages researchers who find themselves in each others' company, perhaps at a conference or within a research group at a particular university.

In particular, I want to understand how PL might be failing as a community, and by that I mean either (1) fostering attitudes that make people within it feel othered/alienated/estranged or (2) serving as a barrier to the potential people and ideas it could include but doesn't. I want to cast some attention on the experiences of anyone who might ever sit around a table with a research group or stand around in a hallway at a conference and think, I'm never going to succeed in this community, because everyone here is so much more ____ than me.

On one level, this is probably recognizable to almost everyone at some point in their career: fill in the blank with "intelligent", "prolific", "knowledgeable", and you've got textbook impostor syndrome. What they don't tell you about impostor syndrome is that even if you're not an impostor in terms of your ability to work hard and think cleverly, you really might not belong in the sense that the prevalent culture is working against you, is engineered for the success of people who want different things than you or whose backgrounds experiences more closely match those around them.

Let me take a moment to be clear where I'm coming from: I consider PL my home, my academic family that raised me (is still very much raising me) as a computer scientist and thinker. I've just been part of CMU's graduate recruiting process for the 5th year in a row, meeting with potential PL grad students and talking to them about what it's like to be one. Because of this regularly-scheduled checkpoint in which I describe my experiences out loud, I've been able to listen to my own sentiments evolve over time. And a fact that has stayed true that entire time is that PL is my home.

So to realize slowly, over the years, that there are a number of ways I feel dissonant with that culture entails a bit of a heartbreak. It feels necessary in that to differentiate myself from a collective mindshare, of course I'm going to feel, well, different, but what worries me is that the cultural memes within academic PL are not on my side in terms of continuing its support and inclusion of me in light of that difference.

And I've discovered that I'm not alone. I asked twitter in what ways they felt PL culture could be alienating, and got a number of really interesting responses, many quite different from mine. Sadly, several people who shared with me (privately) their similar feelings wound up departing from academia, PL, or both. I found some disturbing patterns especially in the treatment that women (trans and cis) and gender-noncomforming students encountered, in terms of "accidental" estrangement and worse. But even those not visibly different reported feeling invisible or excluded due to abnormal background, research interests, or argumentation habits.

I'm going to assume we all agree that this is a problem, first of all. I know that isn't the case, but feel free to check out now if you disagree with, for example, the gender imbalance in the field being a problem, because I'm not here to make a concerted argument on that point. All I will say is this: I want anyone eager to learn about and do PL to be pulled in and educated and embraced and listened to so that ultimately, they productively crank out awesome research that we can all learn from, and then we all crank out even more awesome research. End of story. If you're on board with that, read on.

Of course, it's significantly easier to say "yes, we want to include everyone!" than it is to actually be a fertile community for them to not only feel welcome but to thrive and lead. In light of that, I want to try to present some concrete advice that you can apply whenever socializing and collaborating with other PL enthusiasts or potential PL enthusiasts.

How to create the community we all deserve

1. Don't dismiss non-STEM fields out of hand. Computer science has a pop-cultural reputation of being Only For Extra Smart People who clearly spend the largest portion of their brain cycles thinking about intensely difficult problems and thus have the most superior brains. This not only winds up setting an ego bar for anyone considering entering the field (if they don't already see themselves as a whizz kid, why should they try to hang out with them?), it's also dangerously myopic. I'm a huge fan of Off the Beaten Track as an attempt to try to cross disciplines with ours, but I have a hard time seeing it as a success so far, with a) very few crossed-with disciplines falling outside "other subfields of CS" or occasionally hard sciences and b) not much influence yet on mainline PL research. How are we going to grow our ideas if we can't communicate and cross-germinate them with external ones? When is the criterion of a language's expressiveness going to go beyond its ability to implement similar languages?

2. Inclusive language, y'all. This is a dead horse that keeps rising from the grave and definitely not unique to (or the worst in) PL, but it bears repeating. In formal settings like conferences I feel like we usually do well, but once the tone gets more "casual" like in ad-hoc social communities that grow around research groups, it can get pretty frustrating. Every male-as-default pronoun/name/hypothetical character is a grunch, i.e. a split-second solar-plexus-hitting reminder that a woman is Not The Assumed Audience. As Lindsey pointed out wrt the Haskell Symposium incident linked above:
You know what hurts about that sentence? The word 'they' and the word “us”. Usually, I like to think that when PL people speak of “us”, that I’m included in that “us”. But apparently there are PL people for whom “us” doesn’t mean “PL people”, but rather, “PL guys”.
This of course goes for heteronormative, racial and ableist assumptions that tend to creep into our language and hypothetical examples as well if we're not extra vigilant (to which point 5 below is also relevant).

3. Curb the interruption & other forms of one-upmanship. This is tough sometimes because we're all just so excitable and want to jump in right away with whatever we're thinking exactly when we think it. But the degree to which it happens sometimes makes me think that it's a lack of caring more than a lack of trying, or maybe even just ignorance to the fact that it's an issue. Consider whether you have a habit of interpreting a midsentence pause-to-collect-thoughts as a cue to make your point more loudly, and consider making a concerted effort to change that behavior.

4. Understand and discuss atypical brain function. One way to put this point is: stop valuing your colleagues on the basis of how "smart" you think they are, through e.g. how quickly they can solve a problem you put forth or how long it takes them to grasp a point from a paper or talk. Another thing I'm saying with this is that depression in academia is super common, yet we never talk about it; compounding situations like PTSD are less common yet can be totally crippling in combination with depression and the concomitant taboo/lack of sympathy for anyone who's not at least high-functioning with their atypicality. In fact perhaps we just expect that everyone in academia is "a little bit crazy", which means that a) we have some uniform idea of what that means and how it affects everyone (everyone responds to stress with workaholism, right?) and b) we don't talk about it at all, or what we could be doing to help each other, because we just think it's an inevitable part of the ride.

5. Recognize nonnormative family structure & other aspects of life outside academia. Basically, this is the idea that not everyone has followed-so-far and plans to continue following the Default Life Script. This article on geek/programmer culture, which has a similar aim for the software industry that I do in this post for PL, touches on this in one of its conversational suggestions to "talk about topics that are unique or important to you". Putting that forth as unilateral advice seems to me to ignore that it constitutes a risk some can't afford, but I do think that particularly if you're at a stable point in your career where you can afford to take social risks like that, showing folks with similar stories who're at more vulnerable/formative stages could be hugely helpful for them, knowing that Someone Like Them actually made it, wound up in a career that perhaps they could see themselves pursuing. Or even just that they have a potential ally to talk to if anyone gives them crap.

6. Get over the idea that studying logic makes you immune to fallacious or incomplete arguments. Valid argumentation requires not only clarity of thought but also empathy, humility, and introspection to overcome your biases and allow new information to influence your beliefs. We can't have productive discourse by coming to our conclusions alone, nor by assuming that whatever dogmatic statements we make (e.g. about specific programming idioms being more "natural") lie above critical examination.

7. Give positive feedback. This point arises from a specific suggestion from Chung-chieh Shan:
[T]hank people more often: asking a good question, engaging in discussion that (even if contentious) helped you clarify your stance and work, kicking a dinner group into action -- such helpful actions take work, we should express our (professionally relevant) gratitude for them, and I think it would help explain to many of us why we belong.
Another example of often-thankless activity I thought of is writing down an expository piece of "research folklore" previously conveyed by oral tradition; I've frequently wished we had better venues for solutions to open exposition problems.

Aside from thanking people, if you advise or mentor students much earlier in their career than you, positive feedback can also come in the form of remembering to say out loud what you appreciate about their work. Whatever is obvious to you about their talents and strengths is very likely not obvious to them.

These are all things that you-an-individual can do; there are lots of broader systemic points, such as the cost of conferences and the fact that barrier-to-entry for someone whose path diverged from academia several years ago has little hope of making their way - and I'd like to discuss what we can do about that as well, but I think one could easily write a separate, less-PL-specific post on those matters.

I'm saying all these things because honestly, I love being in PL and I don't want to leave. I want to be happy while I'm here, I want to make my fellow colleagues happy, and I want to show folks who don't yet know what we're about that we're lovely people who think about interesting problems.

If you have more suggestions for this list, please feel free to submit them in comments.

Thanks especially to Chung-chieh Shan, Wm. Caylee Hogg, Philippa Cowderoy, and Lindsey Kuper, who contributed a lot of really important points to this discussion as well as helpful feedback to a first draft.


  1. To add a bit more context to the quote from me for anyone who doesn't bother to read Tim's detailed account, the sentence I'm referring to is Swierstra's "They usually leave programming to us", where "they" was referring to women.

    On the topic of thanking people for work that usually goes unrecognized, I recently found out that OOPSLA 2012 gave out a "Distinguished Reviewer" award to a member of the PC who the other PC members chose as doing a particularly noteworthy job in reviewing papers. Işıl Dillig received the award, having gotten seven nominations (there are more details in the welcome message in the proceedings).

    I was impressed by this. Paper reviewing is difficult and time-consuming work, and we all know how valuable it is to get a thorough, thoughtful review and how frustrating it is to get a superficial one. Although people get "recognized", in a sense, for having done reviews (by being able to list themselves as having been on a PC or an ERC or what have you), this is the first time that I've seen a conference recognize someone for the quality of their reviews. It would be great if the other PL conferences followed suit.

    1. I have come across a best reviewer award at AI conferences but can't think where now. It was some years ago.

      Totally irrelevant mindless pedantry point: my reading of that preface is that there were 7 nominations for that award, it doesn't say Dillig received seven.

    2. Oops, yes, you're right. It says that seven people were nominated, and out of those seven, she received the most nominations.

  2. This is an important post and a pretty good list of ideas. Thank you for writing this.

    Here are some of my thoughts.

    1) On on-upmanship: it's especially important to be aware of this if you're in a position of authority or when speaking with someone who is in a vulnerable position. Examples include non-established people giving a talk for the first time or presenting a new idea (maybe radical and/or half-baked) or trying to engage with new groups of people. Maybe you think their talk is awful or maybe you disagree with them or maybe you feel they are doing it wrong and you want to correct them, but whatever the case, be careful how you interact. What you say and how you say it may seem perfectly reasonable and justified to you (especially if you are in a position of authority) but may come across as aggressive, abusive, and possibly devastating to them.

    2) On atypical brain function: be as kind and patient and welcoming as you possibly can manage with people whos actions and reasoning you don't understand. Don't write someone off as a flake just because they don't respond the way you expect to certain opportunities or situations. Try not to judge people or hold grudges because of past negative experiences. Especially don't lecture them or chastise them for being unreliable. You have no idea what they may be dealing with or going through. Instead, if they engage you in the future, try to be welcoming and talk to them and maybe even ask them how they are doing. Indicating that you seem to care can mean a lot. Treat each interaction as a new opportunity.

    3) On social dysfunction and exclusivity: be aware of complicated social dynamics, particularly at gatherings whether formal (conferences) or informal (walks, dinners, pub excursions). If someone you don't know or who is an outsider wanders over to your group, don't just keep talking amongst yourselves. Instead, greet them, make eye contact, and try to figure out a way to include them in the conversation. Maybe even explicitly introduce yourself and your peers. Gently ask them open ended questions, giving them the opportunity to break the ice, but don't put them on the spot.

    On the flip side, don't just stay huddled together with the same small group all the time. Conferences and the like can be uncomfortable and people seem to naturally gravitate toward situations that make them comfortable. Unfortunately, for the folks walking around who don't know anybody or who are incredibly shy or lacking in confidence, your little circle of friends can come across as very intimidating.

    Body language is important. Don't sit there talking with arms crossed and backs turned to everyone else talking to your peers and making sideward glances to the awkward person wondering around who you might wish would go away because they seem weird or because you don't want to bother with the social rituals associated with introduction and inclusion.

    If you see someone who looks less confident than you and you are in a position to include them, do it! It wouldn't hurt to wander over and talk to them. A little encouragement can go a long way. Remember that just by showing up they are indicating some sort of interest in being included. If someone comes to such an event and finds it too awkward or exclusive they will probably not come again and may decide they just don't belong.

    The same idea goes for side activities at formal gatherings. Make sure to include people in your walks or dinner outings or whatever. Many times people don't even think to ask outsiders if they'd like to come along. Nothing is more awkward than walking up to a group of people at a conference and trying to get to know them only to have them leave a few minutes later for dinner or drinks without asking if you'd like to go or if you have any plans.

    That's all I got for now.

  3. The title and maybe the first five paragraphs gave me an impression that the text will be about providing newcomers with shortcuts to folklore and pragmatics of a particular community. Like in "to read Ancient Chinese literature one must know beforehand what it is about". Instead, I've read a rather generic text on political correctness. Booo-ring.

    1. Nikita, there are already several resources like what you're describing scattered around the web. Maybe someone could do a better job of consolidating them, but that's another issue.

      On the other hand, what Chris is describing is something that _isn't_ talked about but needs to be. It really has nothing to do with political correctness, as you seem to believe, but about cultural problems.

      I'm curious why you think that is boring. Is it because you feel these are unimportant issues? Do you think everything is just fine the way it is? If that's the case, I'm guessing you probably haven't experienced any of the stuff described by Chris or don't have any close friends who have. It's worth thinking about, though, if you care about the state of the community and not just your own personal experiences. Being dismissive doesn't help anything.

    2. Dude, how is talking about depression & PTSD political correctness?

    3. When someone uses the phrase "political correctness", what I hear is that the idea that everyone deserves respect makes that person feel afraid and insecure. So let's rephrase: "I've read a rather generic text on respect. Booo-ring". I'm sorry that you find it boring to read about how to do a better job at respecting your fellow humans. It makes me sad, especially since it sounds like you could really benefit from what Chris has to say about it. Consider reflecting on what makes you so afraid of the idea that everyone deserves respect and dignity that you need to make fun of it.

  4. Chris

    Many thanks for this superb post.

    Seems to me two reasons to promote inclusivity. Because it's the right thing dammit. And because it makes the field better. Those are what you are talking about.

    I've linked to it from Depressed Academics:

    Actually that's how I found your post - because my wife saw your article independently and told me about the link!

    I am pleased that D.A. is getting traction: it is a bit dispiriting though that it is such a visible part of the depression in academia community. Dispiriting because there should be so much more out there.

  5. "We deserve a culture where we listen to each other...

    We deserve a culture where we creatively meet the needs for a fair energetic exchange for each of us, not assuming that everyone has the same needs, wants and desires.

    We deserve a culture where we have compassion for one another, and compassion for our own journey.

    We deserve a culture where we respect ourselves, respect our fellow leaders, respect those that we serve.

    We deserve a culture of consent, where leaders have as much right to consent as everyone else.

    As we do this, we will be able to lead with grace, inspire with courage, network with passion, create something truly amazing, and succeed at crafting our dreams into reality."

  6. Did you know you can create short links with Shortest and get cash for every click on your short urls.


Post a Comment

Popular posts from this blog

Using Twine for Games Research (Part II)

This preliminary discussion introduced my thoughts on using Twine as a tool for creating prototypes for games research. I'll start with documenting my first case study: a hack-and-slash RPG-like setting where the player character has a record of attributes ("stats") that evolve through actions that turn certain resources (money, health, items) into others. I've selected this hack-and-slash example because it falls outside the canonical "branching story" domain thought to be Twine's primary use case, but it is not too much trickier to implement. It relies crucially on the management of state in ways that simple branching stories would not, but it does so in a fairly straightforward way.

If all goes well, this post may also serve as a tutorial on the "basics" of Twine (links + variables + expressions). In particular, I'll be using Twine 2/Harlowe, and I haven't seen many tutorials for this new version published yet.

To me, the main "…

Why I don't like the term "AI"

Content note: I replicate some ableist language in this post for the sake of calling it out as ableist.

In games research, some people take pains to distinguish artificial intelligence from computational intelligence (Wikipedia summary), with the primary issue being that AI cares more about replicating human behavior, while CI is "human-behavior-inspired" approaches to solving concrete problems. I don't strongly identify with one of these sub-areas more than the other; the extent to which I hold an opinion is mainly that I find the distinction a bit silly, given that the practical effects seem mainly to be that there are two conferences (CIG and AIIDE) that attract the same people, and a journal (TCIAIG - Transactions on Computational Intelligence and Artificial Intelligence in Games) that seems to resolve the problem by replacing instances of "AI" with "CI/AI."

I have a vague, un-citeable memory of hearing another argument from people who dislike the…

Using Twine for Games Research (Part III)

Where we last left off, I described Twine's basic capabilities and illustrated how to use them in Twine 2 by way of a tiny hack-and-slash RPG mechanic. You can play the result, and you should also be able to download that HTML file and use Twine 2's "import file" mechanism to load the editable source code/passage layout.

Notice that, in terms of game design, it's not much more sophisticated than a slot machine: the only interesting decision we've incorporated is for the player to determine when to stop pushing her luck with repeated adventures and go home with the current spoils.

What makes this type of RPG strategy more interesting to me is the sorts of decisions that can have longer-term effects, the ones where you spend an accumulation of resources on one of several things that might have a substantial payoff down the road. In a more character-based setting, this could be something like increasing skill levels or adding personality traits.

Often, the game-…