The “more hack, less yack” injunction has been reversed this last week as an important conversation about gender relations and sexism in code culture has erupted, sparked by the “learn to code” call and by Miriam Posner’s important response that details some of the problems with that call. If haven’t read Posner’s post yet, go do that first, please. The debate draws two important and complicated distinctions: DH vs CS, craft vs. culture. Before exploring these boundaries, however, I want to review the conversation so far. Posner writes:
In principle, I have no particular problem with getting everyone to code. I’m learning to do it myself. (And a million thank yous to those of you who are helping me.) But I wanted to talk here about why men are the ones who code, so that we can speak openly about the fact that programming knowledge is not a neutral thing, but something men will tend to have more often than women.
This matter is of no small concern to me. It is breaking my damn heart to see how many women I know have earnestly committed themselves to codeacademy because they want to be good citizens, to prove they have what it takes. These are my friends, and this is their livelihood, and this is the career we’ve chosen.
The wealth of comments on Posner’s post alone demonstrate the resonance of this point. Stephen Ramsay relates one especially memorable and heartbreaking anecdote exemplifying the problem:
We’re holding a development contest at my institution, and I encouraged my students to enter. One woman, a really talented hacker (who had never programmed before my class), was particularly interested in joining, and they were holding a meet-and-greet so that they could explain the terms of the contest and get people into teams. I told her I’d come along.
It was like a locker room. I counted three women in a group of at least fifty men, but that wasn’t even the worst of it. Porn joke? Check. Sports and warfare metaphors? Abounding. Do-or-die, you-win-or-you-suck vibe? Very much in evidence. And there’s my wonderful, brilliant sophomore taking it all in. I was so pissed off, I wanted to cry.
I am a well-known booster of the idea of “building” in DH, but I have always hastened to add that building does not necessarily mean coding. I don’t expect everyone to be good at coding. I don’t expect everyone to like it, and it’s hard to get good at something you just don’t like. Like most people, the list of things I am bad at and don’t like is terrifyingly long, and occasionally embarrassing. But what I can’t tolerate at all is the idea of someone — whether a student or a colleague — who both likes it and is good at it, but is turned away from it by the “culture.”
Fuck that culture. I’m a teacher. I care about students who want to learn, learning. I’m not so naive as to think that we can reform that culture from without, but honestly, if we just re-duplicate that culture in DH, then we have failed. And we might as well go back to whatever we were doing before.
His outrage is certainly justified and even necessary as humanists engage with and become part of hacker culture. The risk, though, is that we will see the obvious sexism and elitism in CS and simply refuse to engage, to throw our hands up in despair and tend only to our own code gardens. To do so would be a mistake. Even while I firmly believe we in the digital humanities can learn from the refined craft of the professionals (even though not all professionals are skilled; many have more in common with the novice DIYer: effective in the short-term, a disaster in the long-term), we should not give up on the possibility of effecting a cultural change not from within, but from a position adjacent to and in conversation with the traditional CS world. Indeed, we cannot escape the relationship. Rather than circle the wagons, the visceral response understandably caused by experiences like the ones Ramsay relates, Bethany Nowviskie calls for moderation:
The call for a more deeply-theorized and critically-engaged digital humanities comes in waves. It’s as dangerously easy to tune out as the tide, for people who have heard it again and again — people whose hard-won intellectual experience and concrete understandings of digital project development should make them indispensable partners with scholars new to DH.
Where does the sexism, misogyny, and locker-room culture come from? Is it a nearly inevitable result of the male-dominated profession or is it WHY the profession is so gender-skewed in the first place? (The old chicken and egg question). Consider what coders do all day, as Nowviskie enjoins us to do. They solve problems, mostly set by their bosses, customers, or corporate goals. To solve these problems requires them to bend the machines to their will—and the machines can be quite recalcitrant. In other words, we see a replication of the will to mastery, the Enlightenment ideal of reason conquering nature. The machine takes the place of nature-as-raw-material. We thus find that the white, male, privileged culture of code is just another microcosm of society as a whole, one made stronger through the mindset demanded by the practice of coding. Moreover, the salaries many professionals command puts them squarely in the rank of society’s elite, a rank often committed to the status quo. The high profile and hugely profitable gaming industry, with its celebration of violence and the objectification of women, and which is one of the preferred destinations of many professionals, also strengthens this misogynistic culture.
Hugh Cayless, a DH coder himself, points out the ageism and sexism of mainstream coder culture:
The population of programmers not only skews male, it skews young. Put a bunch of young men together, particularly in small groups that are under a lot of pressure (in a startup, for example), and you get the sorts of tribal behaviors that make women and anyone over 35 uncomfortable. There's not just misogyny, there's hostility towards people who might want to have a life outside of work (e.g. people who have spouses and kids and like spending time with them). And this is both a cause of sexual/racial/age imbalance and a result. It's a self-reinforcing cycle.
Nowviskie also writes:
A Utopian vision of DH would see scholars engaging with developers as peers in mutually intelligible conversation. But a gap exists, in critical vocabulary and in the norms of discourse between these groups (even including developers with deep backgrounds in humanistic research) — and it functions as a mutual disincentive to engage.
Ramsay, in his anger at the treatment of his students—a protective impulse I think we can all recognize—implies that perhaps disengagement might be the only way forward. But disengagement will remain impossible, at least in the practice of coding. Because coding is a form of writing, a craft to which coders have devoted hundreds of thousands of hours, written numerous books, style guides, and best practices documents, and which the DH community cannot afford to ignore, we will stay beholden to the work that has gone before, however problematic the culture that produces it. Again, Nowviskie:
To my mind, coding itself has more in common with traditional arts-and-crafts practice than with academic discourse. Too often, the things developers know — know and value, because they enact them every day — go entirely unspoken. These include the philosophy of software craftsmanship and, by extension, the intellectual underpinnings of digital humanities practice. (If you use their tools, that goes for your DH practice, too.)
Also speaking to the craft of coding, Julie Meloni writes:
There is a not-insignificant number of people out there with jobs like “programmer” or “developer” who themselves don’t actually know how to code; they may have taken initiative on their own (a good thing!) and gone through a tutorial (or read a book, mine included), or took took a semester or two in Java or whatever language, maybe memorized some concepts, keywords, and typical sample interview questions, and managed to get a job as a developer. Or, they were in a position at a organization that decided it needed a “coder,” this person dabbled in some things, they were given a task to do, the task was done (for some value of done, meaning not knowing if it was a secure, scalable, safe, tested product), and they moved up the chain or to a different organization into a developer group and learned that they didn’t actually know development norms.
This story is one that, I think, many self-taught DH coders can relate to. Indeed, I’ve seen many “professional” coders and heard horror stories about others who are, essentially, paid amateurs with practically no grasp of the craft. But, they still participate in and perpetuate the culture.
Edsger Dijkstra, revered as one of the great and foundational computer scientists (and also a professor at the University of Texas, my current institution), had this to say about the practice of seeing programming as a craft:
The practice is pervaded by the reassuring illusion that programs are just devices like any others, the only difference admitted being that their manufacture might require a new type of craftsmen, viz. programmers. From there it is only a small step to measuring “programmer productivity” in terms of “number of lines of code produced per month.”
Yet in calling for us to see programming as a radical novelty rather than fit it into our existing schemata (such as “coding is writing”), Dijkstra was also driven by a desire for us to write clean, correct, and easily maintained code, a desire I see as a key component of the craft:
I would therefore like to posit that computing's central challenge, viz. “How not to make a mess of it”, has not been met. On the contrary, most of our systems are much more complicated than can be considered healthy, and are too messy and chaotic to be used in comfort and confidence. The average customer of the computing industry has been served so poorly that he expects his system to crash all the time, and we witness a massive worldwide distribution of bug-ridden software for which we should be deeply ashamed.
And bug-ridden software is part of what I want DH practitioners to avoid. We thus have two related, but somewhat conflicting strands: the importance of coding as a craft, itself part of the culture of mastery, and the need to engage with the odious aspects of code culture as we work to transform not only DH, but also code culture itself. We cannot, however, take only part of the world and wash our hands of the other and still consider ourselves responsible makers or responsible humanists. Instead, we must ask, “Where does this culture come from?” If we don’t understand it, we have little hope of effecting any change. We may even unwittingly recreate it in our own practices and communities, even though the humanities as currently constituted has some strong antibodies that would make such recreation (I hope) less likely. While the answer to that question may seem simple (“it’s the sexist geeks!”), I do not think we can or should so quickly condemn the CS-educated, professional community that has given rise to the brogrammers.
Indeed, it’s more than just code culture, as Jason Tocci notes in “Sexism, Misogyny & Misandry in Geek Cultures". It is endemic to geek culture as a whole, of which code culture is but a subset. Not all geeks may be coders, but nearly all coders are geeks, at least on some level. Moreover, as Ramsay notes, most coders are not brogrammers, but instead will readily say they’d like to see more women coders. If we take them at their word rather than reject such sentiments as shallow pieties, we have to look elsewhere than at the individuals for the primary causes. While we should not let the individuals off the hook, there are structural pressures that are prior; these structures are what we must analyze and try to change.
And the humanities’ record in changing the fundamentals of society is not very impressive. The promise and apparent failure of theory to effect real and lasting social change is, as we know, one reason that many now claim we are in a post-theory moment. We need look no further than the persistent, pernicious mockeries of feminism that have lasted several decades at least in contemporary American culture (especially prevalent on the political right) to see what a combative stance can fail to achieve.
How, then, do we adopt the best aspects of the craft to “not make a mess of it”, as Dijkstra so rightly counseled us, while recognizing and working against the larger culture that produces the craft? The answer is most assuredly not by ignoring the best practices or strategically taking what is useful and retreating to our own DH corners. Here at HASTAC, Cathy Davidson is fond of saying that our operating system is collaboration via difference. If we cannot account for the difference of code culture, if we are blinded to what is valuable in it because of its many obvious problems, then we cannot collaborate. Both communities—DH and professional coders—will be impoverished for it. Moreover, collaboration requires humility, compassion, and generosity. It can be incredibly difficult to cultivate those attitudes toward a community such as the one Posner and Ramsay describe, but it is work we must do.
I am a strong proponent of collaboration with professionals: not because I think humanists can’t code well or shouldn’t code, but because we both have much to learn from each other. But if we fail to learn about both the good and the bad of code culture, then we cannot successfully collaborate, we cannot build effectively, and we certainly cannot effect change.
Even though many professionals are themselves not very good coders, as Meloni points out, my concern is for the DH community, made up of self-taught DIYers who, like the coders some excoriate, see machines as little more than tools for mastery, means to an immediate end. Many in the DH community have yet to learn even the most basic coder virtue of laziness and instead forge bravely and blindly ahead, building yet another Content Management System, yet another user authentication system, and the likes. We cannot wash our hands of code culture—ugly warts and all—without doing our own practices and the products of our building harm.
I should be clear: I have very little patience for the us vs. them mentality. Even though, throughout this post, I draw a distinction between the DH community and the code culture Posner, Ramsay, et al. rightly criticize, I do not believe that distinction can or should hold. We are united by an interest in computing, in coding and building digital things, in a desire for mastery over the machines and the problems they help us solve, and in our DIY, self-taught practices of code-writing; indeed, most professionals started as a amateurs in love with the possibilities of programming. I use these boundaries as shorthand, but want to help erase them. It is important to recognize different rhetorics and different attitudes, but only to see that our values are in large part a result of the cultures into which we’re socialized. As humanists learning code, we come from a culture that produced feminist, queer, and post-colonial theories; the professionals from code culture—who now, it seems, risk being painted as troglodytic code monkeys—socialized in a business environment where the names Zuckerberg, Jobs (a notorious jerk), and Gates are revered totems, where money and reputation fuel late-night hackfests and the eschewal of an outside life: and lead to rapid burn out.
We should not take credit as individuals for the cultural sensitivities granted us by theory and training (again: humility), nor should we judge too harshly the individuals brought up in the male-dominated, sexist code/geek culture. To do so leads only to alienation and insularity, a self-defeating strategy that, once it draws sides, harms both. We must learn the best of the craft and, even, the good parts of the culture to help our own work and to speak respectfully and comprehensibly to those whose practices we wish to adapt and whose culture we wish to change. As much as I sympathize with Ramsay’s frustration and Posner’s cautions, I cannot whole-heartedly endorse them. We must use our humanities training not just to critique a culture, but to see the structures of power that make it possible in the first place, to see these experiences as potential teaching moments. We must first understand the culture that sees women as interlopers (a problem in STEM generally) and marginalizes them (and other groups) before we can begin to change it. To create our own spaces from which we dispense judgment is but a short-term solution that ensures the isolation of the DH community, not a sustainable solution that can erase the misogyny so prevalent in the CS-born world.
I don’t know if we in DH can ultimately change such a powerful structure, especially since it is not the original locus of sexism and misogyny, but instead is simply another crystallization of it. Maybe it is, as Nowviskie remarks, a Utopia, existing nowhere. But we certainly won’t find out by withdrawing from code culture to our own islands. We also won’t learn anything about the craft from a culture we’ve demonized. Instead, we should build a community of practice that includes CS majors, professionals, and digital humanities scholars, coders, and builders. But to do so demands humility from all parties, a recognition that we all have something to learn.