Nim Community Survey 2021 Results

The Nim community survey 2021 has been open for a month and a half, and we have received 825 responses (compared to 769 last year) – we think this is a large enough sample to draw conclusions about our users and their habits. Before we go into details, we would like to thank all the people who took the time to respond. We really appreciate the feedback!

The goal of this survey was primarily to determine how our community is using Nim, in order to better understand how we should be improving it.

Do you use Nim?

Based on the answer to this question, the respondents were divided into two groups that each received a separate set of questions.

Do you use Nim?

Approximately two thirds of the respondents use Nim (22% frequently, 39% occasionally), while the remaining third is divided between people who never used Nim (22%) and people who stopped using Nim (16%).

Of those people who don’t use Nim, the most frequent reasons are: “Nim seems immature, not ready for production”, “Nim doesn’t have libraries I need”, “Nim seems too risky for production”, and “Nim doesn’t have enough learning materials”.

Users

How long have you been using Nim?

Compared to the response from last year, our user-base has more Nim experience than before. We have more users that have used Nim for at least two years: 30% this year vs 20% last year, and less new users (people who started using Nim in the last 6 months): 30% this year vs 39% last year.

Where are you from? What is your occupation?

A typical Nim user, just as in previous years, would be a software developer from Europe.

Besides Europe (more than half of our users), our users mostly come from North America and Asia. A half of our users are software developers (50%), and the next largest group are students (13%, 17% last year).

In what age group are you? How many years of programming experience do you have?

We have users from all age groups and all levels of programming experience, proving that Nim can be used both by beginners and veteran programmers.

Just as with Nim experience, we are noticing a trend where our users are on average a bit older (26% Nim users are older than 40, 20% younger than 24) than the year before (23% older than 40, 25% younger than 24).

The older age comes with more programming experience too: this year we have with 53% user having at least 10 years of experience, compared to the 45% last year, and just 6% users with less than 2 years of experience, compared to 10% last year.

What are the technical aspects or features of Nim you like the most?

Same as previously, things that people like about Nim the most are: performance/speed (86%), ease of use (75%), syntax (73%), and self-contained binaries (62%).

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

VS Code continues to dominate, with 62% of Nim users choosing it in the survey. In the second place is Vim/Neovim (39% combined), followed by Emacs and Sublime Text (10% each).

Nim versions

Which version(s) of Nim do you use?

We’re glad to see that the large majority of users are using the latest stable version (1.6.x).

We can partially attribute this to the mostly painless upgrade process:

Has upgrading to a new version of the Nim compiler broken your code? How much work did it take to fix it?

Using Nim

Roughly, what percentage of the programming work you do is in Nim?

This is a statistic that we are never pleased about. Only 16% of our respondents use Nim for the majority of time (60% or more), with more than half of them use Nim only sporadically (20% of time or less).

Do you use Nim at work? If you are not using it at work yet, do you plan to in the near future?

One of the explanations for the poor Nim usage generally can be explained by these responses: less than 30% of the respondents use Nim at work.

We’re glad to hear that the large majority of people who could use Nim at work, are planning to do so in the near future.

What platforms are you targeting?

Compared to 2020 responses, we see a slight increase in people targeting Linux, macOS, web assembly and embedded, and a decrease of JavaScript, Android and iOS.

Learning Nim

If you started using Nim in last two years (2020 and 2021), what learning resources, if any, did you use to learn Nim?

This year we only wanted to see the responses of Nim-newcomers, to see what learning materials are still “fresh” and still used in 2021, but from the amount of responses we see that even our more experienced users answered this question :)

Almost all of our (new) users have read the official tutorials, and about half of them have read “Nim by Example” and/or the “Nim in Action” book. Rosetta Code examples are also a popular choice as a learning resource, followed by “Nim Basics”, “Nim Days” and “Nim Notes”.

What kind of additional learning materials does Nim need?

Just like in the previous survey, the most wanted types of learning materials are code examples and written tutorials. If someone in our community is willing to work on Nim, but has no idea what to do, these tutorials would be a good start.

Nim in 2022 and beyond

What should be our priorities in improving Nim, that would bring the largest quality-of-life improvements? [fixing compiler bugs]

According to the votes, fixing compiler bugs should be our first priority: 2/3 of our users find it very important, with only 13% of votes for “low priority” and “current situation is ok”. We will continue to work on it, and we appreciate any community effort on this: we already have several individuals continuously helping us with fixing compiler bugs (thank you!), and we’d benefit from more.

What should be our priorities in improving Nim, that would bring the largest quality-of-life improvements? [improve tooling]

Improving the tooling is very high on the priority list for our users (it is higher than in 2020, which was higher than the year before too), and especially for those users who use Nim professionally. We admit that, while we worked on improving other parts of the Nim ecosystem, this area was left behind, and the results reflect that.

We’re happy that our partnership with Status continues, with one of our common goals is to improve the developer tooling.

What should be our priorities in improving Nim, that would bring the largest quality-of-life improvements? [documentation] What should be our priorities in improving Nim, that would bring the largest quality-of-life improvements? [more learning materials (tutorials, videos, books, ...)]

These results are basically the same as last year (documentation 2020, learning materials 2020). When it comes to learning materials, where we mostly lean on the community content (for this to improve we need your involvement!), people want to see more written tutorials and code examples.

What should be our priorities in improving Nim, that would bring the largest quality-of-life improvements? [fixing stdlib bugs] What should be our priorities in improving Nim, that would bring the largest quality-of-life improvements? [larger standard library]

According to respondents, fixing bugs in the existing standard library modules should be higher priority than expanding the standard library. Compared to the last year results (bugs 2020, larger stdlib 2020), it is even more clear that fixing existing bugs is the way to go.

Last words

Thank you to each and every one of you who took the time to answer this survey. Your time is precious and we are deeply thankful that you used it to share your feedback.

Please remember that you do not need to wait for a survey in order to give us feedback; of course you’re more than welcome to wait if you wish, but ideally share your feedback with us immediately. We can be found in various places - see the community page for links and instructions on how to get in touch.

If you would like to help us in our 2022 plans, consider contributing or making a donation. You can donate via:

If you are a company, we also offer commercial support. Please get in touch with us via [email protected]. As a commercial backer, you can decide what features and bugfixes should be prioritized.