The 2018 state of Haskell survey opened at the start of November and closed a few days ago. It was the second annual state of Haskell survey. This year the survey was co-sponsored by Haskell Weekly and Haskell.org.

Last year the 2017 state of Haskell survey received 1,335 responses. This year we received almost four times as many. However a large number of the responses appeared to be submitted by a script. Of the 5,096 responses, 3,735 were identified as problematic and removed from the result set. That left 1,361 legitimate responses, which compares favorably to last year, especially when you consider that this year’s survey was much longer. To everyone that participated in the survey: Thank you! You feedback is hugely valuable.

I am extremely disappointed that someone decided to submit thousands of bogus survey responses. Apparently they wanted to tip the scales on a few divisive issues in the community. Fortunately their attack was not very sophisticated, so it was easy to identify and ignore their responses. (This function shows you exactly how the problematic responses were identified.) Even so, it has two profoundly negative impacts: One, it casts doubt on the survey responses as a whole; and two, it means that I’ll have to devote time to countering attacks like this in future surveys. That being said, I have confidence in the filtered survey results and I hope you do too.

This post will graph the answers to the multiple-choice questions. I will not attempt to summarize the answers to free-response questions. I encourage any interested parties to download the raw results, do their own analysis, and share their results. You can download the anonymized responses as a CSV, which is licensed under the ODbL 1.0 license.

Answer Count Percent 2018-11-01 513 37.7% 2018-11-02 310 22.8% 2018-11-03 118 8.7% 2018-11-04 75 5.5% 2018-11-05 63 4.6% 2018-11-06 56 4.1% 2018-11-07 32 2.4% 2018-11-08 44 3.2% 2018-11-09 22 1.6% 2018-11-10 12 0.9% 2018-11-11 16 1.2% 2018-11-12 28 2.1% 2018-11-13 35 2.6% 2018-11-14 37 2.7%

Answer Count Percent 1 heart 4 0.3% 2 hearts 1 0.1% 3 hearts 4 0.3% 4 hearts 4 0.3% 5 hearts 35 2.6% 6 hearts 16 1.2% 7 hearts 40 2.9% 8 hearts 84 6.2% 9 hearts 55 4.0% 10 hearts 501 36.8%

# Do you use Haskell? (single select) ^

Answer Count Percent Yes 1202 88.3% No, but I used to 103 7.6% No, I never have 45 3.3%

# If you stopped using Haskell, how long did you use it before you stopped? (single select) ^

Answer Count Percent Less than 1 day 6 0.4% 1 day to 1 week 11 0.8% 1 week to 1 month 20 1.5% 1 month to 1 year 66 4.8% More than 1 year 53 3.9%

# If you do not use Haskell, why not? (multiple select) ^

Answer Count Percent My company doesn't use Haskell 89 6.5% Haskell is too hard to learn 44 3.2% Haskell's documentation is not good enough 35 2.6% Haskell lacks critical tools 31 2.3% Haskell lacks critical libraries 30 2.2% Haskell does not support the platforms I need 12 0.9% Haskell's performance is not good enough 12 0.9% Haskell lacks critical features 8 0.6%

# How long have you been using Haskell? (single select) ^

Answer Count Percent Less than 1 day 3 0.2% 1 day to 1 week 7 0.5% 1 week to 1 month 35 2.6% 1 month to 1 year 219 16.1% 1 year to 2 years 234 17.2% 2 years to 3 years 213 15.7% 3 years to 4 years 147 10.8% 4 years to 5 years 112 8.2% More than 5 years 330 24.2%

# How frequently do you use Haskell? (single select) ^

Answer Count Percent Daily 490 36.0% Weekly 422 31.0% Monthly 249 18.3% Yearly 58 4.3% Rarely 80 5.9%

# How would you rate your proficiency in Haskell? (single select) ^

Answer Count Percent Beginner 247 18.1% Intermediate 533 39.2% Advanced 354 26.0% Expert 167 12.3% Master 28 2.1%

# Where do you use Haskell? (multiple select) ^

Answer Count Percent Home 1077 79.1% Work 666 48.9% School 153 11.2%

# Do you use Haskell at work? (single select) ^

Answer Count Percent Yes, most of the time 389 28.6% Yes, some of the time 318 23.4% No, but my company does 20 1.5% No 558 41.0%

