+++ /dev/null
-Title: Survey Data on Cis and Trans Women Among Haskell Programmers
-Date: 2021-01-01
-Category: other
-Tags: Haskell, sex differences, Python
-Status: draft
-
-Stereotypically, computer programming is both a predominantly male profession and the quintessential profession of non-exclusively-androphilic trans women. Stereotypically, these demographic trends are even more pronounced in "niche", academic, or hobbyist technology communities (_e.g._, Rust), rather than those with more established mainstream use (_e.g._, JavaScript).
-
-But stereotypes can be _wrong_! The heuristic process by which people's brains form stereotypes from experience are riddled with biases that prevent our mental model of what people are like from matching what people are _actually_ like. Unless you believe [a woman is more likely to be a feminist bank teller than a bank teller (which is _mathematically impossible_)](https://en.wikipedia.org/wiki/Conjunction_fallacy), you're best off seeking _hard numbers_ about what people are like rather than relying on mere stereotypes.
-
-Fortunately, sometimes hard numbers are available! Taylor Fausak has been administering an annual State of Haskell survey [since 2017](https://taylor.fausak.me/2017/11/15/2017-state-of-haskell-survey-results/), and the [2018](https://taylor.fausak.me/2018/11/18/2018-state-of-haskell-survey-results/), [2019](https://taylor.fausak.me/2019/11/16/haskell-survey-results/), and [2020](https://taylor.fausak.me/2020/11/22/haskell-survey-results/) surveys include optional "What is your gender?" and "Do you identify as transgender?" questions, as well as the anonymous response data.
-
-I wrote a script to use these answers from the CSV response data for the 2018–2020 surveys to tally the number of cis and trans women among survey respondents. (In Python. Sorry.)
-
-```
-import csv
-
-survey_results_filenames = [
- "2018-11-18-2018-state-of-haskell-survey-results.csv",
- "2019-11-16-state-of-haskell-survey-results.csv",
- "2020-11-22-haskell-survey-results.csv",
-]
-
-if __name__ == "__main__":
- for results_filename in survey_results_filenames:
- year, _ = results_filename.split("-", 1)
- with open(results_filename) as results_file:
- reader = csv.DictReader(results_file)
- total = 0
- cis_f = 0
- trans_f = 0
- for row in reader:
- total += 1
- # 2018 and 2019 CSV header has the full question, but
- # 2020 uses sXqY format
- gender_answer = (
- row.get("What is your gender?") or row.get("s7q2")
- )
- if gender_answer == "Female":
- transwer = (
- row.get("Do you identify as transgender?") or
- row.get("s7q3")
- )
- if transwer == "No":
- cis_f += 1
- elif transwer == "Yes":
- trans_f += 1
- print(
- "{}: total: {}, "
- "cis-♀: {} ({:.2f}%), trans-♀: {} ({:.2f}%)".format(
- year, total,
- cis_f, 100*cis_f/total,
- trans_f, 100*trans_f/total,
- )
- )
-
-```
-
-It prints this tally:
-
-```
-2018: total: 1361, cis-♀: 26 (1.91%), trans-♀: 19 (1.40%)
-2019: total: 1211, cis-♀: 16 (1.32%), trans-♀: 16 (1.32%)
-2020: total: 1348, cis-♀: 12 (0.89%), trans-♀: 21 (1.56%)
-```
-
-[TODO: wrap up]