Skip to content

Latest commit

 

History

History
10712 lines (10621 loc) · 195 KB

2020-11-22-haskell-survey-results.markdown

File metadata and controls

10712 lines (10621 loc) · 195 KB
title
2020 State of Haskell Survey results

The fourth annual State of Haskell Survey closed last week. This post will graph the responses, analyze them, and compare them to previous years. You may be interested in similar posts from [2019][], [2018][], and [2017][].

The number of survey responses has stayed remarkably consistent through the years. This year I received 1,348 responses. Last year it was 1,211. In 2018: 1,361. And the first year got 1,335. To everyone who filled out the survey: Thank you!

Unfortunately this year there was a [bug][] in the code that processed submissions. For questions that allowed multiple answers, only one of the answer choices was recorded. For example if you selected both GHC and GHCJS as compilers that you use, only one of them would be present in your submission. Once I noticed the bug I quickly fixed it, but anything submitted within the first 24 hours was affected by this bug. In order to avoid confusion, I have separated the results from these potentially wrong submissions. I deeply regret the bug and will make sure that it doesn't happen next year.

You can download the responses as a [JSON][] or [CSV][] file. Both are licensed under the [ODbL][].

[2019]: {% post_url 2019-11-16-haskell-survey-results %} [2018]: {% post_url 2018-11-18-2018-state-of-haskell-survey-results %} [2017]: {% post_url 2017-11-15-2017-state-of-haskell-survey-results %} [bug]: https://github.com/haskellweekly/haskellweekly/commit/3ca54320d236e74662599ddd4a9d200cd19001ec [JSON]: /static/pages/2020-11-22-haskell-survey-results.json.zip [CSV]: /static/pages/2020-11-22-haskell-survey-results.csv.zip [ODbL]: https://opendatacommons.org/licenses/odbl/

