State of the BEAM 2017: Survey Results
Intro
You can't improve what you don't measure, and since I think there are areas in the BEAM community (Erlang, Elixir, LFE, Efene, Alpaca, Clojerl et al.) to improve we need to have a better picture of it.
That's why some months ago I decided to create this survey, I told to some people and started researching other "State of the X Community" yearly surveys, I wrote some draft questions and published to some people for feedback, after a couple of rounds I made a Form and ran a test survey for more feedback, after a couple dozen answers I cleared the results and announced it publicly with a weakly reminder on multiple channels.
Result Analysis
We got 423 Responses up to this point.
I present the results of the State of the BEAM Survey 2017 here in two ways:
-
Bar charts sorted by most answers to less
On questions with many answers I make a cut at some point
-
Raw data tables sorted by most answers to less
Here I did some consolidation of answers to avoid making them too large
I was thinking on doing a deep analysis on the answers but later I realized that if I did an analysis many people would read mine and avoid analyzing it themselves in detail.
Instead I decided to open an analysis thread in some forum and later maybe summarize the most interesting comments.
To ease the discussion I will do some light observations where I see it makes sense and make some questions to open the discussion.
Before diving into the result I want to make explicit two things that may make the results less representative than they should:
1. The "Elixir Effect"
I think the Elixir community is bigger or at least more active than the rest of the BEAM community, because of that and the fact that Elixir already has its own survey, I decided not to promote this survey there, to avoid the number of Elixir specific answers to skew the results and make this survey just be yet another Elixir survey with some BEAMers also replying.
With this clarification, and looking at the answers, I can identify some answers that are from Elixir-only developers, you can see that when some Elixir specific tools appear in the answers (Mix, ExUnit, Distillery, deploy to Heroku etc.), just keep that in mind when analyzing the results.
2. The "Survivorship Bias Effect"
From the wikipedia article on Survivorship bias
Survivorship bias or survival bias is the logical error of concentrating on the people or things that made it past some selection process and overlooking those that did not, typically because of their lack of visibility. This can lead to false conclusions in several different ways. It is a form of selection bias.
Survivorship bias can lead to overly optimistic beliefs because failures are ignored, such as when companies that no longer exist are excluded from analyses of financial performance.
This survey is done on people that wanted to learn Erlang, learned it, and are still active enough on the community to see the survey announcement.
This means that the answers are from the ones that "survived", which makes it really hard to get good feedback on the bad parts of the language, tooling and community since the most affected by it aren't going to stay around to fill this survey.
How to reach those? I don't know, propose solutions on the discussion.
I forgot to ask if I could make public the name of the companies so I won't, but I can say that I got 202 responses and most of them are not duplicates.
Things to improve for next year
Ask users if they want their answers available to be distributed in raw form for others to analyze
Ask users if I can share publicly the name of the company where they use Erlang
Decide what to do about Elixir-only replies, maybe make a question about it
Make specific questions regarding better tooling
I forgot Russia and Central America options, maybe next time do Latin America?
Let's see the results!
Which languages of the BEAM do you use?
Clearly Erlang is the most used language, ignoring the Elixir Effect, I'm kind of disappointed by the lack of users trying alternative languages. More so given the fact that many of the complaints or requests in other questions are already solved by other languages in the ecosystem, for example "better macros" or lisp inspired features being solved by LFE, static/stronger typing or better static analysis being solved by Alpaca, Elixir's pipe operator and a more mainstream syntax being solved by Efene.
My advice to the community, try the other languages, blog/tweet about it and share feedback with their creators, there's a language for each taste!
Erlang |
326 |
54.42% |
Elixir |
231 |
38.56% |
LFE |
14 |
2.34% |
Luerl |
12 |
2.00% |
Alpaca |
9 |
1.50% |
Clojerl |
4 |
0.67% |
Erlog |
1 |
0.17% |
Efene |
1 |
0.17% |
PHP |
1 |
0.17% |
How would you characterize your use of BEAM Languages today?
Many people using it for serious stuff, the Open Source answer is really low here but is contradicted by another answer below.
I think I should add another option for something like "experiments", "try new ideas".
I use it at work |
327 |
48.66% |
I use it for serious "hobby" projects |
245 |
36.46% |
I'm just tinkering |
62 |
9.23% |
I use it for my studies |
35 |
5.21% |
Learning |
1 |
0.15% |
katas |
1 |
0.15% |
Open Source Software |
1 |
0.15% |
In which domains are you applying it?
Distributed Systems |
225 |
15.20% |
Web development |
214 |
14.46% |
Building and delivering commercial services |
172 |
11.62% |
Open source projects |
149 |
10.07% |
Network programming |
136 |
9.19% |
Enterprise apps |
92 |
6.22% |
Databases |
80 |
5.41% |
IoT / home automation / physical computing |
75 |
5.07% |
System administration / dev ops |
60 |
4.05% |
Big Data |
51 |
3.45% |
Mobile app development (non-web) |
46 |
3.11% |
Research |
33 |
2.23% |
AI / NLP / machine learning |
28 |
1.89% |
Games |
28 |
1.89% |
Math / data analysis |
23 |
1.55% |
Scientific computing / simulations / data visualization |
21 |
1.42% |
Desktop apps |
14 |
0.95% |
Graphics / Art |
4 |
0.27% |
Music |
3 |
0.20% |
Industrial Automation |
2 |
0.14% |
log system |
1 |
0.07% |
videostreaming |
1 |
0.07% |
soft real time analytics |
1 |
0.07% |
Security Event Processing |
1 |
0.07% |
Media encoding and distribution |
1 |
0.07% |
Ad delivery |
1 |
0.07% |
Telecom Apps |
1 |
0.07% |
telecom and chat |
1 |
0.07% |
video |
1 |
0.07% |
Developer Tooling |
1 |
0.07% |
Telecommunications |
1 |
0.07% |
embedded systems |
1 |
0.07% |
Advertising/RTB |
1 |
0.07% |
Prototyping network apps |
1 |
0.07% |
Real time systems |
1 |
0.07% |
Real-Time Bidding |
1 |
0.07% |
Instant messaging / VoIP / Communications |
1 |
0.07% |
ad traffic management |
1 |
0.07% |
REST/GraphQL API |
1 |
0.07% |
Test systems |
1 |
0.07% |
Learning |
1 |
0.07% |
telecommunications |
1 |
0.07% |
VoIP |
1 |
0.07% |
Code static analysis |
1 |
0.07% |
What industry or industries do you develop for?
Enterprise software |
117 |
15.04% |
Communications / Networking |
103 |
13.24% |
Consumer software |
85 |
10.93% |
IT / Cloud Provider |
83 |
10.67% |
Financial services / FinTech |
69 |
8.87% |
Telecom |
67 |
8.61% |
Media / Advertising |
46 |
5.91% |
Retail / ecommerce |
41 |
5.27% |
Academic |
29 |
3.73% |
Healthcare |
28 |
3.60% |
Education |
26 |
3.34% |
Government / Military |
22 |
2.83% |
Scientific |
16 |
2.06% |
Legal Tech |
6 |
0.77% |
Energy |
5 |
0.64% |
Gaming |
2 |
0.26% |
HR |
2 |
0.26% |
Security |
2 |
0.26% |
Logistics |
2 |
0.26% |
sports/fitness |
1 |
0.13% |
Retired |
1 |
0.13% |
Sport |
1 |
0.13% |
Business Intelligence |
1 |
0.13% |
Telematics / Car industry |
1 |
0.13% |
Manufacturing / Automotive |
1 |
0.13% |
Cultural/Museum |
1 |
0.13% |
Utilities |
1 |
0.13% |
Open source |
1 |
0.13% |
Travel |
1 |
0.13% |
Sport analysis |
1 |
0.13% |
Fitness |
1 |
0.13% |
Online Games |
1 |
0.13% |
Automotive |
1 |
0.13% |
Marketing |
1 |
0.13% |
Real estate |
1 |
0.13% |
Consumer electronics |
1 |
0.13% |
Non profit |
1 |
0.13% |
Client driven |
1 |
0.13% |
Industrial IoT |
1 |
0.13% |
Electric utility |
1 |
0.13% |
SaaS |
1 |
0.13% |
Automobile |
1 |
0.13% |
energy sector |
1 |
0.13% |
utilities |
1 |
0.13% |
Recruitment |
1 |
0.13% |
Energetics |
1 |
0.13% |
How long have you been using Erlang?
The entrants (1 year or less) being less than 2 and 3 years may be discouraging or maybe as a sign that this survey didn't reach as many newcomers as it should.
> 6 Years |
116 |
27.62% |
2 Years |
76 |
18.10% |
3 Years |
58 |
13.81% |
1 Year |
52 |
12.38% |
Less than a year |
45 |
10.71% |
5 Years |
36 |
8.57% |
4 Years |
34 |
8.10% |
I've stopped using it |
3 |
0.71% |
What's your age
Similar to the previous one, the survey shows that we are not interesting to young programmers (or this survey is not interesting to them :)
30-40 |
179 |
42.42% |
20-30 |
112 |
26.54% |
40-50 |
93 |
22.04% |
> 50 |
31 |
7.35% |
< 20 |
7 |
1.66% |
What's your gender
One I was expecting, but bad nonetheless.
Male |
401 |
95.02% |
Prefer not to say |
15 |
3.55% |
Female |
5 |
1.18% |
attack helicopter |
1 |
0.24% |
Where are you located?
North America |
127 |
30.09% |
Western Europe |
117 |
27.73% |
Eastern Europe |
42 |
9.95% |
Northern Europe |
39 |
9.24% |
South America |
30 |
7.11% |
Asia |
25 |
5.92% |
Oceania |
11 |
2.61% |
Russia |
7 |
1.66% |
India |
6 |
1.42% |
China |
6 |
1.42% |
South Saharan Afica |
3 |
0.71% |
Middle East |
2 |
0.47% |
Europe |
1 |
0.24% |
Iran |
1 |
0.24% |
Central America |
1 |
0.24% |
Australia |
1 |
0.24% |
Thailand |
1 |
0.24% |
East Africa |
1 |
0.24% |
Central Europe |
1 |
0.24% |
What is your level of experience with functional programming?
7 answers got the joke or are really awesome programmers :)
Intermediate |
202 |
48.44% |
Advanced |
148 |
35.49% |
Beginner |
57 |
13.67% |
Profunctor Optics Level |
7 |
1.68% |
None |
3 |
0.72% |
Prior to using Erlang, which were your primary development languages?
C or C++ |
163 |
14.75% |
Python |
145 |
13.12% |
Javascript |
144 |
13.03% |
Ruby |
138 |
12.49% |
Java |
135 |
12.22% |
PHP |
72 |
6.52% |
C# |
56 |
5.07% |
Perl |
46 |
4.16% |
Go |
26 |
2.35% |
Haskell |
25 |
2.26% |
Swift or Objective-C |
24 |
2.17% |
Common Lisp |
20 |
1.81% |
Scala |
20 |
1.81% |
Scheme or Racket |
14 |
1.27% |
Visual Basic |
11 |
1.00% |
Clojure |
8 |
0.72% |
R |
8 |
0.72% |
Rust |
7 |
0.63% |
None |
6 |
0.54% |
OCaml |
3 |
0.27% |
F# |
3 |
0.27% |
Kotlin |
2 |
0.18% |
Standard ML |
2 |
0.18% |
Fortran |
2 |
0.18% |
Pascal |
1 |
0.09% |
Ocaml |
1 |
0.09% |
KDB |
1 |
0.09% |
so "primary" here for me is "what was most used at work" |
1 |
0.09% |
TypeScript |
1 |
0.09% |
Microsoft Access |
1 |
0.09% |
Groovy |
1 |
0.09% |
but I am a self-proclaimed polyglot |
1 |
0.09% |
Shell |
1 |
0.09% |
Tcl/Tk |
1 |
0.09% |
Limbo |
1 |
0.09% |
Smalltalk |
1 |
0.09% |
clojure |
1 |
0.09% |
ActionScript |
1 |
0.09% |
Actionscript |
1 |
0.09% |
Prolog |
1 |
0.09% |
Racket |
1 |
0.09% |
Bash |
1 |
0.09% |
ML |
1 |
0.09% |
TCL |
1 |
0.09% |
Elixir |
1 |
0.09% |
C ANSI POSIX |
1 |
0.09% |
D |
1 |
0.09% |
ocaml |
1 |
0.09% |
Assembly |
1 |
0.09% |
Which client-side language are you using with Erlang?
Javascript |
257 |
44.93% |
None |
90 |
15.73% |
Elm |
69 |
12.06% |
Java |
36 |
6.29% |
Swift/Objective-C |
36 |
6.29% |
Clojurescript |
13 |
2.27% |
ReasonML/Ocaml |
10 |
1.75% |
Kotlin |
8 |
1.40% |
Typescript |
7 |
1.22% |
Scala |
7 |
1.22% |
Purescript |
6 |
1.05% |
C++ |
4 |
0.70% |
TypeScript |
3 |
0.52% |
Go |
2 |
0.35% |
typescript |
2 |
0.35% |
Python |
2 |
0.35% |
Erlang |
2 |
0.35% |
Flow + Javascript |
1 |
0.17% |
HTML-CSS |
1 |
0.17% |
Haskell |
1 |
0.17% |
What do you mean by "client-side language"? |
1 |
0.17% |
other |
1 |
0.17% |
Action Script 3 |
1 |
0.17% |
Coffeescript |
1 |
0.17% |
d3.js |
1 |
0.17% |
lua |
1 |
0.17% |
Python/PyQt |
1 |
0.17% |
Dart |
1 |
0.17% |
Golang |
1 |
0.17% |
Ruby |
1 |
0.17% |
M$ C# |
1 |
0.17% |
Python (interface to legacy system - not web based) |
1 |
0.17% |
clojure |
1 |
0.17% |
C# |
1 |
0.17% |
Tcl/Tk |
1 |
0.17% |
In your Erlang projects, do you interoperate with other languages? if so, which ones?
C or C++ |
156 |
24.19% |
None |
92 |
14.26% |
Python |
87 |
13.49% |
Javascript |
72 |
11.16% |
Java |
51 |
7.91% |
Ruby |
37 |
5.74% |
Rust |
27 |
4.19% |
Go |
27 |
4.19% |
Swift or Objective-C |
14 |
2.17% |
C# |
12 |
1.86% |
Scala |
11 |
1.71% |
PHP |
9 |
1.40% |
Perl |
8 |
1.24% |
R |
8 |
1.24% |
Haskell |
6 |
0.93% |
Common Lisp |
4 |
0.62% |
Clojure |
3 |
0.47% |
OCaml |
3 |
0.47% |
Elixir |
2 |
0.31% |
Scheme or Racket |
2 |
0.31% |
Bash |
2 |
0.31% |
Kotlin |
1 |
0.16% |
KDB |
1 |
0.16% |
I use Erlang from Elixir |
1 |
0.16% |
lua |
1 |
0.16% |
SQL |
1 |
0.16% |
java |
1 |
0.16% |
Ocaml |
1 |
0.16% |
go |
1 |
0.16% |
Not directly via NIFs/ports but via HTTP/rabbit with ruby |
1 |
0.16% |
Tcl/Tk |
1 |
0.16% |
Lua |
1 |
0.16% |
python |
1 |
0.16% |
Which is your primary development environment?
I thought Emacs would win here by the fact that the Erlang creators use Emacs.
Vim |
116 |
27.49% |
Emacs |
114 |
27.01% |
IntelliJ |
47 |
11.14% |
Visual Studio Code |
47 |
11.14% |
Sublime Text |
39 |
9.24% |
Atom |
32 |
7.58% |
Eclipse |
6 |
1.42% |
spacemacs |
2 |
0.47% |
nano |
2 |
0.47% |
linux with vim as my text editor |
1 |
0.24% |
Kate |
1 |
0.24% |
textmate |
1 |
0.24% |
TextPad |
1 |
0.24% |
Simple text editor |
1 |
0.24% |
Notepad++ |
1 |
0.24% |
Also nvi. |
1 |
0.24% |
mcedit |
1 |
0.24% |
PSPad |
1 |
0.24% |
geany with erlang syntax support |
1 |
0.24% |
Kakoune |
1 |
0.24% |
Neovim |
1 |
0.24% |
Acme |
1 |
0.24% |
Spacemacs |
1 |
0.24% |
Atom and Emacs both very equally |
1 |
0.24% |
ed |
1 |
0.24% |
elvis |
1 |
0.24% |
Where do you go for Erlang news and discussions?
204 |
20.20% |
|
Mailing List |
188 |
18.61% |
Slack |
116 |
11.49% |
111 |
10.99% |
|
Stack Overflow |
103 |
10.20% |
IRC |
62 |
6.14% |
Erlang Central |
60 |
5.94% |
Newsletters |
50 |
4.95% |
Podcasts |
33 |
3.27% |
Planet Erlang |
31 |
3.07% |
ElixirForum |
31 |
3.07% |
Elixir Community |
1 |
0.10% |
lobste.rs |
1 |
0.10% |
EUC |
1 |
0.10% |
Reddit and ElixirForum |
1 |
0.10% |
This week in Erlang |
1 |
0.10% |
Gitter |
1 |
0.10% |
Awesome Elixir |
1 |
0.10% |
OTP's github for PRs and commit log |
1 |
0.10% |
elixirstatus.com |
1 |
0.10% |
Google Plus |
1 |
0.10% |
youtube |
1 |
0.10% |
Search on github |
1 |
0.10% |
Erlang solutions |
1 |
0.10% |
not interesting |
1 |
0.10% |
Medium |
1 |
0.10% |
None |
1 |
0.10% |
Watch talks |
1 |
0.10% |
Conference Videos |
1 |
0.10% |
Elixir Sips |
1 |
0.10% |
1 |
0.10% |
|
1 |
0.10% |
Which versions of the Erlang VM do you currently use for development?
We are really up to date, we are near a point where we can assume maps on our libraries :)
20 |
305 |
46.71% |
19 |
213 |
32.62% |
18 |
84 |
12.86% |
17 |
30 |
4.59% |
16 |
16 |
2.45% |
<= 15 |
5 |
0.77% |
Which versions of the Erlang VM do you currently use in production?
Of course production is a little more conservative
19 |
215 |
37.65% |
20 |
183 |
32.05% |
18 |
94 |
16.46% |
17 |
43 |
7.53% |
16 |
26 |
4.55% |
<= 15 |
10 |
1.75% |
Which build tool do you use?
Nice to see Rebar3 picking up momentum, Mix being mainly the Elixir Effect, next year I should add an option for "Mix for erlang or mixed projects".
Rebar3 |
220 |
32.59% |
Mix |
177 |
26.22% |
Makefile |
111 |
16.44% |
Rebar |
71 |
10.52% |
erlang.mk |
46 |
6.81% |
Custom build scripts |
44 |
6.52% |
Distillery |
1 |
0.15% |
maven |
1 |
0.15% |
redo |
1 |
0.15% |
mix |
1 |
0.15% |
synrc/mad |
1 |
0.15% |
MBU |
1 |
0.15% |
How do you test your code?
Surprised by EUnit being on top, why do people prefer it over Common Test?
EUnit |
216 |
34.67% |
Common Test |
158 |
25.36% |
ExUnit |
74 |
11.88% |
PropEr |
69 |
11.08% |
I don't write tests |
45 |
7.22% |
QuickCheck |
33 |
5.30% |
Custom |
4 |
0.64% |
Triq |
4 |
0.64% |
ESpec |
3 |
0.48% |
CutEr |
3 |
0.48% |
StreamData |
2 |
0.32% |
Lux |
2 |
0.32% |
py.test |
2 |
0.32% |
Functional tests |
1 |
0.16% |
Don't have time to write tests |
1 |
0.16% |
katana-test |
1 |
0.16% |
riak_test |
1 |
0.16% |
Dialyzer |
1 |
0.16% |
Integration tests |
1 |
0.16% |
Elixir tests. |
1 |
0.16% |
Concuerror |
1 |
0.16% |
How do you deploy your application?
Lot of custom deploy scripts and docker/kubernetes here, maybe we should have better deploy support in our tools?
Custom deploy scripts |
186 |
32.75% |
Docker |
128 |
22.54% |
Kubernetes |
50 |
8.80% |
Ansible |
44 |
7.75% |
I don't deploy in other servers |
40 |
7.04% |
Chef |
39 |
6.87% |
Puppet |
11 |
1.94% |
SaltStack |
11 |
1.94% |
Heroku |
11 |
1.94% |
Edeliver |
8 |
1.41% |
deb |
7 |
1.23% |
Distillery |
7 |
1.23% |
Zones |
5 |
0.88% |
AWS CodeDeploy |
3 |
0.53% |
Rancher |
1 |
0.18% |
VM image |
1 |
0.18% |
boot from flash |
1 |
0.18% |
1 |
0.18% |
|
Not my job |
1 |
0.18% |
copy paste |
1 |
0.18% |
mad |
1 |
0.18% |
CD |
1 |
0.18% |
Exrm |
1 |
0.18% |
rpm |
1 |
0.18% |
Nomad |
1 |
0.18% |
AWS ECS |
1 |
0.18% |
FreeBSD Jails |
1 |
0.18% |
lxc |
1 |
0.18% |
WIX |
1 |
0.18% |
os packages |
1 |
0.18% |
nanobox |
1 |
0.18% |
cloudfoundry |
1 |
0.18% |
What is your organization's size?
Can we say that Erlang works on organizations of any size?
11-50 |
109 |
26.20% |
2-10 |
93 |
22.36% |
Just me |
75 |
18.03% |
500+ |
65 |
15.62% |
101-500 |
45 |
10.82% |
51-100 |
29 |
6.97% |
Which operating system(s) you use for development?
Almost same amount of Windows and FreeBSD, is it because Windows support is bad? or is this a reflection of the usual developer OS choice in any programming language?
Linux |
307 |
47.01% |
MacOS |
253 |
38.74% |
Windows |
38 |
5.82% |
FreeBSD |
34 |
5.21% |
Illumos |
8 |
1.23% |
OpenBSD |
7 |
1.07% |
Solaris |
3 |
0.46% |
NetBSD |
1 |
0.15% |
GRiSP |
1 |
0.15% |
ChromeOS |
1 |
0.15% |
Which operating system(s) you use for deployment?
Linux |
378 |
75.15% |
FreeBSD |
43 |
8.55% |
MacOS |
25 |
4.97% |
Windows |
22 |
4.37% |
I don't deploy in other servers |
11 |
2.19% |
Solaris |
9 |
1.79% |
Illumos |
8 |
1.59% |
OpenBSD |
3 |
0.60% |
RTEMS |
1 |
0.20% |
GRiSP |
1 |
0.20% |
OSv |
1 |
0.20% |
NetBSD |
1 |
0.20% |
Where do you deploy your applications?
I don't think this question provides useful information, maybe I should add options?
Public Cloud |
188 |
27.85% |
Use on local machine(s) |
162 |
24.00% |
Traditional Infrastructure |
157 |
23.26% |
Private Cloud (or hybrid) |
156 |
23.11% |
Distillery |
1 |
0.15% |
VMs on ESXi |
1 |
0.15% |
embedded systems |
1 |
0.15% |
Rented physical server |
1 |
0.15% |
Vagrant vms |
1 |
0.15% |
Embedded appliances |
1 |
0.15% |
Heroku |
1 |
0.15% |
VPS |
1 |
0.15% |
hyper.sh |
1 |
0.15% |
Containers (Docker) |
1 |
0.15% |
Edeliver |
1 |
0.15% |
GitHub |
1 |
0.15% |
Which events have you attended in the last year?
Local Meetups at the top is a nice one, we can work to promote more of these.
Local Meetup |
124 |
46.97% |
Erlang Factory |
39 |
14.77% |
Erlang User Conference |
38 |
14.39% |
Erlang Factory Light |
20 |
7.58% |
ElixirConf |
12 |
4.55% |
ElixirConfEU |
9 |
3.41% |
None |
6 |
2.27% |
Lonestar Elixir |
3 |
1.14% |
Code Mesh |
2 |
0.76% |
Lambda Days |
1 |
0.38% |
ElixirConfEU + ElixirLDN |
1 |
0.38% |
ElixirConf USA 2017 |
1 |
0.38% |
Elixir London |
1 |
0.38% |
ElixirConf 2017 |
1 |
0.38% |
Elixir meetup in Leeds UK |
1 |
0.38% |
ElixirLive Conference in Warsaw |
1 |
0.38% |
J on the Beach |
1 |
0.38% |
Peer gatherings in region |
1 |
0.38% |
Empex |
1 |
0.38% |
Elixir Camp |
1 |
0.38% |
Do you use HiPE?
No |
301 |
74.32% |
Yes |
104 |
25.68% |
Do you use dialyzer?
Yes |
280 |
66.99% |
No |
138 |
33.01% |
How important have each of these aspects of Erlang been to you and your projects?
Remember that charts and tables are sorted by most to less answers to compare correctly in the following set of questions.
Community
Very Important |
157 |
37.74% |
Fairly Important |
112 |
26.92% |
Important |
79 |
18.99% |
Slightly Important |
52 |
12.50% |
No Opinion |
8 |
1.92% |
Not Important at All |
8 |
1.92% |
Concurrency facilities
Very Important |
306 |
73.73% |
Fairly Important |
58 |
13.98% |
Important |
36 |
8.67% |
No Opinion |
7 |
1.69% |
Slightly Important |
7 |
1.69% |
Not Important at All |
1 |
0.24% |
Ease of development
Very Important |
205 |
49.52% |
Fairly Important |
98 |
23.67% |
Important |
72 |
17.39% |
Slightly Important |
27 |
6.52% |
No Opinion |
10 |
2.42% |
Not Important at All |
2 |
0.48% |
Functional Programming
Very Important |
207 |
49.88% |
Fairly Important |
105 |
25.30% |
Important |
53 |
12.77% |
Slightly Important |
33 |
7.95% |
No Opinion |
9 |
2.17% |
Not Important at All |
8 |
1.93% |
Immutability
Very Important |
222 |
53.62% |
Fairly Important |
90 |
21.74% |
Important |
60 |
14.49% |
Slightly Important |
30 |
7.25% |
No Opinion |
8 |
1.93% |
Not Important at All |
4 |
0.97% |
Runtime performance
Very Important |
148 |
35.75% |
Fairly Important |
122 |
29.47% |
Important |
95 |
22.95% |
Slightly Important |
36 |
8.70% |
Not Important at All |
7 |
1.69% |
No Opinion |
6 |
1.45% |
The REPL
Very Important |
145 |
35.02% |
Fairly Important |
106 |
25.60% |
Important |
74 |
17.87% |
Slightly Important |
61 |
14.73% |
No Opinion |
19 |
4.59% |
Not Important at All |
9 |
2.17% |
Tracing
Slightly Important |
96 |
23.02% |
Very Important |
95 |
22.78% |
Fairly Important |
90 |
21.58% |
Important |
82 |
19.66% |
Not Important at All |
29 |
6.95% |
No Opinion |
25 |
6.00% |
What has been most frustrating or has prevented you from using Erlang more than you do now?
App deployment
Not Frustrating at All |
120 |
30.08% |
Slightly Frustrating |
93 |
23.31% |
Frustrating |
54 |
13.53% |
Fairly Frustrating |
41 |
10.28% |
Quite the contrary: I love this feature |
38 |
9.52% |
No Opinion |
29 |
7.27% |
Very Frustrating |
24 |
6.02% |
Error messages
Slightly Frustrating |
119 |
29.82% |
Not Frustrating at All |
89 |
22.31% |
Frustrating |
48 |
12.03% |
Fairly Frustrating |
43 |
10.78% |
Quite the contrary: I love this feature |
39 |
9.77% |
Very Frustrating |
38 |
9.52% |
No Opinion |
23 |
5.76% |
Finding libraries
Slightly Frustrating |
137 |
34.08% |
Not Frustrating at All |
121 |
30.10% |
Frustrating |
64 |
15.92% |
Fairly Frustrating |
31 |
7.71% |
Quite the contrary: I love this feature |
21 |
5.22% |
Very Frustrating |
15 |
3.73% |
No Opinion |
13 |
3.23% |
Hard to Learn it
Not Frustrating at All |
204 |
51.13% |
Slightly Frustrating |
77 |
19.30% |
Quite the contrary: I love this feature |
48 |
12.03% |
Frustrating |
29 |
7.27% |
No Opinion |
21 |
5.26% |
Fairly Frustrating |
14 |
3.51% |
Very Frustrating |
6 |
1.50% |
Hiring and staffing
No Opinion |
124 |
31.47% |
Slightly Frustrating |
78 |
19.80% |
Not Frustrating at All |
71 |
18.02% |
Fairly Frustrating |
43 |
10.91% |
Frustrating |
41 |
10.41% |
Very Frustrating |
25 |
6.35% |
Quite the contrary: I love this feature |
12 |
3.05% |
Installation process
Not Frustrating at All |
218 |
55.05% |
Slightly Frustrating |
67 |
16.92% |
Quite the contrary: I love this feature |
54 |
13.64% |
Frustrating |
23 |
5.81% |
Fairly Frustrating |
16 |
4.04% |
No Opinion |
14 |
3.54% |
Very Frustrating |
4 |
1.01% |
Long term viability
Not Frustrating at All |
194 |
48.87% |
Quite the contrary: I love this feature |
74 |
18.64% |
Slightly Frustrating |
46 |
11.59% |
No Opinion |
41 |
10.33% |
Frustrating |
28 |
7.05% |
Fairly Frustrating |
9 |
2.27% |
Very Frustrating |
5 |
1.26% |
Need more docs/tutorials
Not Frustrating at All |
127 |
32.32% |
Slightly Frustrating |
124 |
31.55% |
Frustrating |
44 |
11.20% |
Fairly Frustrating |
37 |
9.41% |
Quite the contrary: I love this feature |
22 |
5.60% |
No Opinion |
22 |
5.60% |
Very Frustrating |
17 |
4.33% |
Need more text editor support/IDEs
Not Frustrating at All |
168 |
42.00% |
Slightly Frustrating |
93 |
23.25% |
Frustrating |
39 |
9.75% |
Quite the contrary: I love this feature |
32 |
8.00% |
Fairly Frustrating |
28 |
7.00% |
Very Frustrating |
22 |
5.50% |
No Opinion |
18 |
4.50% |
Need more tools
Slightly Frustrating |
128 |
32.16% |
Not Frustrating at All |
99 |
24.87% |
Frustrating |
58 |
14.57% |
Fairly Frustrating |
40 |
10.05% |
Very Frustrating |
34 |
8.54% |
No Opinion |
26 |
6.53% |
Quite the contrary: I love this feature |
13 |
3.27% |
No static typing
Not Frustrating at All |
113 |
28.18% |
Slightly Frustrating |
105 |
26.18% |
Quite the contrary: I love this feature |
63 |
15.71% |
Frustrating |
40 |
9.98% |
Fairly Frustrating |
34 |
8.48% |
Very Frustrating |
25 |
6.23% |
No Opinion |
21 |
5.24% |
Release schedule
Not Frustrating at All |
258 |
64.99% |
Quite the contrary: I love this feature |
57 |
14.36% |
No Opinion |
43 |
10.83% |
Slightly Frustrating |
26 |
6.55% |
Frustrating |
9 |
2.27% |
Very Frustrating |
2 |
0.50% |
Fairly Frustrating |
2 |
0.50% |
Runtime performance
Not Frustrating at All |
185 |
46.25% |
Slightly Frustrating |
72 |
18.00% |
Quite the contrary: I love this feature |
57 |
14.25% |
Frustrating |
32 |
8.00% |
No Opinion |
25 |
6.25% |
Fairly Frustrating |
17 |
4.25% |
Very Frustrating |
12 |
3.00% |
Unpleasant community
Not Frustrating at All |
224 |
56.14% |
Quite the contrary: I love this feature |
79 |
19.80% |
No Opinion |
45 |
11.28% |
Slightly Frustrating |
26 |
6.52% |
Frustrating |
14 |
3.51% |
Very Frustrating |
7 |
1.75% |
Fairly Frustrating |
4 |
1.00% |
Version incompatibility
Not Frustrating at All |
212 |
53.13% |
Slightly Frustrating |
84 |
21.05% |
No Opinion |
40 |
10.03% |
Quite the contrary: I love this feature |
29 |
7.27% |
Frustrating |
19 |
4.76% |
Fairly Frustrating |
11 |
2.76% |
Very Frustrating |
4 |
1.00% |
Any feature you would like to see added to the language?
This was an open ended question, I'm summarizing similar answers here in groups
Static Typing |
20 |
Performance |
7 |
Pipe operator |
7 |
JIT |
6 |
Currying |
6 |
Better GUI lib |
5 |
Better macros |
4 |
Docs in shell |
4 |
Better language interop |
4 |
JSON in stdlib |
3 |
Compile to single binary |
3 |
Namespaces |
3 |
Rebind variables |
2 |
Numeric performance |
2 |
Elixir protocols |
2 |
Language server protocol |
2 |
Non full mesh disterl |
2 |
Consensus implementations in stdlib |
2 |
More than 2 version of same module |
2 |
Atom GC |
2 |
Other answers with one vote:
Backward compatibility
BEAM on browsers
Better binary syntax
Better container support
Better datetime support
Better documentation
Better errors
Better global registry
Better if expression
Better map support in mnesia
Better ML integration
Better module system
Better proc_lib
Better profiler
Better site
Better string module
Better unicode support
Bigger standard library
Bring back parameterized modules
Cleanup standard library
Code change watcher and loader
Consistent error return
CRDTs
Curses version of observer
Database drivers/support
Early return statement
Encrypted inter node communication
Erlang leveldb/rocksdb (better DETS)
First class records (not as tuples)
Function composition
IPv6
Laziness
LLVM based Hipe
Map comprehensions
Monads
More behaviors
More Lispy
More robust on_load
Multi-poll sets
Native compilation
New logo
Numerical/GPU support
Orleans
Package manager
Rational numbers
Remove stuff
Short circuit folding a list
Single file distribution
String performance
Top-like tool
Type checking as you type
Type inference
WebRTC
With expression like Elixir
Any advise on how we can make Erlang more welcoming and easy to use?
This was an open ended question, I'm summarizing similar answers here in groups
Better guides |
20 |
Better documentation |
18 |
Better error messages |
13 |
Better tooling |
9 |
Central/better landing page |
4 |
Better REPL |
3 |
Translated documentation |
2 |
Better libraries |
2 |
Friendlier community |
2 |
Better learning curve |
2 |
Learn from Elixir community |
3 |
IDE support |
3 |
Marketing |
2 |
Searchable docs |
2 |
Throw away legacy |
2 |
Simpler release process |
2 |
Other answers with one vote:
A killer app
Better tracing tools
Better Windows experience
Embrace BEAM languages
Erlang forum
Introductory workshops
More conferences
More welcoming mailing list
Nicer syntax
Performance
Templates