# If you do not use Haskell at work, why not? (multiple select) ^

Answer Count Percent My company doesn't use Haskell 438 32.2% Haskell is too hard to learn 76 5.6% It is too hard to hire Haskell developers 72 5.3% Haskell lacks critical libraries 48 3.5% Haskell lacks critical tools 41 3.0% Haskell does not support the platforms I need 33 2.4% Haskell's documentation is not good enough 31 2.3% Haskell's performance is not good enough 12 0.9% Haskell lacks critical features 8 0.6%

# Which programming languages other than Haskell are you fluent in? (multiple select) ^

Answer Count Percent Python 659 48.4% JavaScript 599 44.0% Java 550 40.4% C 512 37.6% C++ 394 28.9% Shell 320 23.5% C# 203 14.9% Scala 198 14.5% Ruby 174 12.8% Rust 158 11.6% TypeScript 146 10.7% PHP 142 10.4% Go 110 8.1% Clojure 93 6.8% Assembly 90 6.6% Ocaml 87 6.4% Perl 83 6.1% R 65 4.8% Lua 64 4.7% F# 64 4.7% Erlang 63 4.6% Matlab 50 3.7% Objective-C 47 3.5% Swift 46 3.4% Kotlin 46 3.4% Groovy 21 1.5% VB.NET 20 1.5% VBA 15 1.1% Julia 9 0.7% Hack 5 0.4%

# Which types of software do you develop with Haskell? (multiple select) ^

Answer Count Percent Command-line programs (CLI) 684 50.3% API services (returning non-HTML) 532 39.1% Data processing 437 32.1% Libraries or frameworks 433 31.8% Web services (returning HTML) 371 27.3% Automation or scripts 358 26.3% Agents or daemons 219 16.1% Desktop programs (GUI) 108 7.9%

# Which industries do you use Haskell in? (multiple select) ^

Answer Count Percent Web 329 24.2% Banking or finance 185 13.6% Education 184 13.5% Commerce or retail 127 9.3% Gaming 59 4.3% Healthcare or medical 43 3.2% Government 35 2.6% Embedded 33 2.4% Mobile 32 2.4%

Answer Count Percent 1 heart 5 0.4% 2 hearts 0 0.0% 3 hearts 4 0.3% 4 hearts 13 1.0% 5 hearts 28 2.1% 6 hearts 40 2.9% 7 hearts 78 5.7% 8 hearts 115 8.4% 9 hearts 76 5.6% 10 hearts 356 26.2%

# How many Haskell projects do you contribute to? (single select) ^

Answer Count Percent 0 432 31.7% 1 168 12.3% 2 to 5 484 35.6% 6 to 10 94 6.9% 11 to 20 34 2.5% More than 20 32 2.4%

# What is the total size of all the Haskell projects you contribute to? (single select) ^

Answer Count Percent Less than 1,000 lines of code 207 15.2% 1,000 lines of code to 9,999 lines of code 311 22.9% 10,000 lines of code to 99,999 lines of code 252 18.5% 100,000 or more lines of code 115 8.4%

# Which platforms do you develop Haskell on? (multiple select) ^

Answer Count Percent Linux 1003 73.7% MacOS 496 36.4% Windows 209 15.4% BSD 44 3.2%

# Which platforms do you target? (multiple select) ^

Answer Count Percent Linux 1075 79.0% MacOS 399 29.3% Windows 314 23.1% BSD 80 5.9% Android 38 2.8% iOS 33 2.4%

Answer Count Percent 1 heart 4 0.3% 2 hearts 1 0.1% 3 hearts 3 0.2% 4 hearts 9 0.7% 5 hearts 25 1.8% 6 hearts 41 3.0% 7 hearts 50 3.7% 8 hearts 114 8.4% 9 hearts 80 5.9% 10 hearts 368 27.0%

# Which Haskell compilers do you use? (multiple select) ^

Answer Count Percent GHC 1296 95.2% GHCJS 131 9.6% Eta 37 2.7%

# Which installation methods do you use for your Haskell compiler? (multiple select) ^

Answer Count Percent Stack 916 67.3% Nix 299 22.0% Operating system package 277 20.4% Haskell Platform 153 11.2% Official binaries 149 10.9% Source 93 6.8% Minimal installer 35 2.6%

