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?
Twitter |
204 |
20.20% |
Mailing List |
188 |
18.61% |
Slack |
116 |
11.49% |
Reddit |
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% |
https://medium.com/@gootik |
1 |
0.10% |
https://lobste.rs/t/erlang |
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% |
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% |
https://github.com/labzero/bootleg2 |
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.
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% |
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% |
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% |
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
Would you like to share any frustrating experience?
This was an open ended question, I'm summarizing similar answers here in groups
Bad tooling |
6 |
Lack of libraries, immaturity, not maintained |
5 |
Lack of guides |
5 |
Unwelcome community |
4 |
Lack of strong/static typing |
4 |
Syntax |
4 |
No examples on documentation/in general |
3 |
Bad documentation |
3 |
Mnesia |
3 |
Bad debugging experience |
3 |
Ignoring other languages/communities/feedback |
3 |
Niche language |
2 |
Bad shell |
2 |
No jobs |
2 |
Learning curve |
2 |
Difficulty contributing to the BEAM and OTP |
2 |
Confusing errors |
2 |
Performance |
2 |
Package management |
2 |
Other answers with one vote:
- Atoms not garbage collected
- Elitism
- Flat namespace
- Hard to hire
- Lack of features in standard library
- Lack of language features
- Not a clear overview of the ecosystem
- People complaining about syntax
- String vs binary
- Upgrades break code
Comments
Comments powered by Disqus