summary refs log tree commit diff stats
path: root/web/news/nim_community_survey_results.rst
blob: 49656f20ae4f3dc2b6d1078b23992a882739a692 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
Nim Community Survey Results
============================

.. container:: metadata

  Posted by Dominik Picheta on 20/08/2016

We have recently closed the 2016 Nim Community Survey. I am happy to
say that we have received exactly 790 responses, huge thanks go to the people
that took the time to respond. We're very thankful for this very valuable
feedback.

This survey was inspired in part by the
`2016 State of Rust <https://blog.rust-lang.org/2016/06/30/State-of-Rust-Survey-2016.html>`_
survey. You will note that many of the questions were modelled after
Rust's survey. One of the reasons for doing this was to allow us to easily
compare our results against the results obtained in the Rust survey. In
addition, we of course also liked many of their questions.

Our survey ran from the 23rd of June 2016 until the 8th of August 2016. The
response numbers are impressive considering Nim's community size; at 790 they
make up just over 25% of the Rust survey's responses.

The goal of this survey was to primarily determine how our community is using
Nim, in order to better understand how we should be improving it. In particular,
we wanted to know what people feel is missing from Nim in the lead up to
version 1.0. We have also asked our respondents about how well the Nim tools
worked, the challenges of adopting Nim, the resources that they used to learn
Nim and more.

It is my hope that we will be able to run a similar survey in a years time,
doing so should give us an idea of whether we are improving.
With these general facts in mind, let's begin looking at specific questions.

How did you find out about Nim?
-------------------------------

The rationale for the first question was simple, we wanted to know where our
respondents found out about Nim. This is an interesting question for us, as
we do occassionally get users asking us why it took so long for them to hear
about Nim. It allows us to see how effective each website is at spreading the
word about Nim.

.. raw::html

  <a href="../assets/news/images/survey/nim_found.png">
    <img src="../assets/news/images/survey/nim_found.png" alt="How did you find out about Nim?" style="width:100%"/>
  </a>

The majority of our respondents found Nim via Reddit, HackerNews or a search
engine such as Google. These results are not altogether surprising. There were
also a lot of "Other" responses, some of which were a bit more
interesting. These included multiple mentions of habrahabr.ru, Dr. Dobb's,
and lobste.rs.

Do you use Nim?
---------------

Just like the Rust survey creators, we wanted to ensure that our survey was
open to both Nim users as well people who never used Nim. In addition to
those two groups, we have also included a third group of people: ex-Nim
users. All three are interesting, for many different reasons.
Nim users can tell us how they are using Nim and also how Nim's
tooling can improve. Ex-Nim users give us an
idea of why they stopped using Nim. Finally, respondents who never used Nim
can tell us the reasons for not adopting it.

.. raw::html

  <a href="../assets/news/images/survey/do_you_use_nim.png">
    <img src="../assets/news/images/survey/do_you_use_nim.png" alt="Do you use Nim?" style="width:100%"/>
  </a>

It's nice to see that we have such a good range of respondents. The Rust survey
had a much larger number of Rust users amongst their respondents, with
no distinction between users that never used Rust and users that stopped using
Rust.

.. raw::html

  <a href="https://blog.rust-lang.org/images/2016-06-Survey/do_you_use_rust.png">
    <img src="https://blog.rust-lang.org/images/2016-06-Survey/do_you_use_rust.png" alt="Do you use Rust?" style="width:100%"/>
  </a>

Should we consider your answers to be invalid?
----------------------------------------------

This was something I thought would be interesting to have, after I saw it
being used in another survey. While it does pinpoint possibly
invalid respondents, I have opted against filtering those out. Mainly because
that would require re-creating each of the charts generated by Google Forms
manually.

.. raw::html

  <a href="../assets/news/images/survey/reliability.png">
    <img src="../assets/news/images/survey/reliability.png" alt="Should we consider your answers to be invalid?" style="width:100%"/>
  </a>

