Nix Community Survey 2024 Results - Announcements - NixOS Discourse
Nix Community Survey 2024 Results
Announcements
Arsleust
November 2, 2024, 7:23pm
banner nixos survey results
1035×331 56.3 KB
2024 Nix Survey Results
Hello, fellow Nixers! It’s that time of year again!
Like many of you, I’ve noticed that the Nix community is growing steadily. Now, more than ever, we’re eager to understand what our community looks like. Who makes up the Nix community? What tools do we use? How do we navigate the Nix ecosystem? And most importantly, what do we care about?
The Nix Survey, which began a few years ago, has become our annual tradition for gaining insight into these questions. Your responses provide crucial data that Nix teams, contributors, and community members rely on to shape the future of Nix!
tl;dr
Thousands of answers are
amazingly
many. It is incredible how hundreds of people care about the system and take the time to fill in the survey! Interestingly, half of respondents are new users who started using Nix within the past year.
Nearly all respondents use NixOS, solidifying its central role in the Nix ecosystem. Interestingly, only about half of respondents use Nix for software development.
Most users rely on the search functionality (for packages and NixOS options) in their workflow, while the Wiki and the official manual are the go-to sources for help. GitHub issues and source code also remain popular resources.
Respondents want to engage with Nix’s roadmap.
Previous announcements and results
Nix Community Survey 2024
Nix Community Survey 2023
Nix Community Survey 2023 Results
NixOS Community Survey 2022
2022 Nix Survey Results
Total Participation and Response Rate
We received 2,290 full responses this year, marking a 30% increase compared to last year!
Engagement across individual questions was impressively high, with a response rate nearing 97%. This reinforces our efforts to make the survey more streamlined by reducing open-ended text questions in favor of clearer, single-choice options.
Note
For many questions, respondents could select multiple choices. In those cases, the data is displayed using stacked bar charts, where the added percentages of the “Selected” / “Not selected” options sums to 100% on a single choice.
Single-choice questions are displayed using standard bar charts, where the total percentage adds up to 100%.
The Shape of the Nix Community
Respondents primarily hail from Europe (52%) and North America (27.5%), a distribution consistent with last year’s results.
In terms of gender identity, the majority of respondents identify as men (84%). Percentages between those who preferred not to answer (5%) or identified as women (5%) or non-binary (also around 5%) were too close to draw any conclusion.
Nearly all respondents (99%) are GNU/Linux users. Interestingly, 37% also use Windows, which surpasses the 28% who use macOS. On mobile, Android leads with 55% of respondents, compared to 20% using iOS.
This year, we shifted the question about main occupations from multiple-choice to single-choice, and the results were similar to last year. The majority of respondents are full-stack developers (20%), followed by backend developers (14%), with a significant portion of students (19%).
When it comes to programming experience, the data shows a strong bias toward seasoned developers: 52% of respondents have been programming for over 10 years, and only 3% have never programmed. It’s clear that Nix primarily attracts users with considerable programming experience.
Overall, the “shape” of our community remains largely consistent with previous years.
chart_plot_q01
1347×2217 183 KB
chart_plot_q02
1296×1257 113 KB
chart_plot_q03
1425×897 78.9 KB
chart_plot_q04
1560×1137 117 KB
chart_plot_q05
1611×4137 198 KB
chart_plot_q06
1368×897 112 KB
The learning journey, NixOS wins and YouTube fame
39% of respondent have been using Nix for less than a year. This is really cool, because it means newcomers care about Nix/NixOS and are willing to engage with the ecosystem! At the same time, it means that the survey results are biased towards this population. For instance, about as many respondents (41%) describe their Nix skill level as “Beginner”.
chart_plot_q08
1314×1137 109 KB
chart_plot_q09
1356×777 79.1 KB
Actually, by crossing answers to both of these questions, we can uncover what the Nix/NixOS journey looks like. Respondents who have joined this year feel like beginners for the most part, which is fair. That being said, a good portion of respondent who have joined this year describe themselves as intermediate users, which is interesting. Then, most respondents with 1 to 2 years of Nix experience feel intermediate. Sadly, a non neglectable proportion of respondents with 1 to 2 years of experience describe themselves as beginner. Then, interestingly, there seem to be a plateau, where respondents tend to keep describing themselves as intermediate users below 5 years of experience. Then, after 5 years of experience, some of them describe themselves as advanced.
This could be a hint at what the Nix/NixOS journey looks like on average: 1 year to ramp up, then 3~5 years to mastery.
chart_plot_q08_q09
1638×909 127 KB
NixOS is used by 9 out of 10 respondents. That is big!
Though, only 74% of people use Nix to install software, which is surprising since once would expect NixOS users to also use Nix at least to install packages. Could it mean that 16% of NixOS users among respondents only ever install software via their NixOS configuration?
chart_plot_q07
1761×1377 216 KB
But wait, there is more! When crossing both questions “How many years have you been using Nix in total?” and “Which of these best describe your involvement with the Nix ecosystem? I use NixOS: Yes/No?”, to our surprise about 90% of Nix users also use NixOS,
no matter how long they’ve been using Nix
. More specifically, even Nix users who have been using Nix for less than a year also use NixOS. This could be indicative that newcomers either discover Nix via NixOS or onboard NixOS fairly quickly. A more detailed questionnaire would be need to know that. This seems to be validated by the answers to “Did you hear about Nix or NixOS first?” to which 71% responded “NixOS”.
chart_plot_q08_q07sq003
888×1233 94.9 KB
chart_plot_q10
1197×537 12.2 KB
Another unexpected result: the biggest medium from which respondent have found about Nix is now YouTube (23%), more than the usual word-to-mouth from a friend (18%) who probably said “I use NixOS, btw”.
Again, crossing with years of experience of Nix shows that it is mostly respondents who have used Nix for less than a year that have heard about it from YouTube. Is NixOS on the path to becoming mainstream?
chart_plot_q11
1611×1737 165 KB
chart_plot_q08_q11
1824×1149 172 KB
Using Nix
Respondents mostly love the idea behind Nix (87%), which shows that its adoption comes from its groundbreaking ideas.
But also, half of respondents use Nix to get things Nix (52%). We all know that “It just works™” adage by now.
chart_plot_q12
1623×777 119 KB
Almost all respondents use Nix on Linux (94%), and a good proportion also use it on macOS (22%). Like last year, about 10% of respondents use Nix on Windows via WSL.
chart_plot_q13
1485×897 118 KB
But how do people install Nix? The official installer is still at the top (32%) if we exclude NixOS (89%), but it’s worth noting that many respondents have used the DeterminateSystems Nix installer (21%).
chart_plot_q14
1728×897 124 KB
As expected, most respondents use Nix on a personal computer (95%) and/or home server (55%). But also, Nix
is
used in production! (19%)
chart_plot_q15
1761×1017 144 KB
Respondents use mostly the 2.18. A non-neglectable proportion of respondents use Lix.
chart_plot_q16
1188×1377 98 KB
Respondents use mostly either the
unstable
channel (65%) or
24.05
(60%), way above any other channel. Given that many respondents are newcomers, it will be interesting to track if they update to a more recent channel next year as well.
chart_plot_q17
1455×1017 123 KB
When it comes to programming, the top “programming ecosystem” used is NixOS configuration (83%), which is not surprising considering that everyone has to write their own, and one can tend to easily customize it. I think, however, that the choice was misunderstood, as a lot of respondent most likely thought we meant “using NixOS configuration modules” and not “creating NixOS configuration modules”.
Otherwise, Python is at the top (49%), then Bash (46%) and Rust (44%). C, JavaScript, Go and C++ follow (around 24%).
chart_plot_q18
1509×6537 343 KB
Without much surprise, the
flakes
experimental feature is widely used (85%) among respondents, as well as the
nix-command
one (69%).
chart_plot_q19
1761×2457 191 KB
Navigating Nix
Respondents say they interact most with the Package Search and NixOS option search (top 2 of rank 1 and 2). It shows how essential these tools are to Nix users!
When it comes to getting help, they mostly rely on the official NixOS Wiki, the Reference Manual, as well the the source code (top 3 of rank 1 and 2, and top 4 of rank 3 and 4).
chart_plot_q23
2280×777 218 KB
chart_plot_q24
2352×777 193 KB
We can be proud as a community: respondent most often find the help they need!
chart_plot_q26
1734×1017 118 KB
Results
Below are all the quantitative results.
All charts
chart_plot_q01
1347×2217 183 KB
chart_plot_q02
1296×1257 113 KB
chart_plot_q03
1425×897 78.9 KB
chart_plot_q04
1560×1137 117 KB
chart_plot_q05
1611×4137 198 KB
chart_plot_q06
1368×897 112 KB
chart_plot_q07
1761×1377 216 KB
chart_plot_q08_q07sq003
888×1233 94.9 KB
chart_plot_q08
1314×1137 109 KB
chart_plot_q09
1356×777 79.1 KB
chart_plot_q08_q09
1638×909 127 KB
chart_plot_q10
1197×537 12.2 KB
chart_plot_q11
1611×1737 165 KB
chart_plot_q08_q11
1824×1149 172 KB
chart_plot_q12
1623×777 119 KB
chart_plot_q13
1485×897 118 KB
chart_plot_q14
1728×897 124 KB
chart_plot_q08_q14
1485×741 145 KB
chart_plot_q15
1761×1017 144 KB
chart_plot_q16
1188×1377 98 KB
chart_plot_q17
1455×1017 123 KB
chart_plot_q18
1509×6537 343 KB
chart_plot_q19
1761×2457 191 KB
chart_plot_q20
1329×537 14.1 KB
chart_plot_q21
1893×1377 182 KB
chart_plot_q22
1926×1377 215 KB
chart_plot_q23
2280×777 218 KB
chart_plot_q24
2352×777 193 KB
chart_plot_q25
1929×1377 238 KB
chart_plot_q26
1734×1017 118 KB
chart_plot_q27
1416×1377 183 KB
You can download all aggregated data here:
Method
The Nix Marketing Team conducted an online survey of 27 questions, of which 11 were single choice questions, 10 multiple choices, 2 ranking and 4 open-ended.
Questions were designed through PRs at
GitHub - GuillaumeDesforges/nix-survey: Documentation and assets for the Nix Community Survey · GitHub
and conversations on the team’s Matrix channel.
The survey was open for a two months period from July 22th until September 16th. We announced the survey by way of postings to Nix Discourse, Matrix, LinkedIn, Twitter and Reddit.
Once the survey was closed we split the analysis into two: multiple choice questions and open-ended questions. Single and multiple choices questions were analyzed numerically by compiling the responses by count and percentages, and comparing to previous year’s results. Open-ended questions were analyzed by manually reviewing the responses. The survey analysis was conducted throughout the month of October. Code of the analysis is available at
GitHub - GuillaumeDesforges/nix-survey-analysis-2024: Analyze Nix Survey 2024 · GitHub
About governance questions
The most recurrent feedback by respondents was the perceived lack of questions about governance.
We understand this feedback, which was to be anticipated.
The design phase of the survey happened at an early stage of the discussions about governance, and our team are facilitators who help the community - often Nix team members, though it is not restricted to them - design questions openly through PRs and discussions in the Matrix channel.
Our team hopes that, for the next edition, questions on the topic of governance will be designed to best serve the Nix community and its governance.
Final words
Huge thanks to all the people who contributed to the survey:
@fricklerhandwerk
@ron
@Arsleust
@DanielSidhion
@thufschmitt
@djacu
@tomberek
Special mention to
@fricklerhandwerk
who took the time to go through thousands of free-text answers, taking hours to carefully review them and provide useful aggregated insights!
If you’d like to help organize next year’s survey please join our Matrix channel:
#survey:nixos.org
See you next year!
72 Likes
UX design for the "Nix Portal"
Etiquette around exposing a package in a library flake
Call for Input: Changing the Release Schedule to Reduce Work Load for NixOS Users
SC member @tomberek works for Anduril
A statement from members of the moderation team
2024-11-23--24 ZHF 24.11 hackathon -- OST, Zürich (Rapperswil-Jona)
samrose
November 2, 2024, 7:53pm
Nice work & gratitude to all involved!
2 Likes
jakehamilton
November 2, 2024, 8:07pm
I’d like to reiterate just how useful these survey results are, most projects don’t ever get these direct metrics! Thank you to everyone who managed or contributed to the survey. In looking over it, there seem to be a few takeaways for me:
Regionality
Nix still seems to mainly be making headway in Europe, but it is broadly applicable to software across the world. Non-English speaking developers would certainly appreciate translated documentation and guides. Right now the Nix ecosystem is heavily focused on English-only communication despite there being interest from many other locales. In addition, I feel that there is a large opportunity in North America for Nix adoption. So many companies I have worked at could have improved their development and deployment cycles with the use of Nix.
To summarize with some readily actionable items:
Documentation translation
Guides/examples translation
More broad advertisement of Nix as a solution
Nix advocacy from individual contributors at companies
Experimental Features
Having 85% of respondents be flake users should make it extremely clear that flakes are here to stay. An overwhelming majority of respondents use and rely on flakes in their current form. We can talk about them being labelled “experimental” all day, but the reality is that these features cannot be removed or broken without significant churn and incompatibility in the community. It’s time for the Nix team to recognize this and drop the “experimental” part from Flakes. Any further changes from what we have today can be done in future major/minor/patch releases. Don’t let perfect be the enemy of good here, just make it work.
Again, some action items as a TL;DR:
Enable the current flakes implementation by default
Nix Versions
This, as well, should be a wake up call for the Nix team. The overwhelming majority of respondents are not using the latest release of Nix. Only 139 respondents are on 2.22+ while the remaining 836 respondents are using either Nix 2.18 or Lix (originally based on Nix 2.18). The single most important thing that Nix can do right now is cut a working release that can actually be merged into Nixpkgs. Future features aren’t useful if nobody is running anything past version 2.18.
TL;DR:
Nix needs a release that Nixpkgs can use
25 Likes
Unofficial Nix/NixOS Uzbek Community on Telegram
pxc
November 2, 2024, 9:14pm
Wow. By far the best survey yet!
The data on how people discovered Nix and comparing that to years of experience was especially interesting and elegantly presented.
I was surprised to see such a high level of Lix usage already. Congrats to the Lix team for quickly building interest and confidence in their fork!
It stood out a lot, too, how virtually everyone who has been using Nix for a while eventually picks up NixOS.
One nitpick: I’m much too colorblind for the visualization of the data about which resources people rely upon when seeking help. Totally inscrutable to me. An old-fashioned nested list with percentages and response counts might be a nice complement.
Well done! Overall really well-presented and I think the data collected has been more useful and interesting than ever.
3 Likes
Arsleust
November 2, 2024, 10:03pm
Thank you for the feedback. We will make sure to take into account color blindness in the future.
2 Likes
roberth
November 2, 2024, 10:19pm
Nix 2.18 was the default in Nixpkgs and NixOS during the survey, so I would expect the vast majority to have run that version.
2.19-2.21 did see fallout from our work on fixing
fetchTree
, part of its stabilization, and therefore part of flakes stabilization. We can’t commit to hash-for-hash stability when fetching has impurities and bad defaults. Also we’re working towards an actually deterministic version of lazy-trees, as performance is a significant issue in Flakes.
This is a reason why one of the (turned out, later) Lix maintainers held back the Nix version in Nixpkgs.
I don’t want to go into the legitimacy of that, but having 2.18 as a baseline for Lix comparisons benefits that project. I’ll leave it at that.
NixOS 24.11 is scheduled to ship Nix 2.24 as its default, and you’re right that - if/when found - handling any new regressions must be high priority.
17 Likes
ktemkin
November 2, 2024, 10:50pm
Just for reference: one of the main reasons Lix was started was
because
a few of us wanted ato be able to move to a newer Nix, but were blocked by regressions. I agree there’s a causal link there, but think the cause and effect are flipped from what’s implied here.
20 Likes
roberth
November 2, 2024, 11:28pm
The Nix team could have used some help with those regressions back then, but received very little.
It makes me sad, whichever way the causal link is. I don’t think I can know. Probably both? I’ll leave it at that, because I’d prefer to have a forward looking discussion if we’re going to have one, but let’s stick to the topic of this thread for now. What I wanted to point out is that some people’s perceptions of our respective progress-es are biased because of this situation. I hope it’s ok to identify such a bias.
18 Likes
brendanzab
November 3, 2024, 2:31am
Interestingly, since responding to this survey I myself have switched to Lix. I’m sure I’m not the only one!
4 Likes
abathur
November 3, 2024, 3:56am
10
I feel like there’s some minor memory-holing of where we were in, say, 2020.
About 2 years passed between the 2019 release of 2.3 and 2021 release of 2.4–and the change to a 6-week release cadence it marked was a compromise on the previous release process in recognition of the problems caused by going that long without a release.
It was pretty obvious that arbitrarily moving to a 6 week release cadence would cause its own problems. There were obviously issues deterring release, but I would argue it’s fairly likely that having to adapt to that release cadence is and will continue to pay dividends for the project.
(FWIW, I believe the “nix team” formed in 2022.)
I don’t think anyone is or should be
happy
with the number of releases that haven’t been nixpkgs-ready, but about 13 months have passed since the first 2.18 release, which is still a good bit better than ~24.
2 Likes
nim65s
Split this topic
November 4, 2024, 6:17pm
11
25 posts were split to a new topic:
Nix Community Survey 2024 Results: Gender
jaen
November 3, 2024, 10:03am
13
Arsleust:
Though, only 74% of people use Nix to install software, which is surprising since once would expect NixOS users to also use Nix at least to install packages. Could it mean that 16% of NixOS users among respondents only ever install software via their NixOS configuration?
I forgot to respond to the survey (yes, lmao) so maybe there was some clarification there I’m unaware of, but I would be unsure what to pick here exactly. I use NixOS (well, at least on my personal machines) and use Nix to develop software (where feasible), so I kind of “install” software via those - but given you list “installing via nixos configuration” as something this option doesn’t represent, then what does it represent? Using
nix-env
(which I think we would’ve been rather unhappy with instead, as it seems universally discouraged)? Using
nix profile
explicitly (honestly never used them by hand)? Does running a
nix shell
to have a transient shell with a package count or not? If all this was clarified in the survey then sorry for the noise, but if not, then maybe a better option is needed?
5 Likes
fricklerhandwerk
November 3, 2024, 11:30am
14
Amazing work with analysing and presenting the data,
@Arsleust
. I agree with
@pxc
this is the most informative survey so far, and I’m really looking forward to the next one. I learned a lot about what we need to optimize for and how to reduce the effort of preparing and evaluating such a survey, and I hope we’ll manage to implement all of the improvements people were suggesting.
5 Likes
grahamc
November 3, 2024, 8:10pm
21
Thank you for sharing,
@Arsleust
! It looks like q14 was multiple choice. Is it possible to get the data structured as follows?
"chosen": ["NixOS", "With the official installer"],
"count": 123
I would be interested in being able to determine if certain choices are dependent or independent.
Atemu
November 4, 2024, 2:50am
23
jakehamilton:
Having 85% of respondents be flake users should make it extremely clear that flakes are here to stay.
I take great issue with this statement and I think it’s fallacious. You cannot deduce that the current implementation of flakes are good or desirable based on the popularity of its feature flag.
I am one of the data points in this survey that have the flakes experimental feature enabled. I don’t have it enabled because I like flakes or even use them to any real capacity to define my environments and such but because there is no viable way to use the primary nix3 commands without them.
You cannot, for instance, use
nix shell
without flakes. This is an arbitrary limitation, not a technical one: Nix 2.3 had an equivalent (then called
nix run
) which functioned using
NIX_PATH
, without any flakes involved.
For my setup, I’ve set up the
glorified global namespace
flake registry so that its
nixpkgs
points at a nixpkgs checkout in the filesystem that I manage separately. The
NIX_PATH
’s
nixpkgs=
also points at this locaiton the for the legacy commands to consume. In order to get this to work, I had to research how to make nix not do dumb flake shit like
copying the entire checkout to the Nix store every single time I run a
nix
command
which is somehow still an issue in 2024.
Would you say that I consider flakes as an integral feature that ought to sanctioned as good and stable, not requiring fundamental changes to actually function sensibly?
And yet I still have the feature flag enabled.
Secondly, while flakes are a standard to compose Nix projects, they are (to my knowledge) the
only
standard for this purpose. The closest things are
default.nix
shell.nix
which is a convention, not a standard and npins/niv which only concern themselves with fetching/locking as a replacement for
nix-channel
rather than exposing a project’s Nix expressions to be consumable by other Nix projects in a standardised manner.
I think it’s no surprise that people enable a feature to access a standard for which there is no viable alternative standard.
That’s like saying cars are the best mode of transport because you live in a place where transit is intentionally hamstrung and biking or walking is likely to get you killed by a car. You can be of the opinion that cars are not in any way a good or desirable mode of transport and at the same time drive a car every day because there just isn’t any viable alternative mode of transport where you live.
I think much the same applies to flakes.
“Standard for which there is no alternative is good because 100% of people who need something like the standard use it.” does not compute.
You have to show more evidence than the mere fact that people “use” it to claim that it is good.
I’m actually surprised it’s only 85%, meaning that 15% don’t use it at all. If 15% of users don’t use flakes despite being the only standard way to compose Nix projects (which I’d like to remind you that everyone must do to some degree) and are the only way to use nix3, I think that says more about flakes than the other way around.
35 Likes
Arsleust
November 4, 2024, 9:31pm
24
Thank you for the feedback. I’ll be happy to better design these questions with your input. Please do join the matrix channel to facilitate this discussion.
Arsleust
November 4, 2024, 11:28pm
25
@grahamc
made a good point about correlating multiple-choice questions (MCQ).
Here are some correlation plots:
chart_plot_q06_corrs
1164×654 28.8 KB
chart_plot_q07_corrs
1728×1287 208 KB
chart_plot_q13_corrs
1296×771 35 KB
chart_plot_q14_corrs
1131×1014 94.9 KB
chart_plot_q15_corrs
1326×1107 123 KB
chart_plot_q17_corrs
990×801 31.1 KB
chart_plot_q18_corrs
1920×1855 129 KB
chart_plot_q19_corrs
1920×1804 196 KB
chart_plot_q25_corrs
2046×1287 256 KB
ZIP file with PNG charts, vegalite JSON charts and JSON data:
nix-survey-results-mcq_corrs-2024-11-05.zip - Google Drive
10 Likes
paperdigits
November 5, 2024, 12:24am
26
Atemu:
I take great issue with this statement and I think it’s fallacious. You cannot deduce that the current implementation of flakes are good or desirable based on the popularity of its feature flag.
I don’t think that’s what was said or meant at all, rather, I’d guess that they mean that removing flakes would likely be bad, since so many seem to be using them. And I’d guess further that they also hope that some of the issues with flakes can be ironed out and a push made towards removing the experimental flag.
8 Likes
grahamc
November 5, 2024, 12:18pm
27
Thank you,
@Arsleust
! I wonder if you could also correlate q14 (which installer) with:
which operating system they use nix on (q13) (more interesting to me)
skill level (q09)
occupation (q05) (less interesting to me)
1 Like
sternenseemann
November 5, 2024, 3:09pm
28
Atemu:
I take great issue with this statement and I think it’s fallacious. You cannot deduce that the current implementation of flakes are good or desirable based on the popularity of its feature flag.
You cannot even deduce popularity from the survey. The survey is almost certainly not representative which you can already guess from the overinflated amount of new users responding. I would expect that having flakes enabled and being a new(er) user are not statistically independent.
4 Likes
next page →
Hosted by
Flying Circus