2022 Nix Survey Results

Background

A quote from our survey post - “Since the Nix community has been growing faster and larger every month, it’s gotten harder to understand who makes up the community and what everyone cares about.” So we’re conducting this survey to improve our understanding of those questions. We hope to use your responses to develop Nix, NixOS, and Nixpkgs to match your needs and come up with new ideas for growing and serving the community.

Conducting this survey on a recurring basis will enable us to also surface trends/patterns across the years.

TL;DR

Nix has been growing significantly, over 30% of Nix users have joined us in the past year. Biggest issues raised were around documentation and difficulties contributing to Nix. Both items will have their priorities increased and we will continue working on addressing them.

Method

We conducted an online survey of 44 questions, 17 of which were open-ended. The survey was split into four subsections - Background Information, Nix User Questions, NixOS User Questions and Misc. Questions. We received 2156 responses. As most questions were not “required” we received a varying amount of responses to each question, the average response per question stood at ~1330 responses.

The survey was open for a one month period, the entirety of March. We announced the survey by way of postings to Nix Discourse, Matrix, Linkedin and Twitter.

Once the survey window was closed we split the analysis into two: multiple choice/answer questions and open-ended questions. Multiple choice/answer was analyzed numerically by compiling the responses by percentage. Open-ended questions were analyzed by reviewing each and every one of the 7k unique responses. The survey analysis was conducted throughout the month of April with over 80 hours logged.

Full Demographic View - Nix by the Numbers (Top 3’s)

Main Regions

  • Europe and Central Asia - 58%
  • North America - 26%
  • East Asia and Pacific - 8%
    KiCm5JyCIgIwzRYQziu_1An97iSp77p7MyITI2OaT3qfMsQT7rZ9EdHCFDr_rkEo52_16PuSIaZkNkgUeWHGXUNm-wN4MCeJ8AJzy27lUju9dfqIcBJX91i686hGzmvGuYvOaLyWOEeDyIoHBA

Age

  • 25 to 34 - 44%
  • 15 to 24 - 22%
  • 35 to 44 - 24%

Occupation (multiple-answer question)

  • Linux Enthusiast - 53%
  • Backend Developer - 40%
  • Fullstack Developer - 31%
    DHkreo4x8gWfNkd4zJzz8AaWQqBbXvq-ORUypCu_6W7OksOVCjjHWW0yWepRlGkKhysqQcrJwHrYdNP6jQTJDOj2AqrIxrfiuVgkPtMeSdie74lQ_4OcMADL4DczAZnG8mjwq-3B6ZwsWNqUzg

Main OS Used (multiple-answer question)

  • GNU/Linux - 90%
  • Windows - 30%
  • MacOS - 27%
    TQ6mm8lrJQgTMYS8Og9Kt83FX83jOJvMTFQ-vq-F-A9Vnaemi_aaA8ty7LYRrn-udFCog5WeJRRhbpXACy8WpuHOZDencOsi2bqxfjqxuI2Gwl-9VogbK4AtunXzKIX3YcdYpCKwk5jXHNMXFg

Unsurprisingly, most of the respondents use Nix / NixOS daily (78%) while a smaller percentage (10%) have been using it on a weekly basis. This is in line with the expectation of who is more interested in providing feedback but should be taken into account as you review the data/takeaways. Although about 3% of respondents signaled that they have stopped using Nix / NixOS at some point, encouragingly we are starting to trend on newcomers! While the majority have used Nix or NixOS in the 1 to 3 year range (37%), 30% of respondents have joined the Nix community in the last year. Our expectation is that as we continue to improve Nix and NixOS we should be seeing a positive trend that leans towards more Nix users <1 year.
8gtl88T33cqHjzdgzWAICCYxstcDvcVuixHYehluCevpO72YslxwxfG1EV3uQ0O4Vp7DYGUza_QLhpd2ni2Vv95vn_Bf3Gt5rQAWOmd_iTLicCq8XJEygVh8Dk4xf28BHk8r2rlu

Nix continues to be used mostly for personal projects (86%) with 61% also simultaneously using it in a work related context. It will be interesting to see how this usage trends over time in subsequent surveys. As this is the first community survey we can’t yet make any conclusions around trends for these numbers - will they trend up, down or remain flat?

Key Themes

We noticed 5 key themes appearing throughout the survey:

Lowering barriers to Nix - Making Nix more accessible

A common thread mentioned in many different forms was the complexity of Nix and NixOS and therefore the need to significantly lower the barrier to entry. Suggestions included improved documentation, examples, and tutorials for new users as well as GUIs or templates for easier installation, configuration, package creation and system management.

Documentation, Documentation, Documentation

Documentation (once again) came up universally across almost all respondents. Key asks in this area revolved around three aspects - onboarding, unblocking and centralization.

  • Onboarding - A majority of respondents highlighted trouble in the onboarding phase. The lack of new user documentation meant users have a tough time understanding how to onboard, following the first few steps, understanding best practices and finding general FAQs.
  • Unblocking - Respondents heavily emphasized the need for better documentation in the realm of tutorials/guides/examples that can help serve in unblocking themselves.
  • Centralization - Many were frustrated with the time it took to locate relevant documentation. Searching for answers took too long and invariably led them to various websites, github repos, and videos - often requiring multiple resources to address the same issue.