# Has upgrading your Haskell compiler broken your code in the last year? (single select) ^

Answer Count Percent No 736 54.1% Yes 437 32.1%

# How has upgrading your Haskell compiler broken your code in the past year? (multiple select) ^

Answer Count Percent Incompatible dependencies 247 18.1% Expected changes, such as the MonadFail proposal 225 16.5% New warnings 76 5.6% Compiler bugs 58 4.3% Unexpected changes 54 4.0%

# Which versions of GHC do you use? ^

Answer Count Percent HEAD 72 5.3% 8.6.x 329 24.2% 8.4.x 825 60.6% 8.2.x 318 23.4% 8.0.x 235 17.3% 7.10.x 78 5.7% 7.8.x 25 1.8% 7.6.x 7 0.5% 7.4.x 6 0.4% 7.2.x 2 0.1% 7.0.x 3 0.2%

# How do you feel about the new GHC release schedule? (single select) ^

Answer Count Percent I like it 533 39.2% I am indifferent 361 26.5% I dislike it 50 3.7% I was not aware of it 210 15.4%

# Which GHC language extensions would you like to be enabled by default? (multiple select) ^

Answer Count Percent OverloadedStrings 486 35.7% LambdaCase 327 24.0% DeriveGeneric 263 19.3% DeriveFunctor 260 19.1% BangPatterns 254 18.7% ScopedTypeVariables 254 18.7% GADTs 251 18.4% FlexibleInstances 223 16.4% FlexibleContexts 217 15.9% DeriveFoldable 192 14.1% RankNTypes 187 13.7% TupleSections 183 13.4% MultiParamTypeClasses 178 13.1% GeneralisedNewtypeDeriving 178 13.1% DeriveTraversable 171 12.6% DataKinds 144 10.6% TypeApplications 138 10.1% TypeOperators 136 10.0% KindSignatures 135 9.9% TypeFamilies 127 9.3% ApplicativeDo 122 9.0% StandaloneDeriving 117 8.6% ConstraintKinds 116 8.5% DerivingVia 116 8.5% ViewPatterns 113 8.3% InstanceSigs 113 8.3% MultiWayIf 111 8.2% RecordWildCards 110 8.1% FunctionalDependencies 101 7.4% DeriveDataTypeable 100 7.3% EmptyCase 92 6.8% NamedFieldPuns 87 6.4% EmptyDataDecls 83 6.1% ExplicitForAll 83 6.1% DerivingStrategies 76 5.6% DeriveAnyClass 74 5.4% BinaryLiterals 74 5.4% DefaultSignatures 69 5.1% NumericUnderscores 67 4.9% PatternSynonyms 64 4.7% DuplicateRecordFields 62 4.6% ExistentialQuantification 57 4.2% OverloadedLists 55 4.0% PolyKinds 54 4.0% GADTSyntax 54 4.0% BlockArguments 53 3.9% NoImplicitPrelude 53 3.9% DeriveLift 47 3.5% PatternGuards 42 3.1% AutoDeriveTypeable 39 2.9% UnicodeSyntax 38 2.8% TypeSynonymInstances 37 2.7% PartialTypeSignatures 36 2.6% NoMonomorphismRestriction 34 2.5% TypeInType 33 2.4% TemplateHaskell 31 2.3% DisambiguateRecordFields 30 2.2% TypeFamilyDependencies 29 2.1% QuasiQuotes 28 2.1% RecordPuns 25 1.8% PackageImports 24 1.8% QuantifiedConstraints 22 1.6% AllowAmbiguousTypes 22 1.6% Arrows 21 1.5% EmptyDataDeriving 21 1.5% NamedWildCards 20 1.5% NegativeLiterals 19 1.4% ParallelListComp 19 1.4% DoAndIfThenElse 19 1.4% MonadComprehensions 18 1.3% OverloadedLabels 18 1.3% RecursiveDo 17 1.2% NumDecimals 17 1.2% NullaryTypeClasses 17 1.2% PatternSignatures 16 1.2% Rank2Types 16 1.2% ForeignFunctionInterface 15 1.1% UnboxedTuples 15 1.1% StarIsType 14 1.0% RoleAnnotations 14 1.0% MagicHash 13 1.0% LiberalTypeSynonyms 13 1.0% CPP 12 0.9% HexFloatLiterals 12 0.9% MonadFailDesugaring 11 0.8% StrictData 11 0.8% ExplicitNamespaces 11 0.8% UnboxedSums 11 0.8% UndecidableInstances 10 0.7% ImplicitParams 9 0.7% ConstrainedClassMethods 9 0.7% DoRec 9 0.7% OverlappingInstances 8 0.6% Strict 7 0.5% DatatypeContexts 6 0.4% CApiFFI 6 0.4% TransformListComp 5 0.4% TemplateHaskellQuotes 5 0.4% PolymorphicComponents 5 0.4% RelaxedPolyRec 5 0.4% ExtendedDefaultRules 4 0.3% PostfixOperators 4 0.3% NPlusKPatterns 4 0.3% ParallelArrays 3 0.2% ImpredicativeTypes 3 0.2% InterruptibleFFI 3 0.2% AlternativeLayoutRule 2 0.1% NoTraditionalRecordSyntax 2 0.1% RebindableSyntax 2 0.1% UnliftedFFITypes 2 0.1% UndecidableSuperClasses 2 0.1% RelaxedLayout 2 0.1% AlternativeLayoutRuleTransitional 1 0.1% MonoLocalBinds 1 0.1% JavaScriptFFI 1 0.1% GHCForeignImportPrim 1 0.1%