<style> .row { position: relative; } .bar { height: 100%; left: 0; max-width: 100%; position: absolute; top: 0; } .b1 { background-color: #9e9ac8; } .b2 { background-color: #cbc9e2; } .b3 { background-color: #67a9cf; } .b4 { background-color: #ef8a62; } .percent, .count, .choice { display: inline-block; position: relative; } .percent, .count { text-align: right; width: 3em; } .choice { padding-left: 1em; } </style>
  1. Haskell usage
    1. What is your email address?
    2. Do you use Haskell?
    3. If you stopped using Haskell, how long did you use it before you stopped?
    4. If you do not use Haskell, why not?
    5. How long have you been using Haskell?
    6. How frequently do you use Haskell?
    7. How would you rate your proficiency in Haskell?
    8. Where do you use Haskell?
    9. Do you use Haskell at work?
    10. If you do not use Haskell at work, why not?
    11. Which programming languages other than Haskell are you fluent in?
    12. Which types of software do you develop with Haskell?
    13. Which industries do you use Haskell in?
  2. Projects
    1. How many Haskell projects do you contribute to?
    2. What is the total size of all the Haskell projects you contribute to?
    3. Which platforms do you develop Haskell on?
    4. Which platforms do you target?
  3. Compilers
    1. Which Haskell compilers do you use?
    2. Which installation methods do you use for your Haskell compiler?
    3. Has upgrading your Haskell compiler broken your code in the last year?
    4. How has upgrading your Haskell compiler broken your code in the last year?
    5. Which versions of GHC do you use?
    6. Which language extensions would you like to be enabled by default?
    7. How important do you feel it would be to have a new version of the Haskell language standard?
  4. Tooling
    1. Which build tools do you use for Haskell?
    2. Which editors do you use for Haskell?
    3. Which version control systems do you use for Haskell?
    4. Where do you get Haskell packages from?
    5. Which tools do you use to test Haskell code?
    6. Which tools do you use to benchmark Haskell code?
  5. Infrastructure
    1. Which tools do you use to deploy Haskell applications?
    2. Where do you deploy Haskell applications?
  6. Community
    1. Where do you interact with the Haskell community?
    2. Which of the following Haskell topics would you like to see more written about?
  7. Feelings
    1. I feel welcome in the Haskell community.
    2. I am satisfied with Haskell as a language.
    3. I am satisfied with Haskell's compilers, such as GHC.
    4. I am satisfied with Haskell's build tools, such as Cabal.
    5. I am satisfied with Haskell's package repositories, such as Hackage.
    6. I can find Haskell libraries for the things that I need.
    7. I think Haskell libraries are high quality.
    8. I have a good understanding of Haskell best practices.
    9. I think Haskell libraries are well documented.
    10. I can easily compare competing Haskell libraries to select the best one.
    11. I think that Haskell libraries are easy to use.
    12. I think that Haskell libraries provide a stable API.
    13. I think that Haskell libraries work well together.
    14. I think that software written in Haskell is easy to maintain.
    15. Once my Haskell program compiles, it generally does what I intended.
    16. I think that Haskell libraries perform well.
    17. Haskell's performance meets my needs.
    18. I can easily reason about the performance of my Haskell code.
    19. I would recommend using Haskell to others.
    20. I would prefer to use Haskell for my next new project.
    21. Haskell is working well for my team.
    22. Haskell is critical to my company's success.
    23. As a candidate, I can easily find Haskell jobs.
    24. As a hiring manager, I can easily find qualified Haskell candidates.
  8. Demographics
    1. Which country do you live in?
    2. How old are you?
    3. What is your gender?
    4. Do you identify as transgender?
    5. Are you a student?
    6. What is the highest level of education you have completed?
    7. What is your employment status?
    8. How large is the company you work for?
    9. How many years have you been coding?
    10. How many years have you been coding professionally?
    11. Do you code as a hobby?
    12. Have you contributed to any open source projects?
  9. Meta
    1. Did you take any previous surveys?
    2. How did you hear about this survey?
  10. Free response
    1. If you wanted to convince someone to use Haskell, what would you say?
    2. If you could change one thing about Haskell, what would it be?

Haskell usage

What is your email address?

Providing an email address was optional this year.

47%
639
Provided
53%
709
Not provided

Do you use Haskell?

Optional. Single select.

87%
1155
Yes
11%
152
No, but I used to
2%
26
No, I never have

If you stopped using Haskell, how long did you use it before you stopped?

Optional. Single select.

1%
6
Less than 1 day
1%
14
1 day to 1 week
3%
29
1 week to 1 month
6%
64
1 month to 1 year
8%
88
More than 1 year
81%
866
n/a

If you do not use Haskell, why not?

Optional. Multi select. Allowed 'other'.

5%
+0%
12
+0
Haskell does not support the platforms I need
8%
+5%
20
+12
Haskell is too hard to learn
3%
+0%
7
+0
Haskell lacks critical features
8%
+1%
20
+3
Haskell lacks critical libraries
8%
+2%
21
+5
Haskell lacks critical tools
9%
+5%
22
+13
Haskell's documentation is not good enough
2%
+4%
5
+9
Haskell's performance is not good enough
25%
+28%
62
+71
My company doesn't use Haskell
9%
+13%
23
+33
Other

How long have you been using Haskell?

Optional. Single select.

0%
4
Less than 1 day
1%
12
1 day to 1 week
2%
29
1 week to 1 month
13%
169
1 month to 1 year
14%
183
1 year to 2 years
12%
155
2 years to 3 years
12%
152
3 years to 4 years
10%
125
4 years to 5 years
7%
85
5 years to 6 years
5%
64
6 years to 7 years
4%
55
7 years to 8 years
4%
46
8 years to 9 years
4%
52
9 years to 10 years
9%
114
10 years to 15 years
3%
41
15 years to 20 years
1%
16
More than 20 years

How frequently do you use Haskell?

Optional. Single select.

39%
508
Daily
29%
383
Weekly
18%
231
Monthly
5%
61
Yearly
9%
117
Rarely

How would you rate your proficiency in Haskell?

Optional. Single select.

14%
184
Beginner
41%
538
Intermediate
31%
410
Advanced
12%
155
Expert
3%
38
Master

Where do you use Haskell?

Optional. Multi select. Did not allow 'other'.

8%
+2%
105
+22
Academia
36%
+25%
473
+335
Home
21%
+24%
273
+322
Industry
3%
+5%
39
+64
School

Do you use Haskell at work?

Optional. Single select.

29%
372
Yes, most of the time
22%
274
Yes, some of the time
2%
21
No, but my company does
42%
536
No, but I'd like to
5%
66
No, and I don't want to

If you do not use Haskell at work, why not?

Optional. Multi select. Allowed 'other'.

2%
+0%
13
+0
Haskell does not support the platforms I need
7%
+1%
43
+7
Haskell is too hard to learn
2%
+0%
12
+2
Haskell lacks critical features
7%
+1%
45
+9
Haskell lacks critical libraries
6%
+1%
36
+6
Haskell lacks critical tools
4%
+1%
27
+7
Haskell's documentation is not good enough
3%
+1%
17
+8
Haskell's performance is not good enough
8%
+3%
49
+20
It's too hard to hire Haskell developers
31%
+38%
193
+233
My company doesn't use Haskell
6%
+9%
35
+56
Other

Which programming languages other than Haskell are you fluent in?

Optional. Multi select. Allowed 'other'.

3%
+0%
37
+0
Assembly
18%
+0%
235
+5
C
8%
+0%
108
+3
C#
13%
+0%
168
+6
C++
4%
+0%
47
+0
Clojure
9%
+0%
114
+2
Elm
2%
+0%
27
+1
Erlang
3%
+0%
39
+2
F#
5%
+0%
69
+2
Go
1%
+0%
9
+0
Groovy
0%
+0%
1
+0
Hack
19%
+1%
244
+10
Java
21%
+1%
265
+14
JavaScript
1%
+0%
14
+0
Julia
3%
+0%
33
+0
Kotlin
2%
+0%
24
+2
Lua
2%
+0%
27
+1
Matlab
1%
+0%
18
+0
Objective-C
4%
+0%
52
+3
Ocaml
3%
+0%
42
+0
Perl
5%
+1%
58
+7
PHP
5%
+0%
66
+6
PureScript
24%
+9%
303
+118
Python
3%
+1%
38
+9
R
6%
+2%
76
+21
Ruby
9%
+5%
110
+66
Rust
7%
+4%
84
+46
Scala
12%
+10%
155
+127
Shell
2%
+1%
21
+18
Swift
9%
+12%
120
+150
TypeScript
0%
+1%
5
+9
VBA
0%
+1%
5
+11
VB.NET
5%
+7%
62
+87
Other

Which types of software do you develop with Haskell?

Optional. Multi select. Allowed 'other'.

9%
+0%
115
+0
Agents or daemons
23%
+2%
279
+28
API services (returning non-HTML)
14%
+1%
166
+11
Automation or scripts
29%
+9%
351
+115
Command-line programs (CLI)
17%
+6%
206
+75
Data processing
4%
+1%
53
+18
Desktop programs (GUI)
15%
+14%
180
+166
Libraries or frameworks
13%
+17%
153
+207
Web services (returning HTML)
4%
+5%
47
+61
Other

Which industries do you use Haskell in?

Optional. Multi select. Allowed 'other'.

10%
+5%
94
+49
Academia
7%
+4%
65
+40
Banking or finance
5%
+3%
51
+28
Commerce or retail
4%
+3%
34
+25
Cryptocurrency
6%
+4%
56
+38
Education
2%
+1%
17
+8
Embedded
3%
+2%
25
+23
Gaming
2%
+1%
21
+5
Government
3%
+1%
28
+12
Healthcare or medical
2%
+0%
15
+4
Mobile
7%
+5%
61
+45
Science
16%
+16%
146
+152
Web
7%
+10%
61
+90
Other

Projects

How many Haskell projects do you contribute to?

Optional. Single select.

35%
421
0
17%
201
1
14%
172
2
11%
130
3
5%
55
4
3%
36
5
9%
112
6 to 10
2%
30
11 to 20
4%
48
More than 20

What is the total size of all the Haskell projects you contribute to?

Optional. Single select.

23%
211
Less than 1,000 lines of code
31%
292
Between 1,000 and 9,999 lines of code
29%
270
Between 10,000 and 99,999 lines of code
17%
154
More than 100,000 lines of code

Which platforms do you develop Haskell on?

Optional. Multi select. Allowed 'other'.

1%
+0%
15
+0
BSD
33%
+29%
430
+371
Linux
16%
+19%
212
+240
MacOS
7%
+9%
88
+110
Windows
1%
+1%
8
+8
Other

Which platforms do you target?

Optional. Multi select. Allowed 'other'.

1%
+0%
15
+0
Android
2%
+0%
23
+1
BSD
1%
+0%
13
+1
iOS
40%
+28%
489
+347
Linux
16%
+11%
200
+132
MacOS
12%
+17%
148
+206
Windows
1%
+1%
14
+13
Other

Compilers

Which Haskell compilers do you use?

Optional. Multi select. Allowed 'other'.

43%
+51%
562
+654
GHC
3%
+5%
39
+66
GHCJS
1%
+1%
9
+12
Other

Which installation methods do you use for your Haskell compiler?

Optional. Multi select. Allowed 'other'.

3%
+0%
39
+4
Source
3%
+1%
43
+19
Official binaries
0%
+0%
5
+3
Minimal installer
4%
+1%
51
+18
Haskell Platform
6%
+5%
83
+58
Operating system package
28%
+21%
366
+268
Stack
15%
+14%
189
+180
Nix
9%
+12%
111
+158
ghcup
1%
+1%
12
+16
Other

Has upgrading your Haskell compiler broken your code in the last year?

Optional. Single select.

29%
345
Yes
71%
852
No

How has upgrading your Haskell compiler broken your code in the last year?

Optional. Multi select. Allowed 'other'.

6%
+2%
21
+8
Compiler bugs
21%
+13%
80
+50
Expected changes, such as the MonadFail proposal
26%
+19%
96
+71
Incompatible dependencies
9%
+11%
34
+41
New warnings
4%
+6%
15
+24
Unexpected changes
3%
+3%
11
+11
Other

Which versions of GHC do you use?

Optional. Multi select. Allowed 'other'.

10%
+5%
120
+63
> 8.10
19%
+8%
215
+97
8.10.x
26%
+17%
300
+203
8.8.x
17%
+18%
202
+206
8.6.x
5%
+4%
56
+45
8.4.x
2%
+1%
19
+16
8.2.x
1%
+1%
16
+7
8.0.x
1%
+2%
14
+18
< 8.0
0%
+0%
0
+0
Other

Which language extensions would you like to be enabled by default?

Optional. Multi select. Did not allow 'other'.

+62%
-4%
+616
-39
LambdaCase
+61%
-7%
+600
-69
OverloadedStrings
+52%
-4%
+517
-35
DeriveGeneric
+49%
-4%
+481
-38
DeriveFunctor
+47%
-4%
+469
-43
BangPatterns
+46%
-6%
+453
-58
GADTs
+45%
-4%
+446
-36
ScopedTypeVariables
+43%
-4%
+427
-39
DeriveFoldable
+41%
-4%
+406
-42
DerivingVia
+40%
-5%
+397
-51
FlexibleInstances
+40%
-4%
+396
-43
TypeApplications
+40%
-5%
+394
-53
FlexibleContexts
+39%
-4%
+385
-39
DeriveTraversable
+38%
-4%
+379
-43
RankNTypes
+38%
-4%
+373
-44
GeneralizedNewtypeDeriving
+37%
-4%
+365
-41
DerivingStrategies
+37%
-4%
+363
-41
MultiParamTypeClasses
+37%
-4%
+362
-44
TupleSections
+35%
-7%
+346
-71
DataKinds
+33%
-4%
+325
-40
KindSignatures
+32%
-6%
+320
-57
TypeFamilies
+30%
-4%
+298
-37
StandaloneDeriving
+30%
-6%
+293
-58
MultiWayIf
+29%
-5%
+285
-46
DeriveDataTypeable
+28%
-5%
+278
-53
ConstraintKinds
+28%
-5%
+276
-47
TypeOperators
+28%
-6%
+273
-60
ViewPatterns
+26%
-4%
+257
-41
InstanceSigs
+26%
-5%
+252
-47
DeriveLift
+25%
-4%
+244
-37
NumericUnderscores
+24%
-6%
+242
-57
NamedFieldPuns
+24%
-5%
+240
-49
EmptyCase
+24%
-6%
+240
-57
GADTSyntax
+24%
-6%
+239
-64
ExplicitForAll
+23%
-5%
+228
-52
BinaryLiterals
+23%
-6%
+226
-62
FunctionalDependencies
+23%
-10%
+223
-97
DeriveAnyClass
+22%
-9%
+213
-84
RecordWildCards
+21%
-6%
+211
-55
DefaultSignatures
+21%
-6%
+203
-61
ExistentialQuantification
+20%
-5%
+194
-47
PatternSynonyms
+19%
-13%
+191
-124
ApplicativeDo
+16%
-10%
+159
-100
BlockArguments
+16%
-6%
+155
-63
PolyKinds
+16%
-10%
+154
-97
DuplicateRecordFields
+15%
-7%
+153
-72
Rank2Types
+14%
-12%
+141
-114
OverloadedLists
+12%
-6%
+117
-61
HexFloatLiterals
+12%
-7%
+116
-69
TypeFamilyDependencies
+11%
-3%
+110
-31
StandaloneKindSignatures
+11%
-9%
+105
-93
OverloadedLabels
+10%
-7%
+103
-67
NamedWildCards
+10%
-13%
+101
-129
NoImplicitPrelude
+10%
-7%
+98
-73
TypeSynonymInstances
+10%
-10%
+98
-97
UnicodeSyntax
+10%
-8%
+96
-81
PartialTypeSignatures
+10%
-7%
+94
-70
QuantifiedConstraints
+9%
-5%
+92
-53
NegativeLiterals
+9%
-9%
+84
-88
DisambiguateRecordFields
+8%
-10%
+82
-99
QuasiQuotes
+8%
-6%
+79
-59
RoleAnnotations
+8%
-8%
+79
-75
TypeInType
+8%
-8%
+78
-75
PackageImports
+8%
-14%
+78
-137
TemplateHaskell
+7%
-9%
+69
-93
RecursiveDo
+7%
-9%
+65
-86
NoStarIsType
+6%
-11%
+63
-105
MonadComprehensions
+6%
-7%
+62
-65
LiberalTypeSynonyms
+6%
-8%
+62
-83
UnboxedTuples
+6%
-4%
+60
-42
ImportQualifiedPost
+6%
-9%
+60
-84
UnboxedSums
+6%
-10%
+60
-96
MagicHash
+6%
-8%
+59
-77
NoMonomorphismRestriction
+6%
-6%
+56
-60
NumDecimals
+6%
-8%
+56
-77
ConstrainedClassMethods
+6%
-20%
+56
-195
AllowAmbiguousTypes
+6%
-16%
+55
-156
Arrows
+5%
-13%
+52
-133
StrictData
+5%
-7%
+50
-69
ExplicitNamespaces
+5%
-9%
+48
-84
ParallelListComp
+5%
-10%
+47
-99
ForeignFunctionInterface
+4%
-6%
+44
-64
NullaryTypeClasses
+4%
-8%
+35
-80
PostfixOperators
+4%
-15%
+35
-144
UndecidableInstances
+3%
-4%
+34
-41
UnliftedNewtypes
+3%
-19%
+30
-192
Cpp
+3%
-8%
+28
-78
MonoLocalBinds
+3%
-11%
+28
-113
CApiFFI
+3%
-12%
+28
-115
DatatypeContexts
+3%
-13%
+28
-125
TemplateHaskellQuotes
+3%
-15%
+28
-144
OverlappingInstances
+2%
-13%
+20
-129
ImpredicativeTypes
+2%
-15%
+19
-153
Strict
+2%
-15%
+18
-147
ImplicitParams
+2%
-9%
+16
-87
ExtendedDefaultRules
+2%
-13%
+16
-126
RebindableSyntax
+1%
-9%
+14
-90
InterruptibleFFI
+1%
-9%
+14
-92
NoMonadFailDesugaring
+1%
-9%
+13
-85
StaticPointers
+1%
-10%
+13
-95
TransformListComp
+1%
-13%
+13
-133
NPlusKPatterns
+1%
-14%
+8
-134
UndecidableSuperClasses
+1%
-9%
+7
-87
NoTraditionalRecordSyntax
+1%
-18%
+7
-176
IncoherentInstances
+1%
-11%
+5
-109
Trustworthy
+0%
-11%
+4
-107
NoEmptyDataDecls
+0%
-14%
+4
-139
Unsafe
+0%
-11%
+3
-108
NoPatternGuards

How important do you feel it would be to have a new version of the Haskell language standard?

Optional. Single select.

15%
179
Extremely important
25%
295
Very important
37%
441
Moderately important
14%
171
Slightly important
9%
107
Not at all important

Tooling

Which build tools do you use for Haskell?

Optional. Multi select. Allowed 'other'.

2%
+0%
20
+0
Bazel
24%
+7%
303
+83
Cabal
2%
+1%
25
+13
ghc-pkg
0%
+0%
0
+0
Mafia
4%
+2%
52
+20
Make
15%
+7%
195
+94
Nix
3%
+1%
41
+18
Shake
31%
+38%
397
+477
Stack
0%
+1%
6
+11
Other

Which editors do you use for Haskell?

Optional. Multi select. Allowed 'other'.

2%
+1%
21
+7
Atom
16%
+13%
210
+168
Emacs family
3%
+1%
40
+9
IntelliJ IDEA
0%
+0%
6
+3
Notepad++
1%
+1%
17
+9
Sublime Text
16%
+17%
208
+224
Vi family
19%
+22%
245
+284
Visual Studio Code
1%
+2%
17
+29
Other

Which version control systems do you use for Haskell?

Optional. Multi select. Allowed 'other'.

1%
+0%
13
+2
Darcs
43%
+55%
552
+703
Git
1%
+1%
7
+10
Mercurial
0%
+0%
6
+5
Pijul
0%
+0%
3
+2
Subversion
0%
+0%
2
+5
Other

Where do you get Haskell packages from?

Optional. Multi select. Allowed 'other'.

31%
+9%
389
+118
Hackage
14%
+6%
175
+80
Nix
11%
+6%
140
+69
Source
28%
+34%
346
+425
Stackage
1%
+1%
9
+11
Other

Which tools do you use to test Haskell code?

Optional. Multi select. Allowed 'other'.

2%
+0%
25
+3
Haskell Test Framework
9%
+1%
93
+8
Hedgehog
27%
+6%
276
+59
Hspec
16%
+3%
158
+33
HUnit
30%
+29%
301
+289
QuickCheck
4%
+1%
36
+9
SmallCheck
13%
+15%
134
+154
Tasty
0%
+2%
5
+17
Other

Which tools do you use to benchmark Haskell code?

Optional. Multi select. Allowed 'other'.

6%
+4%
28
+19
Bench
37%
+47%
181
+230
Criterion
4%
+7%
20
+33
Gauge
1%
+1%
6
+6
Other

Infrastructure

Which tools do you use to deploy Haskell applications?

Optional. Multi select. Allowed 'other'.

21%
+10%
203
+90
Docker images
8%
+6%
79
+54
Dynamic binaries
14%
+11%
132
+101
Nix expressions
24%
+28%
230
+263
Static binaries
1%
+1%
12
+14
Other

Where do you deploy Haskell applications?

Optional. Multi select. Allowed 'other'.

17%
+8%
147
+72
Amazon Web Services
4%
+3%
36
+25
Digital Ocean
4%
+3%
38
+26
Google Cloud
2%
+3%
15
+22
Heroku
2%
+1%
16
+5
Microsoft Azure
26%
+34%
224
+285
Self or company owned servers
3%
+5%
28
+41
Other

Community

Where do you interact with the Haskell community?

Optional. Multi select. Allowed 'other'.

8%
+0%
94
+0
Conferences (academic)
10%
+0%
122
+1
Conferences (commercial)
5%
+0%
64
+2
Discord
3%
+0%
33
+1
Discourse
25%
+1%
290
+11
GitHub
2%
+0%
18
+2
Gitter
10%
+1%
116
+16
IRC
1%
+1%
10
+11
Lobsters
9%
+1%
108
+15
Mailing lists
1%
+0%
16
+2
Mastodon
2%
+0%
22
+4
Matrix/Riot
8%
+1%
90
+12
Meetups
26%
+16%
302
+184
Reddit
9%
+5%
105
+56
Slack
11%
+7%
132
+85
Stack Overflow
4%
+2%
46
+22
Telegram
14%
+20%
161
+233
Twitter
2%
+2%
23
+19
Other

Which of the following Haskell topics would you like to see more written about?

Optional. Multi select. Allowed 'other'.

12%
+0%
141
+0
Algorithm implementations
22%
+0%
252
+2
Application architectures
9%
+0%
103
+3
Beginner fundamentals
29%
+1%
335
+6
Best practices
15%
+0%
167
+5
Case studies
5%
+0%
55
+4
Comparisons to other languages
14%
+0%
157
+4
Debugging how-tos
22%
+1%
253
+15
Design patterns
7%
+1%
82
+6
Game development
10%
+1%
116
+14
GUIs
17%
+3%
190
+31
Library walkthroughs
7%
+1%
81
+14
Machine learning
5%
+2%
62
+19
Mobile development
17%
+7%
190
+79
Performance analysis
15%
+4%
173
+49
Production infrastructure
13%
+4%
146
+40
Project maintenance
11%
+3%
130
+36
Project setup
18%
+12%
201
+135
Tooling choices
12%
+14%
137
+159
Web development
2%
+2%
20
+18
Other

Feelings

I feel welcome in the Haskell community.

Optional. Single select.

2%
23
Strongly disagree
3%
33
Disagree
21%
255
Neutral
42%
527
Agree
32%
403
Strongly agree

I am satisfied with Haskell as a language.

Optional. Single select.

1%
17
Strongly disagree
4%
56
Disagree
8%
106
Neutral
54%
688
Agree
32%
413
Strongly agree

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

Optional. Single select.

1%
13
Strongly disagree
4%
47
Disagree
11%
136
Neutral
52%
668
Agree
32%
412
Strongly agree

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

Optional. Single select.

5%
67
Strongly disagree
13%
170
Disagree
26%
325
Neutral
45%
569
Agree
10%
131
Strongly agree

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

Optional. Single select.

1%
15
Strongly disagree
8%
94
Disagree
20%
246
Neutral
53%
667
Agree
18%
227
Strongly agree

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

Optional. Single select.

1%
16
Strongly disagree
11%
141
Disagree
25%
317
Neutral
52%
656
Agree
10%
124
Strongly agree

I think Haskell libraries are high quality.

Optional. Single select.

1%
10
Strongly disagree
5%
68
Disagree
25%
316
Neutral
52%
653
Agree
17%
207
Strongly agree

I have a good understanding of Haskell best practices.

Optional. Single select.

4%
55
Strongly disagree
20%
246
Disagree
32%
400
Neutral
37%
462
Agree
7%
94
Strongly agree

I think Haskell libraries are well documented.

Optional. Single select.

10%
127
Strongly disagree
28%
351
Disagree
35%
444
Neutral
23%
293
Agree
3%
36
Strongly agree

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

Optional. Single select.

11%
140
Strongly disagree
36%
446
Disagree
31%
378
Neutral
19%
237
Agree
2%
29
Strongly agree

I think that Haskell libraries are easy to use.

Optional. Single select.

4%
48
Strongly disagree
17%
205
Disagree
47%
569
Neutral
29%
354
Agree
4%
44
Strongly agree

I think that Haskell libraries provide a stable API.

Optional. Single select.

2%
26
Strongly disagree
9%
105
Disagree
40%
469
Neutral
42%
502
Agree
7%
81
Strongly agree

I think that Haskell libraries work well together.

Optional. Single select.

2%
27
Strongly disagree
10%
120
Disagree
33%
394
Neutral
47%
554
Agree
8%
94
Strongly agree

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

Optional. Single select.

1%
13
Strongly disagree
2%
23
Disagree
14%
168
Neutral
45%
548
Agree
38%
462
Strongly agree

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

Optional. Single select.

0%
4
Strongly disagree
5%
60
Disagree
13%
167
Neutral
55%
686
Agree
26%
324
Strongly agree

I think that Haskell libraries perform well.

Optional. Single select.

0%
4
Strongly disagree
3%
38
Disagree
31%
360
Neutral
57%
662
Agree
9%
107
Strongly agree

Haskell's performance meets my needs.

Optional. Single select.

1%
11
Strongly disagree
3%
40
Disagree
14%
176
Neutral
54%
660
Agree
27%
331
Strongly agree

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

Optional. Single select.

12%
145
Strongly disagree
32%
388
Disagree
35%
424
Neutral
18%
212
Agree
3%
40
Strongly agree

I would recommend using Haskell to others.

Optional. Single select.

1%
9
Strongly disagree
3%
37
Disagree
10%
121
Neutral
38%
481
Agree
48%
602
Strongly agree

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

Optional. Single select.

1%
14
Strongly disagree
4%
48
Disagree
7%
93
Neutral
31%
386
Agree
57%
710
Strongly agree

Haskell is working well for my team.

Optional. Single select.

2%
17
Strongly disagree
4%
36
Disagree
34%
282
Neutral
30%
248
Agree
30%
248
Strongly agree

Haskell is critical to my company's success.

Optional. Single select.

15%
121
Strongly disagree
14%
107
Disagree
30%
238
Neutral
18%
140
Agree
23%
176
Strongly agree

As a candidate, I can easily find Haskell jobs.

Optional. Single select.

26%
250
Strongly disagree
30%
287
Disagree
30%
282
Neutral
11%
106
Agree
2%
21
Strongly agree

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

Optional. Single select.

11%
57
Strongly disagree
18%
88
Disagree
46%
227
Neutral
17%
87
Agree
8%
39
Strongly agree

Demographics

Which country do you live in?

Optional. Single select.

0%
0
Afghanistan
0%
0
Akrotiri
0%
1
Albania
0%
0
Algeria
0%
0
American Samoa
0%
1
Andorra
0%
0
Angola
0%
0
Anguilla
0%
0
Antarctica
0%
0
Antigua and Barbuda
1%
10
Argentina
0%
0
Armenia
0%
0
Aruba
0%
0
Ashmore and Cartier Islands
3%
39
Australia
1%
17
Austria
0%
1
Azerbaijan
0%
0
The Bahamas
0%
0
Bahrain
0%
0
Bangladesh
0%
0
Barbados
0%
0
Bassas da India
0%
4
Belarus
1%
14
Belgium
0%
0
Belize
0%
0
Benin
0%
0
Bermuda
0%
0
Bhutan
0%
1
Bolivia
0%
0
Bosnia and Herzegovina
0%
0
Botswana
0%
0
Bouvet Island
2%
21
Brazil
0%
0
British Indian Ocean Territory
0%
0
British Virgin Islands
0%
0
Brunei
0%
3
Bulgaria
0%
0
Burkina Faso
0%
0
Burma
0%
0
Burundi
0%
0
Cambodia
0%
0
Cameroon
4%
54
Canada
0%
0
Cape Verde
0%
0
Cayman Islands
0%
0
Central African Republic
0%
1
Chad
0%
1
Chile
1%
12
China
0%
0
Christmas Island
0%
0
Clipperton Island
0%
0
Cocos (Keeling) Islands
0%
1
Colombia
0%
0
Comoros
0%
0
Democratic Republic of the Congo
0%
0
Republic of the Congo
0%
0
Cook Islands
0%
0
Coral Sea Islands
0%
1
Costa Rica
0%
0
Cote d'Ivoire
1%
7
Croatia
0%
0
Cuba
0%
1
Cyprus
2%
23
Czech Republic
2%
20
Denmark
0%
0
Dhekelia
0%
0
Djibouti
0%
0
Dominica
0%
0
Dominican Republic
0%
1
Ecuador
0%
1
Egypt
0%
0
El Salvador
0%
0
Equatorial Guinea
0%
0
Eritrea
0%
0
Estonia
0%
0
Ethiopia
0%
0
Europa Island
0%
0
Falkland Islands (Islas Malvinas)
0%
0
Faroe Islands
0%
0
Fiji
1%
17
Finland
5%
60
France
0%
0
French Guiana
0%
0
French Polynesia
0%
0
French Southern and Antarctic Lands
0%
0
Gabon
0%
1
The Gambia
0%
0
Gaza Strip
0%
0
Georgia
9%
120
Germany
0%
0
Ghana
0%
0
Gibraltar
0%
0
Glorioso Islands
0%
5
Greece
0%
0
Greenland
0%
0
Grenada
0%
0
Guadeloupe
0%
0
Guam
0%
0
Guatemala
0%
0
Guernsey
0%
0
Guinea
0%
1
Guinea-Bissau
0%
0
Guyana
0%
0
Haiti
0%
0
Heard Island and McDonald Islands
0%
0
Holy See (Vatican City)
0%
0
Honduras
0%
2
Hong Kong
0%
3
Hungary
0%
0
Iceland
2%
29
India
0%
5
Indonesia
0%
1
Iran
0%
1
Iraq
1%
9
Ireland
0%
0
Isle of Man
1%
10
Israel
2%
21
Italy
0%
0
Jamaica
0%
0
Jan Mayen
2%
23
Japan
0%
0
Jersey
0%
0
Jordan
0%
0
Juan de Nova Island
0%
0
Kazakhstan
0%
0
Kenya
0%
0
Kiribati
0%
0
North Korea
0%
1
South Korea
0%
0
Kuwait
0%
1
Kyrgyzstan
0%
0
Laos
0%
2
Latvia
0%
0
Lebanon
0%
0
Lesotho
0%
0
Liberia
0%
0
Libya
0%
0
Liechtenstein
0%
1
Lithuania
0%
0
Luxembourg
0%
0
Macau
0%
0
Macedonia
0%
0
Madagascar
0%
0
Malawi
0%
2
Malaysia
0%
0
Maldives
0%
0
Mali
0%
0
Malta
0%
0
Marshall Islands
0%
0
Martinique
0%
0
Mauritania
0%
0
Mauritius
0%
0
Mayotte
0%
5
Mexico
0%
0
Federated States of Micronesia
0%
0
Moldova
0%
0
Monaco
0%
0
Mongolia
0%
0
Montserrat
0%
1
Morocco
0%
0
Mozambique
0%
0
Namibia
0%
0
Nauru
0%
0
Navassa Island
0%
0
Nepal
3%
43
Netherlands
0%
0
Netherlands Antilles
0%
0
New Caledonia
0%
6
New Zealand
0%
0
Nicaragua
0%
0
Niger
0%
2
Nigeria
0%
0
Niue
0%
0
Norfolk Island
0%
0
Northern Mariana Islands
2%
20
Norway
0%
0
Oman
0%
3
Pakistan
0%
0
Palau
0%
0
Palestine
0%
0
Panama
0%
0
Papua New Guinea
0%
0
Paracel Islands
0%
1
Paraguay
0%
1
Peru
0%
0
Philippines
0%
0
Pitcairn Islands
2%
21
Poland
0%
5
Portugal
0%
0
Puerto Rico
0%
0
Qatar
0%
0
Reunion
0%
6
Romania
4%
57
Russia
0%
0
Rwanda
0%
0
Saint Helena
0%
0
Saint Kitts and Nevis
0%
0
Saint Lucia
0%
0
Saint Pierre and Miquelon
0%
0
Saint Vincent and the Grenadines
0%
0
Samoa
0%
0
San Marino
0%
0
Sao Tome and Principe
0%
0
Saudi Arabia
0%
0
Senegal
0%
2
Serbia and Montenegro
0%
0
Seychelles
0%
0
Sierra Leone
1%
12
Singapore
0%
4
Slovakia
0%
1
Slovenia
0%
0
Solomon Islands
0%
0
Somalia
0%
6
South Africa
0%
0
South Georgia and the South Sandwich Islands
2%
26
Spain
0%
0
Spratly Islands
0%
0
Sri Lanka
0%
0
Sudan
0%
0
Suriname
0%
0
Svalbard
0%
0
Swaziland
3%
40
Sweden
2%
22
Switzerland
0%
0
Syria
0%
3
Taiwan
0%
0
Tajikistan
0%
0
Tanzania
0%
0
Thailand
0%
0
Timor-Leste
0%
0
Togo
0%
0
Tokelau
0%
0
Tonga
0%
0
Trinidad and Tobago
0%
0
Tromelin Island
0%
0
Tunisia
0%
6
Turkey
0%
0
Turkmenistan
0%
0
Turks and Caicos Islands
0%
0
Tuvalu
0%
1
Uganda
1%
10
Ukraine
0%
0
United Arab Emirates
8%
107
United Kingdom
25%
322
United States
0%
0
Uruguay
0%
0
Uzbekistan
0%
0
Vanuatu
0%
4
Venezuela
0%
1
Vietnam
0%
0
Virgin Islands
0%
0
Wake Island
0%
0
Wallis and Futuna
0%
0
West Bank
0%
0
Western Sahara
0%
0
Yemen
0%
0
Zambia
0%
0
Zimbabwe

How old are you?

Optional. Single select.

1%
14
Under 18 years old
18%
225
18 to 24 years old
44%
569
25 to 34 years old
26%
328
35 to 44 years old
8%
105
45 to 54 years old
3%
35
55 to 64 years old
1%
8
Over 65 years old

What is your gender?

Optional. Single select.

95%
1199
Male
3%
34
Female
3%
35
Non-binary

Do you identify as transgender?

Optional. Single select.

3%
38
Yes
97%
1159
No

Are you a student?

Optional. Single select.

14%
182
Yes, full time
5%
59
Yes, part time
81%
1038
No

What is the highest level of education you have completed?

Optional. Single select.

1%
18
Less than high school diploma
8%
108
High school diploma
11%
138
Some college
2%
20
Associate degree
35%
451
Bachelor's degree
28%
358
Master's degree
2%
27
Professional degree
13%
161
Doctoral degree

What is your employment status?

Optional. Single select.

70%
887
Employed full time
9%
109
Employed part time
8%
106
Self employed
6%
82
Not employed, but looking for work
6%
74
Not employed, and not looking for work
1%
7
Retired

How large is the company you work for?

Optional. Single select.

13%
151
Fewer than 10 employees
32%
383
10 to 99 employees
19%
220
100 to 999 employees
25%
300
More than 1,000 employees
11%
128
n/a

How many years have you been coding?

Optional. Single select.

8%
103
0 to 4 years
24%
306
5 to 9 years
23%
301
10 to 14 years
14%
185
15 to 19 years
12%
157
20 to 24 years
8%
99
25 to 29 years
10%
135
30 or more years

How many years have you been coding professionally?

Optional. Single select.

32%
400
0 to 4 years
27%
331
5 to 9 years
16%
195
10 to 14 years
9%
114
15 to 19 years
8%
104
20 to 24 years
4%
49
25 to 29 years
3%
43
30 or more years

Do you code as a hobby?

Optional. Single select.

96%
1239
Yes
4%
51
No

Have you contributed to any open source projects?

Optional. Single select.

82%
1056
Yes
18%
225
No

Meta

Did you take any previous surveys?

Optional. Multi select. Did not allow 'other'.

37%
+23%
214
+131
2019
24%
+17%
137
+100
2018
13%
+21%
73
+120
2017

How did you hear about this survey?

Optional. Single select.

4%
52
Discord
1%
13
Discourse
0%
1
GitHub
12%
153
Haskell Weekly
0%
0
Gitter
1%
19
In person
1%
15
IRC
8%
97
Lobsters
7%
91
Mailing lists
0%
4
Mastodon
0%
0
Matrix/Riot
37%
470
Reddit
3%
42
Slack
3%
34
Telegram
20%
251
Twitter
2%
29
Other

Free response

If you wanted to convince someone to use Haskell, what would you say?

Optional. Free response answers were collected but not analyzed.

If you could change one thing about Haskell, what would it be?

Optional. Free response answers were collected but not analyzed.