Better Debugging

Debugging and error messaging was another major theme for users. Complaints revolved around the effort required to track down answers through debugging, unclear error messages and difficulty in identifying errors in code (time consuming).

Contributing to Nix

Many respondents mentioned the difficulty in knowing how to contribute back to the community. Many said they felt their abilities are not good enough while others said the large backlog of PRs discouraged them from logging additional PRs because they felt they wouldn’t be reviewed and actioned in a timely manner. Some simply did not know how to offer their help.

Reproducibility is the Way

And finally, nearly all respondents came to Nix or NixOS for the advantages of having a declarative, reproducible setup and the vast majority started using Nix through NixOS. Those that stuck with it say they don’t know how they ever did without it! Some, as stated previously, would rather disconnect from technology and lead a life in the woods than continue to work without Nix.

Next Steps

The Nix survey will be recurring and we plan to continue improving it. As previously announced, the goal is for the survey to help all of us understand the needs and wants in our community. This clarity will serve as an asset to all efforts across the Nix community, helping the different teams, contributors and users better prioritize their efforts to address the needs of the community. In particular, it provides invaluable input for the creation of a Nix roadmap.

Some of the pain points identified above are actively being worked on. For example:

  • There have been many contributions recently to improve Nix error messages, with more still planned.
  • A Nix debugger is expected to land soon.
  • There is a Nix UX team that has weekly meetings and hacking sessions to improve the Nix user experience.

Please share your thoughts and feedback regarding the survey so we can continue making it better for next time.

Graphical Representation of Questions
How long have you been using NixOS
Do you regularly use Nix in any form (including NixOS)
Gender
How do you extend Nixpkgs
How long have you been using Nix
In what environments do you use Nix
How often do you use Nix
How often do you use NixOS
How old are you
In what contexts do you use Nix
Which deployment tools do you use with NixOS
In what environments do you use NixOS
On which platforms do you use Nix
What CI do you use with Nix
What do you use Nix for
Which desktop environment or window managers do you use
Which experimental Nix features do you use
Which of the following best describes your current job
Which operating systems do you use at least weekly
Which region do you live in

#Thanks! to @fricklerhandwerk for the updated graphics!
Thank you to everyone that took the time to respond!

72 Likes

Wow, that’s an impressive dedication to this. Thanks for all the work!

17 Likes

I’m a bit surprised by the fact that Flakes isn’t mentioned here. Wasn’t there some question specific about Flakes? I was most interested in the results of that.

5 Likes

It was mentioned in the sneak peek: Nix Community Survey 2022 - Update

Guessing we’ll get some more info on that in time?

1 Like

@ron could you publish numbers on the free-form responses, if you did categorization?

2 Likes

Added all the visuals of responses at the bottom with the help of @fricklerhandwerk
I don’t believe there was an open-ended question specifically regarding flakes, but we can definitely take that as feedback for the next survey.

2 Likes

@ron Flakes was mentioned in the sneak peak:

I’d like to get more details on that

3 Likes

@Infinisil There are these open-ended questions with a total ~650 of mentions of Flakes:

  • What are the top three features/functionalities provided to you by Nix? Please order them from most to least important.
  • If you had a magic wand, what would you add, change, or remove from Nix?
  • What other projects/products in the Nix ecosystem that we haven’t asked about do you use regularly?
  • What other projects/products in the Nix ecosystem that we haven’t asked about have you tried and stopped using?
  • Anything else that you want to tell us?

I agree on the tendency to love xor hate, but cannot tell the fractions from skimming responses.

Absolutely. Would be great to have that data cleaned, as there are many more aspects to it than just Flakes, and they should be captured in a structured way for the next survey.

There are ca. 1890 non-empty responses. Didn’t look at it too closely, and some responses are very thin, so there is an error on the order of 10. The graphs only show counts, so those are correct.

2 Likes

Something i would like to see a question on is around cross compiling. This used to be thought as a great point on nix and… i am not sure where we are right now with it. It feels from the outside that there is noone really working on it or interested in it, but that is a feeling from me, probably not a reality. I don’t even know if it is something the community want anymore. (I think that in particular seeing how many community are adopting the Zig toolchain simply for the cross compiling capabilities, showing that there is a huge appetite. Especially with the slew of ARM chips released recently)

Finally, a personal comment. I understand the feeling to highlight impact and wins of this survey in this. But really, saying “we found all these bad things, but look we are already working on it” does not make me feel like the feedback was heard. It makes me feel like the feedback is considered acknowledged and dismissed because the work has already been done. I totally understand that this may not be the point, but i feel it is better to let the survey stand by itself and link back to the survey in the place dedicated to the initiatives spurred or linked to it.

1 Like

I definitely think it is interesting - it’s great that you can use Nix to specify/build ‘immutable’ system images for other systems, and cross-compiling seems like a useful building block for that - though I haven’t used it that way much, yet. It’s easy to get wrong while packaging though, of course.

The fact that Flakes has the ‘architecture’ so front-and-center in the API’s everywhere perhaps suggests that people still seem to care about this?

I personally didn’t read it that way - I think it’s important to acknowledge the work that has been and is being done, especially in painful area’s, while also confirming that there is yet more to be done. Linking to recent progress also gives a useful starting point for any people who want to take it further.

1 Like
Hosted by Flying Circus.