# How important do you feel it would be to have a new version of the Haskell standard? (single select) ^

Answer Count Percent Not at all important 68 5.0% Slightly important 135 9.9% Moderately important 370 27.2% Very important 302 22.2% Extremely important 148 10.9%

Answer Count Percent 1 heart 4 0.3% 2 hearts 8 0.6% 3 hearts 1 0.1% 4 hearts 17 1.2% 5 hearts 28 2.1% 6 hearts 35 2.6% 7 hearts 70 5.1% 8 hearts 97 7.1% 9 hearts 81 6.0% 10 hearts 321 23.6%

# Which build tools do you use for Haskell? (multiple select) ^

Answer Count Percent Stack 995 73.1% Cabal 654 48.1% Nix 311 22.9% Make 106 7.8% Shake 75 5.5% ghc-pkg 69 5.1% Bazel 24 1.8% Mafia 13 1.0%

# Which editors do you use for Haskell? (multiple select) ^

Answer Count Percent Emacs 523 38.4% Vi 471 34.6% Visual Studio Code 329 24.2% Atom 112 8.2% Sublime Text 83 6.1% IntelliJ IDEA 62 4.6% Notepad++ 19 1.4%

# Which version control systems do you use for Haskell? (multiple select) ^

Answer Count Percent Git 1236 90.8% Darcs 42 3.1% Mercurial 29 2.1% Subversion 11 0.8% Pijul 10 0.7% Fossil 8 0.6%

# Where do you get Haskell packages from? (multiple select) ^

Answer Count Percent Stackage 867 63.7% Hackage 831 61.1% Source 305 22.4% Nix 273 20.1%

# Which libraries do you use to test Haskell code? (multiple select) ^

Answer Count Percent QuickCheck 696 51.1% Hspec 537 39.5% HUnit 333 24.5% Tasty 323 23.7% Hedgehog 162 11.9% SmallCheck 58 4.3% Haskell Test Framework 53 3.9% LeanCheck 4 0.3%

# Which libraries do you use to benchmark Haskell code? (multiple select) ^

Answer Count Percent Criterion 446 32.8% Bench 54 4.0% Gauge 34 2.5%

Answer Count Percent 1 heart 6 0.4% 2 hearts 5 0.4% 3 hearts 4 0.3% 4 hearts 7 0.5% 5 hearts 26 1.9% 6 hearts 33 2.4% 7 hearts 69 5.1% 8 hearts 107 7.9% 9 hearts 62 4.6% 10 hearts 309 22.7%

# Which tools do you use to deploy Haskell applications? (multiple select) ^

Answer Count Percent Static binaries 510 37.5% Docker images 402 29.5% Dynamic binaries 189 13.9% Nix expressions 183 13.4%

# Where do you deploy Haskell applications? (multiple select) ^