According to the responses to this question, around 94% of our responses
can be considered reliable.

Nim users
---------

The following questions were answered only by the 38.9% of our respondents
who identified themselves as Nim users.

How long have you been using Nim?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. raw::html

  <a href="../assets/news/images/survey/nim_time.png">
    <img src="../assets/news/images/survey/nim_time.png" alt="How long have you been using Nim?" style="width:100%"/>
  </a>

A large proportion of our Nim users were new. This is good news as it means that
our community is growing, with a large proportion of new Nim users that could
become long-term Nimians. In total, more than 35% of Nim users can be considered
new having used Nim for less than 3 months. With 18% of Nim users that can
be considered very new having used Nim for less than a month.
This could suggest that 18% of our users have only just found out about Nim in
the last week or so and have not yet got the chance to use it extensively.

The high percentages of long term Nim users are encouraging.
They suggest
that many users are continuing to use Nim after making it through the first
few months. The sharp drop at 7-9 months is interesting, but may simply be
due to the fact that there were fewer newcomers during that period, or it
could be because our respondents are more likely to estimate that they have
been using Nim for a year or half a year rather than the awkward 7-9 months.

.. raw::html

  <a href="../assets/news/images/survey/nim_time_rust.png">
    <img src="../assets/news/images/survey/nim_time_rust.png" alt="Time using Nim and Rust" style="width:100%"/>
  </a>

The results for Nim and Rust are actually remarkably similar. They both show a
drop at 7-9 months, although Rust's isn't as dramatic. Nim on the other hand
has a significantly higher percentage of new Nim users.

Do you use Nim at work?
~~~~~~~~~~~~~~~~~~~~~~~

An important aspect of a language's adoption is whether it is being used for
"real" work. We wanted to know how many people are using Nim in their day
jobs and under what circumstances it is used.

.. raw::html

  <a href="../assets/news/images/survey/nim_at_work.png">
    <img src="../assets/news/images/survey/nim_at_work.png" alt="Do you use Nim at work?" style="width:100%"/>
  </a>

While a vast majority of our users are not using Nim at work, more than 25%
of them are. It's encouraging to see such a high number already, even before
we have released version 1.0. In fact, this percentage is likely close to 30%,
because many of the "Other" responses mention using Nim for the likes of
internal tools or small scripts to help with the respondent's work.

.. raw::html

  <a href="https://blog.rust-lang.org/images/2016-06-Survey/rust_at_work.png">
    <img src="https://blog.rust-lang.org/images/2016-06-Survey/rust_at_work.png" alt="Do you use Rust at work?" style="width:100%"/>
  </a>

Interestingly, a larger percentage of Nim users are using Nim at work than
Rust users. The sample sizes are of course vastly different, but it's still an
interesting result. Combined, nearly 1/5th of Rust users are using Rust
commercially whereas more than a quarter of Nim users are using Nim
commercially.

Approximately how large are all the Nim projects that you work on?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Finding out how large the Nim projects worked on by Nim users are is also
very valuable.

.. raw::html

  <a href="../assets/news/images/survey/project_size.png">
    <img src="../assets/news/images/survey/project_size.png" alt="Nim project size for all users" style="width:100%"/>
  </a>

This shows us that currently Nim is primarily being used for small scripts and
applications, with nearly 60% of the projects consisting of less than 1,000
lines of code. This makes sense as many of our users are not using Nim
professionally, but are doing so in their spare time.

.. raw::html

  <a href="../assets/news/images/survey/project_size_work.png">
    <img src="../assets/news/images/survey/project_size_work.png" alt="Nim project size for work users" style="width:100%"/>
  </a>

The numbers for part-time and full-time work users of Nim tell a different
story. Over 70% of the projects written by full-time users are between 10,001
and 100,000 lines of code. Part-time users show a slightly different trend,
with many more small projects, the majority being between 1,000 and
10,000 lines of code.