Answer Count Percent Self or company owned servers 504 37.0% Amazon Web Services (AWS) 328 24.1% Google Cloud 81 6.0% Digital Ocean 81 6.0% Heroku 53 3.9% Microsoft Azure 15 1.1%

Answer Count Percent 1 heart 2 0.1% 2 hearts 3 0.2% 3 hearts 5 0.4% 4 hearts 8 0.6% 5 hearts 22 1.6% 6 hearts 30 2.2% 7 hearts 52 3.8% 8 hearts 93 6.8% 9 hearts 68 5.0% 10 hearts 327 24.0%

# Where do you interact with the Haskell community? (multiple select) ^

Answer Count Percent Reddit 699 51.4% GitHub 590 43.4% Twitter 392 28.8% IRC 348 25.6% Stack Overflow 266 19.5% Meetups 250 18.4% Mailing lists 248 18.2% Slack 225 16.5% Conferences (commercial) 206 15.1% Conferences (academic) 157 11.5% Discord 110 8.1% Gitter 65 4.8% Lobsters 65 4.8% Telegram 42 3.1% Mastodon 27 2.0% Matrix/Riot 13 1.0%

# Which of the following Haskell topics would you like to see more written about? (multiple select) ^

Answer Count Percent Best practices 563 41.4% Design patterns 375 27.6% Application architectures 375 27.6% Performance analysis 312 22.9% Library walkthroughs 296 21.7% Tooling choices 271 19.9% Debugging how-tos 245 18.0% Production infrastructure 233 17.1% Case studies 213 15.7% Web development 189 13.9% Algorithm implementations 174 12.8% GUIs 163 12.0% Beginner fundamentals 156 11.5% Machine learning 156 11.5% Project setup 134 9.8% Project maintenance 125 9.2% Game development 123 9.0% Mobile development 93 6.8% Comparisons to other languages 60 4.4%

Answer Count Percent 1 heart 3 0.2% 2 hearts 1 0.1% 3 hearts 5 0.4% 4 hearts 9 0.7% 5 hearts 17 1.2% 6 hearts 36 2.6% 7 hearts 58 4.3% 8 hearts 96 7.1% 9 hearts 74 5.4% 10 hearts 342 25.1%

# I feel welcome in the Haskell community. ^

Answer Count Percent Strongly disagree 11 0.8% Disagree 42 3.1% Neutral 226 16.6% Agree 502 36.9% Strongly agree 449 33.0%

# I am satisfied with Haskell as a language. ^

Answer Count Percent Strongly disagree 9 0.7% Disagree 43 3.2% Neutral 109 8.0% Agree 587 43.1% Strongly agree 516 37.9%

# I am satisfied with Haskell's compilers, such as GHC. ^

Answer Count Percent Strongly disagree 5 0.4% Disagree 36 2.6% Neutral 96 7.1% Agree 626 46.0% Strongly agree 471 34.6%

# I am satisfied with Haskell's build tools, such as Cabal. ^

Answer Count Percent Strongly disagree 34 2.5% Disagree 144 10.6% Neutral 323 23.7% Agree 539 39.6% Strongly agree 162 11.9%

# I am satisfied with Haskell's package repositories, such as Hackage. ^

Answer Count Percent Strongly disagree 9 0.7% Disagree 67 4.9% Neutral 204 15.0% Agree 653 48.0% Strongly agree 256 18.8%

# I can find Haskell libraries for the things that I need. ^

Answer Count Percent Strongly disagree 12 0.9% Disagree 92 6.8% Neutral 256 18.8% Agree 687 50.5% Strongly agree 159 11.7%

# I think Haskell libraries are high quality. ^

Answer Count Percent Strongly disagree 5 0.4% Disagree 49 3.6% Neutral 300 22.0% Agree 588 43.2% Strongly agree 241 17.7%

# I have a good understanding of Haskell best practices. ^

Answer Count Percent Strongly disagree 53 3.9% Disagree 269 19.8% Neutral 376 27.6% Agree 419 30.8% Strongly agree 106 7.8%

# I think Haskell libraries are well documented. ^

Answer Count Percent Strongly disagree 127 9.3% Disagree 353 25.9% Neutral 421 30.9% Agree 265 19.5% Strongly agree 39 2.9%

# I can easily compare competing Haskell libraries to select the best one. ^

Answer Count Percent Strongly disagree 131 9.6% Disagree 441 32.4% Neutral 368 27.0% Agree 217 15.9% Strongly agree 34 2.5%

# I think that Haskell libraries are easy to use. ^

Answer Count Percent Strongly disagree 43 3.2% Disagree 217 15.9% Neutral 546 40.1% Agree 340 25.0% Strongly agree 45 3.3%

# I think that Haskell libraries provide a stable API. ^

Answer Count Percent Strongly disagree 11 0.8% Disagree 93 6.8% Neutral 405 29.8% Agree 556 40.9% Strongly agree 82 6.0%

# I think that Haskell libraries work well together. ^

Answer Count Percent Strongly disagree 18 1.3% Disagree 105 7.7% Neutral 396 29.1% Agree 522 38.4% Strongly agree 117 8.6%

# I think that software written in Haskell is easy to maintain. ^

Answer Count Percent Strongly disagree 7 0.5% Disagree 31 2.3% Neutral 132 9.7% Agree 485 35.6% Strongly agree 523 38.4%

# Once my Haskell program compiles, it generally does what I intended. ^

Answer Count Percent Strongly disagree 7 0.5% Disagree 57 4.2% Neutral 123 9.0% Agree 649 47.7% Strongly agree 384 28.2%

# I think that Haskell libraries perform well. ^

Answer Count Percent Strongly disagree 5 0.4% Disagree 47 3.5% Neutral 320 23.5% Agree 638 46.9% Strongly agree 142 10.4%

# Haskell's performance meets my needs. ^

Answer Count Percent Strongly disagree 14 1.0% Disagree 60 4.4% Neutral 159 11.7% Agree 585 43.0% Strongly agree 367 27.0%

# I can easily reason about the performance of my Haskell code. ^

Answer Count Percent Strongly disagree 114 8.4% Disagree 374 27.5% Neutral 418 30.7% Agree 240 17.6% Strongly agree 39 2.9%

# I would recommend using Haskell to others. ^

Answer Count Percent Strongly disagree 5 0.4% Disagree 32 2.4% Neutral 95 7.0% Agree 412 30.3% Strongly agree 682 50.1%

# I would prefer to use Haskell for my next new project. ^

Answer Count Percent Strongly disagree 15 1.1% Disagree 42 3.1% Neutral 88 6.5% Agree 315 23.1% Strongly agree 765 56.2%

# Haskell is working well for my team. ^

Answer Count Percent Strongly disagree 26 1.9% Disagree 47 3.5% Neutral 261 19.2% Agree 222 16.3% Strongly agree 276 20.3%

# Haskell is critical to my company's success. ^

Answer Count Percent Strongly disagree 132 9.7% Disagree 113 8.3% Neutral 245 18.0% Agree 153 11.2% Strongly agree 186 13.7%

# As a candidate, I can easily find Haskell jobs. ^

Answer Count Percent Strongly disagree 219 16.1% Disagree 305 22.4% Neutral 283 20.8% Agree 103 7.6% Strongly agree 45 3.3%

# As a hiring manager, I can easily find qualified Haskell candidates. ^

Answer Count Percent Strongly disagree 69 5.1% Disagree 113 8.3% Neutral 274 20.1% Agree 70 5.1% Strongly agree 33 2.4%

Answer Count Percent 1 heart 8 0.6% 2 hearts 0 0.0% 3 hearts 5 0.4% 4 hearts 6 0.4% 5 hearts 22 1.6% 6 hearts 29 2.1% 7 hearts 54 4.0% 8 hearts 94 6.9% 9 hearts 74 5.4% 10 hearts 310 22.8%

# Which country do you live in? (single select) ^