Overall it's good to see that there is a few large projects out there which are
composed of more than 100,000 lines of code. We expect to see the amount of
large projects to grow with time, especially with version 1.0 on the way.

.. raw::html

  <a href="../assets/news/images/survey/project_size_nim_rust.png">
    <img src="../assets/news/images/survey/project_size_nim_rust.png" alt="Nim project size for work users (Nim vs. Rust)" style="width:100%"/>
  </a>

In comparison to Rust the proportion of project sizes for full-time users is
vastly different. This is likely due to our small sample size. Project sizes for
part-time users between Rust and Nim are somewhat similar, with differences of
around 10% for each project size.

Do you plan to try to use Nim at work?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. raw::html

  <a href="../assets/news/images/survey/planning_to_use_at_work.png">
    <img src="../assets/news/images/survey/planning_to_use_at_work.png" alt="Planning to use Nim at work?" style="width:100%"/>
  </a>

It's also encouraging to see that over 50% of Nim users are planning to use
Nim at work! This is slightly more than Rust's 40% and should help Nim's
adoption into even more areas.

Nim and its tools
~~~~~~~~~~~~~~~~~

In this section of the survey, we wanted to find out the tools that Nim
users are utilising when developing Nim applications.

What editor(s) do you use when writing Nim?
___________________________________________

Programmers are very specific when it comes to their editor of choice, because
of that it's good to know which editor is most popular among our community.

.. raw::html

  <a href="../assets/news/images/survey/editors.png">
    <img src="../assets/news/images/survey/editors.png" alt="Editors used by Nim users" style="width:100%"/>
  </a>

Looks like Vim is the winner with almost 30%. Followed by Sublime Text and
Visual Studio Code. Aporia, the Nim IDE, gets a respectable 15.5%. There was
also more than
17% of answers which included "Other" editors, such as: Notepad++, Geany, gedit,
and Kate.

What operating system(s) do you compile for and run your Nim projects on?
_________________________________________________________________________

This question gave us information about the most popular target operating
systems, as well as some of the more obscure ones. We have asked this question
to find out the platforms on which Nim applications run on most frequently.

.. raw::html

  <a href="../assets/news/images/survey/target_os.png">
    <img src="../assets/news/images/survey/target_os.png" alt="Target operating systems" style="width:100%"/>
  </a>

This question allowed multiple choices, so each percentage is out of the total
number of respondents for this question. For example, 80.7% of the
respondents selected "Linux" but only 26.6% selected OS X.

This makes Linux by far the most popular target for Nim applications.
Some "Other" targets included: BSD (OpenBSD, FreeBSD), iOS, Android, and
JavaScript.
It's great to see Nim being used on such a wide variety of platforms.

What operating system(s) do you develop Nim projects on?
________________________________________________________

With this question, we wanted to know what operating systems are used for
development.

.. raw::html

  <a href="../assets/news/images/survey/dev_os.png">
    <img src="../assets/news/images/survey/dev_os.png" alt="Development operating systems" style="width:100%"/>
  </a>

This question also allowed multiple choices and ended up with very similar
results.

You can see that Linux is also the most popular developmental
platform for Nim. But it's more popular as a target platform.

Which version(s) of Nim do you use for your applications?
_________________________________________________________

.. raw::html

  <a href="../assets/news/images/survey/nim_versions.png">
    <img src="../assets/news/images/survey/nim_versions.png" alt="Version use" style="width:100%"/>
  </a>

At the time of this survey, version 0.14.2 was the latest stable release.
It's no wonder that it is the most commonly used release of Nim. It's good to
see that the older versions are not used as often. The high use of ``Git HEAD (devel)``
(nightly builds) isn't surprising, Nim is still evolving rapidly and our
release schedule is not regular or frequent.

Once we go past the 1.0 release, we expect to see much less use of the unstable
``devel`` branch.