Answer Count Percent United States 364 26.7% United Kingdom 107 7.9% Germany 107 7.9% Australia 70 5.1% France 55 4.0% Russia 49 3.6% Canada 44 3.2% Sweden 36 2.6% Netherlands 34 2.5% India 24 1.8% Japan 21 1.5% Italy 20 1.5% Poland 20 1.5% Finland 19 1.4% Switzerland 19 1.4% Austria 17 1.2% Norway 16 1.2% Czechia 15 1.1% Denmark 14 1.0% Belgium 13 1.0% Spain 13 1.0% New Zealand 11 0.8% Brazil 10 0.7% China 9 0.7% Ireland 8 0.6% Israel 8 0.6% Ukraine 8 0.6% Portugal 7 0.5% Croatia 6 0.4% Belarus 5 0.4% Romania 5 0.4% Argentina 4 0.3% Bulgaria 4 0.3% Greece 4 0.3% Indonesia 4 0.3% Latvia 4 0.3% South Africa 4 0.3% Turkey 4 0.3% Ecuador 3 0.2% Estonia 3 0.2% Hungary 3 0.2% Kenya 3 0.2% Singapore 3 0.2% Mexico 2 0.1% Thailand 2 0.1% Algeria 1 0.1% Armenia 1 0.1% Azerbaijan 1 0.1% Bolivia 1 0.1% Cameroon 1 0.1% Chile 1 0.1% Colombia 1 0.1% Egypt 1 0.1% Guatemala 1 0.1% Iceland 1 0.1% Iran 1 0.1% Kazakhstan 1 0.1% Lebanon 1 0.1% Malta 1 0.1% Nepal 1 0.1% Nigeria 1 0.1% Pakistan 1 0.1% Paraguay 1 0.1% Peru 1 0.1% Philippines 1 0.1% Serbia 1 0.1% Slovakia 1 0.1% Slovenia 1 0.1% South Korea 1 0.1% Syria 1 0.1% Uganda 1 0.1% Vietnam 1 0.1%

# How old are you? (single select) ^

Answer Count Percent Under 18 years old 13 1.0% 18 to 24 years old 200 14.7% 25 to 34 years old 608 44.7% 35 to 44 years old 283 20.8% 45 to 54 years old 80 5.9% 55 to 64 years old 26 1.9% 65 years or older 8 0.6%

# What is your gender? (single select) ^

Answer Count Percent Male 1119 82.2% Female 49 3.6% Non-binary 29 2.1%

# Do you identify as transgender? (single select) ^

Answer Count Percent No 1079 79.3% Yes 35 2.6%

# Are you a student? (single select) ^

Answer Count Percent No 987 72.5% Yes, full time 158 11.6% Yes, part time 68 5.0%

# What is the highest level of education you have completed? (single select) ^

Answer Count Percent Less than high school diploma 22 1.6% High school diploma 101 7.4% Some college 131 9.6% Associate degree 24 1.8% Bachelor's degree 432 31.7% Master's degree 338 24.8% Professional degree 23 1.7% Doctoral degree 145 10.7%

# What is your employment status? (single select) ^

Answer Count Percent Employed full time 876 64.4% Self employed 124 9.1% Employed part time 89 6.5% Not employed, but looking for work 67 4.9% Not employed, and not looking for work 52 3.8% Retired 4 0.3%

# How large is the company you work for? (single select) ^

Answer Count Percent Fewer than 10 employees 205 15.1% 10 to 99 employees 363 26.7% 100 to 999 employees 225 16.5% 1,000 or more employees 276 20.3%

# How many years have you been coding? (single select) ^

Answer Count Percent 0 to 4 years 95 7.0% 5 to 9 years 315 23.1% 10 to 14 years 313 23.0% 15 to 19 years 208 15.3% 20 to 24 years 133 9.8% 25 to 29 years 69 5.1% 30 or more years 94 6.9%

# How many years have you been coding professionally? (single select) ^

Answer Count Percent 0 to 4 years 397 29.2% 5 to 9 years 353 25.9% 10 to 19 years 305 22.4% 20 to 29 years 102 7.5% 30 or more years 26 1.9%

# Do you code as a hobby? (single select) ^

Answer Count Percent Yes 1183 86.9% No 59 4.3%

# Have you contributed to any open source projects? (single select) ^

Answer Count Percent Yes 1031 75.8% No 206 15.1%

Answer Count Percent 1 heart 5 0.4% 2 hearts 3 0.2% 3 hearts 3 0.2% 4 hearts 5 0.4% 5 hearts 27 2.0% 6 hearts 26 1.9% 7 hearts 45 3.3% 8 hearts 95 7.0% 9 hearts 67 4.9% 10 hearts 321 23.6%

# Did you take last year's survey? (single select) ^

Answer Count Percent No 616 45.3% Yes 322 23.7% I don't remember 294 21.6%

# How did you hear about this survey? (single select) ^