civodul pushed a commit to branch master
in repository guix-artwork.

commit e70ccdb886792fcf1f11ccfc6f346c29c4032e45
Author: Steve George <st...@futurile.net>
AuthorDate: Wed Jan 15 13:11:17 2025 +0000

    website: add first post convering the Guix User and Contributor Survey 2024.
    
    * website/posts/2024-guix-user-contributor-survey-results-post1.sxml,
    website/static/blog/img/2024-guix-survey-q1.png,
    website/static/blog/img/2024-guix-survey-q2.png,
    website/static/blog/img/2024-guix-survey-q5.png,
    website/static/blog/img/2024-guix-survey-q6.png,
    website/static/blog/img/2024-guix-survey-q7.png,
    website/static/blog/img/2024-guix-survey-q10.png: New files.
    
    Signed-off-by: Ludovic Courtès <l...@gnu.org>
---
 ...guix-user-contributor-survey-results-post1.sxml | 488 +++++++++++++++++++++
 website/static/blog/img/2024-guix-survey-q1.png    | Bin 0 -> 53515 bytes
 website/static/blog/img/2024-guix-survey-q10.png   | Bin 0 -> 47428 bytes
 website/static/blog/img/2024-guix-survey-q2.png    | Bin 0 -> 48327 bytes
 website/static/blog/img/2024-guix-survey-q5.png    | Bin 0 -> 35080 bytes
 website/static/blog/img/2024-guix-survey-q6.png    | Bin 0 -> 50429 bytes
 website/static/blog/img/2024-guix-survey-q7.png    | Bin 0 -> 65093 bytes
 7 files changed, 488 insertions(+)

diff --git a/website/posts/2024-guix-user-contributor-survey-results-post1.sxml 
b/website/posts/2024-guix-user-contributor-survey-results-post1.sxml
new file mode 100644
index 0000000..7c6686b
--- /dev/null
+++ b/website/posts/2024-guix-user-contributor-survey-results-post1.sxml
@@ -0,0 +1,488 @@
+(begin
+  (use-modules (apps base templates components) (srfi srfi-19))
+  `((title . "Guix User and Contributor Survey 2024: The Results (part 1)")
+    (author . "Steve George")
+    (date unquote (make-date 0 0 0 0 15 01 2025 7200))
+    (tags unquote (list "Community"))
+    (content
+      (p "The results from the Guix User and Contributor Survey (2024) are in! 
This is the first time the Guix community has run this type of survey, and 
we're excited to share the results. The goal of the survey was to collect the 
views of both users and contributors, understanding how people adopt Guix, what 
they love and they're experiences contributing to the project.")
+      (p "There were 943 full responses to the survey, of this 53% were users 
and 32% were contributors. The table of survey participants is as follows:")
+      (p
+        (table
+          (caption (b "Table 1: Participant breakdown"))
+          (tr
+              (th "Category") (th "Count") (th "Percentage"))
+          (tr
+              (td "User") (td "496") (td "52.60"))
+          (tr
+              (td "Contributor") (td "297") (td "31.50"))
+          (tr
+              (td "Previous user") (td "92") (td "9.76"))
+          (tr
+              (td "Previous contributor") (td "58") (td "6.15"))))
+
+      (p "First, " (b "thank-you to everyone") " who made the effort to fill 
out the survey. For a volunteer community project it's fantastic to see over 
900 people took part. It's notable that 150 people took the survey who were 
previous users or contributors — it's really great that people are willing to 
make this effort to share their experiences — thanks so much!")
+
+        (p "With this many participants we can see the range of view points 
and experience across our whole community, many of the comments were 
enlightening and are worth reading.  There are links in many of the questions 
so anyone that's interested can go through them.")
+
+        (p "As the results are extensive I've split them into three separate 
posts, in this post we'll focus on the first 10 questions of the survey which 
focused on how users learnt about Guix and their experiences adopting it.")
+
+
+      (h3 "User backgrounds and experience")
+        (p "The survey started by asking participants, " (b "How knowledgeable 
a Linux are you?") " (Q1).")
+        (p
+          (table
+            (caption (b "Table 2: Participant's Linux knowledge"))
+            (tr
+              (th "Category") (th "Count") (th "Percentage"))
+            (tr
+              (td "Beginner (e.g. just getting started)") (td "18") (td "2%"))
+            (tr
+              (td "Explorer (e.g. comfortable installing it and using 
graphical apps)") (td "18") (td "2%"))
+            (tr
+              (td "Intermediate (e.g. comfortable with the command-line and 
configuring many aspects)") (td "445")   (td "47%"))
+            (tr
+              (td "Advanced (e.g. you correct the Arch Linux Wiki!)") (td 
"248") (td "26%"))
+            (tr
+              (td "Expert (e.g. able to contribute to large Free Software 
projects!)") (td "212") (td "22%"))
+            (tr
+              (td "No answer") (td "2") (td "0.21%"))))
+
+        (p "Note that all the percentages in this table, and throughout the 
posts are rounded to make them easier to refer to.")
+        (p (em "Figure 1") " shows this graphically:"
+            (figure
+                (img (@ (src "/static/blog/img/2024-guix-survey-q1.png")
+                        (alt "2024 Guix user survey: GNU/Linux knowledge 
graph")
+                        (style "width:85%;height:85%;")))
+                (figcaption (@ (style "font-weight:bold;")) "Figure 1: Survey 
participants GNU/Linux knowledge")))
+
+        (p "The next question (Q2) was, " (b "How long have you been using 
Guix?"))
+        (p
+          (table
+            (caption (b "Table 3: Guix experience"))
+            (tr
+              (th "Category") (th "Count") (th "Percentage"))
+            (tr
+              (td "Less than 1 year") (td "245") (td "26%"))
+            (tr
+              (td "Between 1 and 2 years") (td "218") (td "23%"))
+            (tr
+              (td "Between 2 and 4 years") (td "234") (td "25%"))
+            (tr
+              (td "More than 4 years") (td "160") (td "17%"))
+            (tr
+              (td "I've stopped using Guix") (td "83") (td  "9%"))
+            (tr
+              (td "No answer") (td "3") (td "0.3%"))))
+        (p (em "Figure 2") " shows these results as a bar chart:"
+            (figure
+                (img (@ (src "/static/blog/img/2024-guix-survey-q2.png")
+                        (alt "2024 Guix user survey: GNU Guix experience 
graph")
+                        (style "width:85%;height:85%;")))
+                (figcaption (@ (style "font-weight:bold;")) "Figure 2: Survey 
participants GNU Guix experience")))
+
+        (p "These two questions already tell us some interesting things about 
Guix users:")
+        (ul
+            (li "Guix users generally have a lot of Linux experience: 50% said 
they were Intermediates who were \"" (em "comfortable with the command-line and 
configuring many aspects") "\". A further 26% said they were Advanced, and 22% 
said they were experts.")
+            (li "Conversely, very few users (~4%) are beginners or exploring 
Linux users.")
+            (li "Many Guix users are new to Guix itself.")
+            (li "Guix's user-base is growing! Almost 75% of the user-base are 
recent converts to Guix, having used it for less than 4 years.")
+            (li "It's a similar distribution of users to Nix's. Their "
+                (a (@ (href 
"https://discourse.nixos.org/t/nix-community-survey-2024-results/55403";)) "2024 
survey") " showed dramatic growth (~65%) in users from 0-2 years, Guix's is 
49%.")
+            (li "It's fantastic to see new users are exploring and trying out 
Guix.")
+            (li "Unfortunately, 9% of users are no longer using Guix, but care 
enough to fill out the survey - so what can be done to help them come back?!"))
+
+
+      (h3 "Adopting Guix")
+        (p "The next few questions explored how participants adopted Guix. 
It's important that new users have a great adoption experience so they'll keep 
using Guix. Conversely, if the initial experience is too difficult, they may 
simply move onto something else without seeing it's benefits!")
+        (p "The first question asked, (Q4) " (b "Why were you initially 
interested in Guix?"))
+        (p "This question tells us what users had heard about Guix, and what 
they discovered during their initial investigation. The answers could impact 
how the project talks about Guix's strengths and capabilities.")
+        (p "For this question users could select more than one answer and many 
did so. The most selected choice was "
+          (b "\"Declarative configuration\"") " where 82% of participants were 
interested in Guix because it had this quality.  The option "
+          (b "\"Scheme, Guile, and Lisp are cool\"") " was second, where 72% 
of the survey's participants were intrigued by Guix because of this aspect. The 
"
+          (b "\"Reproducibility\"") " choice came third with 70% interested in 
this capability."
+          " The detailed results were:")
+        (p
+          (table
+            (caption (b "Table 4: Reason for adopting Guix"))
+            (tr
+              (th "Category") (th "Count") (th "Percentage"))
+            (tr
+              (td "Reliability and transactions") (td "537") (td "57%"))
+            (tr
+                (td "Declarative configuration") (td "772") (td "82%"))
+            (tr
+                (td "Reproducibility") (td "658") (td "70%"))
+            (tr 
+                (td "Reproducible scientific workflows") (td "199") (td "21%"))
+            (tr
+                (td "Fresh packages with latest versions") (td "207") (td 
"22%"))
+            (tr
+                (td "Scheme, Guile and Lisp are cool") (td "677") (td "72%"))
+            (tr
+                (td "Friendly community") (td "256") (td "27%"))
+            (tr
+                (td "FSF certified project (100% Free Software)") (td "404") 
(td "43%"))
+            (tr
+                (td "Alternative architectures (e.g. ARM)") (td "90") (td 
"10%"))
+            (tr
+                (td "GNU Hurd") (td "122") (td "13%"))
+            (tr 
+                (td "Package management on another Linux distribution") (td 
"319") (td "34%"))
+            (tr
+                (td "As a tool for packaging my own software") (td "267") (td 
"28%"))))
+
+        (p "There were 110 choices of 'Other' where participants could add 
their own comments, they're all "
+            (a (@ (href 
"https://codeberg.org/futurile/guix-survey/src/branch/main/2024-survey/Q4-guix-interest-comments.md";))
+                "available to read")
+            ". Looking through them some themes came through:"
+
+            (ul
+                (li (b "Development environments:")
+                    (ul
+                        (li (em "\"General solution to rvm,pyenv etc\""))
+                        (li (em "\"As a Docker replacement for software 
development\""))))
+                (li (b "Documentation:")
+                    (ul
+                        (li (em "\"Initial interest in Nix, but hearing about 
Guix having more pleasant documentation also swayed me towards using Guix 
instead\""))
+                        (li (em "\"Documentation (not exhaustive but 
well-structured), simplicity of the CLI\""))))
+                (li (b "Free Software & GNU:")
+                    (ul
+                        (li (em "\"The possibility of releasing the GNU 
operating system version 1.0"))
+                        (li (em "\"100% free software yes, FSF no (FSFE are 
fine)\""))
+                        (li (em "\"Being a GNU project helped me decide 
between Guix and Nix.\""))))
+                (li (b "Use for Continuous Integration:")
+                    (ul
+                        (li (em "\"used for CI, replacing docker with free 
software and user control\""))))
+                (li (b "Sandboxes and security:")
+                    (ul
+                        (li (em "\"Sandbox environment\""))
+                        (li (em "\"Security: containerized environments 
integrated in the OS.\""))))
+                (li (b "Package definitions:")
+                    (ul
+                        (li (em "\"Writing packages for GNU Guix seemed more 
intuitive than for Gentoo Linux (Guix's hashes > Gentoo's slots)\""))
+                        (li (em "\"Ease of packaging\""))))
+                (li (b "An alternative to Nix:")
+                    (ul
+                        (li (em "\"Wanted to check out alternatives to Nix. 
Particularly interested in 1) grafting, 2) measures against ld.so stat storm, 
3) performant guix packs without proot\""))
+                        (li (em "\"Use Nix a lot, want to explore that design 
space more\""))))
+                (li (b "Guile Scheme and Lisp:")
+                    (ul
+                        (li (em "\"One language for everything\""))
+                        (li (em "\"Not nixlang\""))
+                        (li (em "\"homogeneity of the configuration (one 
language for everything)\""))))
+                (li (b "Full source:")
+                    (ul
+                        (li (em "\"Full Source Bootstrap & Strict Policy to 
compile all software from source\""))
+                        (li (em "\"Full source auditability\""))))))
+
+        (p "The next question the survey asked was, "
+            (b "Which aspect of Guix did you initially adopt?")
+            " (Q5). This is users initial entry point into using Guix.")
+        (p "The detailed results were:")
+        (p
+          (table
+            (caption (b "Table 5: Initial aspect of Guix adopted"))
+            (tr
+              (th "Category") (th "Count") (th "Percentage"))
+            (tr
+              (td "Package manager on top of another Linux distro (guix 
package)") (td "336") (td "36%"))
+            (tr
+              (td "Dotfiles and home environment management on another Linux 
distro (guix home)") (td "41") (td "4%"))
+            (tr
+              (td "Isolated development and runtime environments on another 
Linux distro (guix shell)") (td "58") (td "6%"))
+            (tr
+              (td "GNU/Linux distro as a graphical desktop (guix system)") (td 
"434") (td "46%"))
+            (tr
+              (td "GNU/Linux distro as a server (guix system)") (td "47") (td 
"5%"))
+            (tr
+              (td "As a software build and deployment tool (guix image, guix 
package or guix deploy)")  (td "16") (td "2%"))
+            (tr
+              (td "Other") (td "9") (td "1%"))))
+        (p (em "Figure 3") " shows this as a bar chart:"
+          (figure
+            (img (@ (src "/static/blog/img/2024-guix-survey-q5.png")
+                    (alt "2024 Guix user survey: GNU Guix adoption bar chart")
+                    (style "width:85%;height:85%;")))
+            (figcaption (@ (style "font-weight:bold;")) "Figure 3: Guix 
initial adoption aspect")))
+        (p "The summary is that almost 50% of users initially experienced Guix 
as a GNU/Linux distro: 44% in a graphical desktop configuration and a further 
5% in a server configuration. Just over a third of users (36%) initial 
experience Guix as a package manager on top of another Linux distro. I found 
this surprising as I'd expected most users to use Guix as a hosted package 
manager first, what an interesting result! We can also see there's lots of room 
to develop Guix Home as an adopt [...]
+
+
+      (h3 "Adoption challenges")
+        (p "Adopting any new technology is difficult and time-consuming, so 
discovering what elements users find difficult is important. Q7 delved into 
this by asking, " (b "What were the biggest challenges getting started with 
Guix?"))
+        (p "The results were:")
+        (p
+          (table
+            (caption (b "Table 6: Adoption challenges"))
+            (tr
+              (th "Category") (th "Count") (th "Percentage"))
+            (tr
+              (td "Installing Guix as a package manager on a GNU/Linux 
distribution") (td "80") (td "8%"))
+            (tr
+              (td "Installing Guix System as a full Linux distribution") (td 
"236") (td "25%"))
+            (tr
+              (td "Level of Linux knowledge needed to use Guix") (td "102") 
(td "11%"))
+            (tr
+              (td "Difficulties with the reference material (i.e. the 
manual)") (td "236") (td "25%"))
+            (tr
+              (td "Shortage of how-to tutorials and videos") (td "297") (td 
"32%"))
+            (tr
+              (td "Shortage of examples (e.g. examples of usage)") (td "431") 
(td "46%"))
+            (tr
+              (td "Inexperience with Lisp syntax and/or Guile Scheme") (td 
"374") (td "40%"))
+            (tr
+              (td "Differences between Guix's approach and other Linux 
distros") (td "321") (td "34%"))
+            (tr
+              (td "It was so long ago I can't possibly remember!") (td "44") 
(td "5%"))
+            (tr
+              (td "Other") (td "218") (td "23%"))))
+        (p (em "Figure 4") " shows this as a bar chart:"
+          (figure
+            (img (@ (src "/static/blog/img/2024-guix-survey-q7.png")
+                    (alt "2024 Guix user survey: GNU Guix adoption challenges 
bar chart")
+                    (style "width:85%;height:85%;")))
+            (figcaption (@ (style "font-weight:bold;")) "Figure 4: Guix 
adoption challenges")))
+        (p "As we can see the biggest challenge is a  " (b "Shortage of 
examples (e.g examples of usage)")
+          ". And, if we consider shortage of how-to tutorials (32%) to be 
similar then overall we can see there's a clear need for focused 
goal-orientated documentation with examples. Inexperience with " (b "Lisp 
syntax and or Guile Scheme") " and " (b "Differences between Guix's approach 
and other Linux distros")
+          " both speak to the unique nature of Guix and the approach it takes: 
perhaps there are implications for how Guix's tooling can make initial adoption 
as easy as possible.")
+        (p "There were 218 comments, which are "
+          (a (@ (href 
"https://codeberg.org/futurile/guix-survey/src/branch/main/2024-survey/Q7-guix-adoption-challenges-comments.md";))
+               "worth reading through")
+              ". I've summarised them into broad themes:"
+          (ul
+            (li (b "Conceptual complexity") ": comments about the overall 
knowledge required being too much. Examples are:")
+              (ul
+                (li (em "\"Understanding the concepts on which guix runs\""))
+                (li (em "\"managing storage space, generations, GC roots, 
profiles; generally grasping the concepts\""))
+                (li (em "\"Some interesting free software is only available 
for other distros, it's hard to adapt to a system without file system 
hierarchy\"")))
+            (li (b "Lack of drivers") ": issues caused by drivers not being 
available. Examples are:")
+              (ul
+                (li (em "\"can't really use linux-libre on the machine I 
installed it on (lack drivers)\""))
+                (li (em "\"Getting an initial installation with working 
non-free wifi\""))
+                (li (em "\"hiding nonguix\"")))
+            (li (b "Efficiency") ": comments regarding overall resource usage 
making Guix slow or unusable. Example comments are:")
+              (ul
+                (li (em "\"The evaluation of Guix is slow and 
resource-intensive. My laptop was no match for it, I had to change it.\""))
+                (li (em "\"Guix experimentation is still too slow. Make 
experimenting faster for new users by identifying rate limiting steps and 
speeding them up\""))
+                (li (em "\"Slow network when download guix substitute\"")))
+            (li (b "Missing packages and services") ": issues where Guix 
doesn't contain a required package or service.")
+              (ul
+                (li (em "\"missing packages I needed and getting them 
upstreamed after I packaged them\""))
+                (li (em "\"Unpackaged free software, and nonfree software\""))
+                (li (em "\"Coming from Nix: smaller, less up-to-date package 
set, substantially fewer home services\"")))
+            (li (b "Quality and reliability") ": issues of quality and 
reliability that made Guix difficult to use. Some comments:")
+              (ul
+                (li (em "\"hard time fixing config errors with reports\""))
+                (li (em "\"Broken integration between some components 
(packages and services)\""))
+                (li (em "\"Basic setup is pretty easy on paper, but in 
practice sometimes it breaks my system and I need to fiddle with shell profiles 
and environment variables and installing extra packages to get Guix programs 
play nice with native programs. And I feel like this kind of breakage isn't 
acknowledged or addressed enough.\"")))
+            (li (b "Practical guides, how-to's and examples") ": situations 
where a lack of direct instructions or examples made Guix difficult to use.")
+              (ul
+                (li (em "\"Guix-unique bugs and issues that I can't find an 
answer to online\""))
+                (li (em "\"Lack of docs mostly, common patterns, the fact 
that's it's a pain the butt to make things works for some ecosystems on the 
Guix distro (e.g any app written in Golang, Rust, JS,TS..)\"")))
+            (li (b "Error messages") ": poor experience caused by error 
messages that are difficult to understand. Example comments:")
+             (ul
+               (li (em "\"Horrible error messages\""))
+               (li (em "\"Difficult guile scheme error messages!!\""))
+               (li (em "\"Hard-to-understand error messages\"")))
+            (li (b "Configuring on a hosted distribution)")  ": issues caused 
when using Guix on top of another distribution. Some comments:")
+              (ul
+                (li (em "\"I found the setting of numerous variables and the 
comments recommending I do so contradictory and so confusing\""))
+                (li (em "\"SELinux blocked installation of packages: 
remount\""))
+                (li (em "\"Problems using it on a foreign distro. Guix Home 
particularly assumes that you are using guix system, I had to tweak the 
.profile a lot to get it working.\"")))
+            (li (b "Encrypted boot / LUKS") ": encryption in various forms 
unavailable or missing certain features:")
+              (ul
+                (li (em "\"Very poor support for full disk encryption.\""))
+                (li (em "\"Also using a LUKS encrypted root file-system was a 
challenge at the time i started Guix\"")))
+            (li (b "Language ecosystems (e.g. Rust, PHP)") ": issues due to 
missing packages, or attempts to package, from certain language ecosystems.")
+              (ul
+                (li (em "\"Missing packages, and the difficulty of packaging 
rust or npm packages on guix dissuaded me from contributing them\"")))
+            (li (b "Mac availability") ": situations where being unavailable 
on Mac meant Guix could not be adopted.")
+              (ul
+                (li (em "\"Linux only. nix has macos support too which would 
help adoption in a team environment.\""))
+                (li (em "\"No MacOS official distribution\"")))))
+
+
+      (h3 "Adoption satisfaction score")
+        (p "The survey asked (Q6), " (b "How satisfied were you with your 
experience adopting Guix?"))
+        (p "This question explores the users overall satisfaction with the 
initial steps of researching, installing and initially using Guix. The question 
asked the participant to score their satisfaction on one of 5 levels.")
+        (p
+          (table
+            (caption (b "Table 7: Guix adoption satisfaction"))
+            (tr
+              (th "Category") (th "Count") (th "Percentage"))
+            (tr
+              (td "Very Dissatisfied") (td "22") (td "2%"))
+            (tr
+              (td "Dissatisfied") (td "113") (td "12%"))
+            (tr
+              (td "Neutral") (td "154") (td "16%"))
+            (tr
+              (td "Satisfied") (td "408") (td "43%"))
+            (tr
+              (td "Very Satisfied") (td "226") (td "24%"))
+            (tr
+              (td "Can't remember") (td "20") (td "2%"))))
+        (p "See " (em "Figure 5") " for a visual representation: "
+          (figure
+            (img (@ (src "/static/blog/img/2024-guix-survey-q6.png")
+                    (alt "2024 Guix user survey: GNU Guix initial adoption 
satisfaction score")
+                    (style "width:85%;height:85%;")))
+            (figcaption (@ (style "font-weight:bold;")) "Figure 5: Guix 
initial adoption satisfaction bar chart")))
+        (p "This is probably the most important question in the entire survey 
when it comes to growing the number of Guix users. Overall, it's positive with 
Very Satisfied (24%) and Satisfied (43%) meaning that the majority of users are 
happy with their initial experience. The comments above show there's lots of 
room to find small ways to move users initial experience from Satisfied to 
being overjoyed! Unfortunately, on the other end of the scale 14% of users who 
were unhappy and the 16% [...]
+
+
+      (h3 "Which GNU/Linux distribution do you use Guix on?")
+        (p "As we saw earlier just over a third of users (36%) initial adopt 
Guix as a package manager on top of another GNU/Linux distribution. Question 8 
asked, "
+           (b "Which GNU/Linux distribution did you use Guix on top of?"))
+        (p "The results:")
+        (p
+          (table
+            (caption (b "Table 8: Hosting Linux distributions"))
+            (tr
+              (th "Category") (th "Count") (th "Percentage"))
+            (tr
+              (td "Alpine Linux") (td "9") (td "0.95%"))
+            (tr
+              (td "Arch Linux") (td "81") (td "8.59%"))
+            (tr
+              (td "Fedora Linux") (td "33") (td "3.50%"))
+            (tr
+              (td "Gentoo Linux") (td "19") (td "2.01%"))
+            (tr
+              (td "NixOS") (td "22") (td "2.33%"))
+            (tr
+              (td "Ubuntu") (td "111") (td "11.77%"))
+            (tr
+              (td "Other") (td "170") (td "18.03%"))))
+        (p "I errored when creating this question and somehow missed out 
Debian! Over 117 answers in the 'Other' category said Debian so it's the most 
popular distribution to use Guix on, Ubuntu is second (111) and then Arch Linux 
was third (81). There were also plenty of mentions of OpenSUSE, RHEL/CentOS and 
Void Linux.")
+
+
+      (h3 "Why did you stop using Guix?")
+        (p "Question 9 was targeted at those that had previously used Guix but 
had stopped. It asked, "
+          (b "You previously used Guix but stopped, why?"))
+        (p "This was a comment question and we got some fantastic answers. 
There were 147 comments from participants, which lines up well with the 150 
people who took the survey and classed themselves as a 'Previous user' or 
'Previous contributor'.")
+        (p "This was a free form text answer, the "
+          (a (@ (href 
"https://codeberg.org/futurile/guix-survey/src/branch/main/2024-survey/Q9-guix-previous-users-comments.md";))
+                "full comment are well worth a read through")
+            " . As before I've clustered the comments into themes:"
+          (ul
+            (li (b "Complexity of maintenance too high") ": many commented 
that the overall experience of using Guix was too time-consuming and complex. A 
slow configuration feedback loop, inefficiency, and the overall maintenance 
burden were all concerns. Example comments:")
+              (ul
+                (li (em "\"I needed to switch to a distribution that required 
less of my attention when I started my new job. I switched to NixOS with the 
intention of going back to Guix at a later date, but I am now reliant on so 
many parts of the nix ecosystem that I don't think I'll ever actually switch 
back.\""))
+                (li (em "\"I was doing more work trying to make my setup 
perfect or fix issues with it rather than working on my other projects. A lot 
of things with my setup either broke with time or were just not compatible (My 
setup couldn't handle printing, screen sharing, audio, suspending/hibernation 
and I just didn't know how to fix all that) and I couldn't deal with it any 
longer, I simply went back to whatever worked for me earlier.\"")))
+            (li (b "Learning curve too difficult") ": many aspects of Guix are 
completely different from how other distributions achieve the same result. In 
some instances this learning curve was too difficult and/or there was not 
enough assistance. Example comments:")
+              (ul
+                (li (em "\"Mainly the learning curve is huge for a long-time 
*nix systems user. I knew it would be difficult to adapt, but for each and 
every little thing I would need to go dig how to fix something. Doing proper 
power management on my laptop, setting up mail (I've been using Gnus for years, 
but still...!), compile and test mainline kernels on my laptop, etc. It's 
awesome to learn all those things, but they all require time. And that's where 
I had to give up: I wanted a ( [...]
+                (li (em "\"But the problem ends up to be that the whole 
ecosystem around guix basically assumes super knowledge about what scheme is, 
how to use it and worse of all deep comfort and will to use emacs as the main 
interface to it all. It's too high of a hurdle to dedicate when just wanting to 
write some files, evaluate them, declare some packages, shells, etc. I have 
zero interest and will to use or learn emacs and putting it so much upfront 
does a huge disservice to the wh [...]
+            (li (b "Lack of drivers within the distribution") ": the lack of 
drivers to enable hardware was the most commented on specific issue. Some 
examples of those comments:")
+              (ul
+                (li (em "\"As a long time Arch user I found it difficult to 
configure Guix for daily use. I need proprietary video drivers (and possibly 
other bits to get everything working?) and I don't remember if I ever got those 
up and running.\""))
+                (li (em "\"I have a lot of respect for the technical side of 
the project, but the politics of free software absolutism (to the point where 
we are supposed to tell people to replace perfectly functional hardware in 
order to use Guix, instead of telling them about Nonguix) and the user hostile 
email based contribution workflow made me realize Guix would likely never reach 
critical mass, so my time is best applied elsewhere.\"")))
+            (li (b "Unavailable proprietary software") ": proprietary software 
not being available was also mentioned (not quite as much as drivers), often in 
comments that focused on Guix not being practical as a distribution for 
professional use. Some specific comments:")
+              (ul
+                (li (em "\"Lack of proprietary software, primarily CUDA, MKL, 
etc.\""))
+                (li (em "\"Although I like FSF license purity, NixOS was much 
more amenable to get working on various hardware & did not preclude using 
Nvidia CUDA.\"")))
+            (li (b "Efficiency and resource usage") ": there were comments 
about guix pull taking too long, whether this was actually the fault of Guix 
pull locally or remote servers, the overall experience was mentioned multiple 
times. Some example comments were:")
+              (ul
+                (li (em "\"The core tooling was far too slow (e.g. pulling 
updates, etc.); Nix is slow, but nowhere near as slow as Guix (was back then, 
but I'm not aware of the kind of order of magnitude improvements that would 
have been required). Core functionality was not reliable enough for a server 
operating system (shepherd, logging, system rollback). Arcane contribution 
requirements (no provisions for non-Emacs users, e.g. regarding code 
formatting; baroque and counterproductive  [...]
+                (li (em "\"Guix pull is too slow. The guix ci servers are 
inaccessible from my location, requiring a proxy. Guix System does not have a 
large enough community to be reliable and universal enough for daily use (in my 
opinion)\"")))
+            (li (b "Missing packages and services") ": there were lots of 
comments about both missing packages or services and this making it difficult 
to use Guix. Example comments:")
+              (ul
+                (li (em "\"Much of the software I needed wasn't packaged, and 
it eventually became frustrating. I tried to package what I could, but some 
things felt extremely difficult, E.g., `jujutsu` `ghc`. However unfortunate it 
may be, I also rely on various pieces of nonfree software, and Guix was working 
against me in that regard. I do not like that I have to use nonfree software, 
but I often have no choice.\""))
+                (li (em "\"Still use to some extent as package manager on 
foreign distro. For desktop use, waited for usable KDE Plasma packaging, and 
for laptop, coverage of working builds for ARM. Hoping to return; there is 
progress on both of these fronts. Size of store and speed of guix pull where 
also issues (on limited hardware).\"")))
+            (li (b "Out of date packages") ": meaning that although there was 
a package within Guix it was lagging, with particular concern about security 
implications. Example comments:")
+              (ul
+                (li (em "\"Outdated or absent FOSS software (ex: Gnome, KDE, 
etc)\""))
+                (li (em "\"Too many packages updates were lagging behind, this 
was raising concerns for me from a security point of view\"")))
+            (li (b "Quality and reliability") ": general issues with quality 
and reliability that undermined the users belief that the project was ready for 
real use. Examples:")
+              (ul
+                (li (em "\"An upgrade broke the system and crippled it from 
booting. Moved on to other distribution\""))
+                (li (em "\"I like the whole idea of guix. But it feels like it 
is not really ready.\"")))
+            (li (b "Guix not fully supporting disk encryption") ": full disk 
encryption in a variety of forms came up multiple times as a Guix weakness. 
Examples:")
+              (ul
+                (li (em "\"Guix does not support an unencrypted /boot 
partition. But also does not fully support LUKS2 due to grub.\""))
+                (li (em "\"I love Guix System, but it still misses a few 
quality-of-life improvements, such as better support for full disk encryption 
on install (entering two passwords!) and faster servers for South America. I 
kid you not, it takes me several hours to install a base system with MATE!\"")))
+            (li (b "Missing guides/how-to's and examples") ": we've already 
seen that lack of specific how-to documentation was an issue, there were 
various comments to that:")
+              (ul
+                (li (em "\"Examples were insufficient, documentation expected 
much more in-depth linux knowledge. I would like to try again using it, as I 
love the concepts of it and I find that I resonate with the people representing 
Guix, and while I am on NixOS currently I find some social aspects of the Nix 
project concerning.\""))
+                (li (em "\"I switched back to NixOS due to more Community 
support\"")))
+            (li (b "Free Software as a constraint") ": Free Software and GNU 
as an organisation were commented on as a constraint to having a practical, 
usable system that met user's needs. Note that the next bullet is the reverse 
of this. Some example comments:")
+              (ul
+                (li (em "\"No ease of access to the tools I depend on without 
jumping through hoops. VSCode, Chrome, Discord, all required flatpaks. Gnome 
was extremely out of date and didn't work well with flatpaks making it even 
harder to use them. NVIDIA drivers unavailable. I would have to work entirely 
around Guix to make it usable for the real world. I can't just convince my 
friends to stop using Discord. I can't just convince my job to not depend on 
VSCode extensions. I have spent [...]
+                (li (em "\"Exclusion of all references to non-free software 
(and no suggested step-by-step easy setup) made a full-featured initial 
installation untenable.\"")))
+            (li (b "Not enough GNU") ": there were also some comments that the 
Guix project was not sufficiently supportive of GNU and/or Richard Stallman:")
+              (ul
+                (li (em "\"I am disappointed that you veered off the course of 
freedom and added nonguix. Also that you hate on RMS.\""))
+                (li (em "\"I stopped using Guix after it ran a campaign 
against Richard Stallman. I don't plan to return back.\"")))
+            (li (b "Language ecosystem issues") ": as tools like Docker, and 
languages like Go and Rust become more important, friction with them is more of 
an issue for users:")
+              (ul
+                (li (em "\"my use case is to package tooling for other distros 
and use it to build docker images reproducibly for use in CI environments. it 
does not work for this use case very well. can't run guix daemon inside a 
container\""))
+                (li (em "\"Lack of packages, stance on 100% reproducibility 
which makes packaging software with transitive dependencies hard, slow 
evaluator, obscure communication and collaboration mediums, patches take months 
to even get a review, cryptic error messages.\"")))
+            (li (b "Nix is more modern or practical") ": many users seem to 
have explored Guix as an alternative to Nix. Example comments:")
+              (ul
+                (li (em "\"I looked at Guix as an alternative to NixOS, and 
like its design a lot, but struggle with the 100% free software approach as I 
need some non-free software (for various reasons, hardware support, required by 
work, etc.). I'm aware of the non-guix channel which mostly solves this, but 
having to compile most things myself got too cumbersome for me — I wish there 
was a more complete substitute server for that channel, or perhaps even a 
derivation based on guix with [...]
+                (li (em "\"There were too many packages missing or so out of 
date as to be de-facto missing. Using Guix was therefore much harder to use 
than Nix, where I had more packages (both Free and non-Free) and they were more 
up to date.\"")))
+            (li (b "Old-fashioned communications") ": here were some comments 
about communications within the project being old-fashioned, both from general 
users and those that had tried to contribute:")
+              (ul
+                (li (em "\"There seems to be shortage of packages and slow 
development. Email or only free software is definitely an hindrance to many 
people to daily drive guix. It has become hit and miss for me, so staying with 
nixos as its rich and I can followup on its development easily on git repo, 
discourse, matrix and all.\""))
+                (li (em "\"The main two reasons are that I find the 
irc/email/emacs flow very hard to work with and I do not feel safe in the 
mailing lists.\"")))
+            (li (b "Unavailable on Mac OSX") ": there were a few comments that 
in a professional context the fact that Guix isn't available for MacOS made it 
difficult to use:")
+              (ul
+                (li (em "\"Being unavailable on macOS. I have my nix home 
manager setup on both linux and macOS. Also the lack of a number of packages 
was a challenge. Like typst, bottom, hugo, tree, ruff, and sd for example. I am 
interested in becoming a maintainer but I want my setup to also work in 
macOS.\"")))
+            (li (b "Incompatibility with hosting Linux distro") ": running 
Guix on top of another distribution was confusing, particularly for graphical 
programs:")
+              (ul
+                (li (em "\"Guix home breaking Fedora. Troubles with binary 
applications due to the non-fsh nature.\""))
+                (li (em "\"Setting up the package manager & daemon was 
confusing. The command \"guix pull\" felt excessively slow. A lot of packages 
were not up to date. Breaking the FHS\"")))
+            (li (b "Poor contributor experience") ": the patch process itself, 
slow reviews and inconsistency in response were all mentioned as issues. 
Examples:")
+              (ul
+                (li (em "\"I still use Guix, but am a previous contributor. 
Important patches (for me) which I submitted were/are ignored, so I’ve stopped 
contributing.\""))
+                (li (em "\"Perceived Inconsistent patch reviews. I did create 
couple of patches for guix, I do believe to contribute to project that I use. 
Sometimes I see patches getting stuck without feedback on them (not necessarily 
mine), the process to review patches is unclear to me and most likely to most 
people. Also guix lack automation to help everyone understand what is going on, 
if patches break rules, if this trivial change could be merged easily, etc. 
maybe it’s there for y [...]
+                (li (em "\"I was passed over for commit access (even though I 
surpassed the 50 commit requirement) because I could only find 2 people to 
vouch for me, not 3. Then my patches stopped being merged, and some 
2-year-pending patches I sent were closed without good reason. With the way 
Guix is run and how they treat contributors, it is an insulting/degrading 
process that I am no longer willing to put myself through.\"")))))
+        (p "As we can see there are a wide variety of reasons why users 
stopped using Guix, many of them are similar to the challenges that many users 
find, but they're even more powerfully felt by these users. It's really useful 
to have these themes and comments captured, as contributors may be able to pick 
up some of these issues and work to resolve them!")
+
+
+      (h3 "How important is Guix?")
+        (p "Focusing back on all users, the next question was, (Q10) " (b "How 
important is Guix in your computing environment?"))
+        (p "There was a good range of answers:")
+        (p
+          (table
+            (caption (b "Table 9: Adoption challenges"))
+            (tr
+              (th "Category") (th "Count") (th "Percentage"))
+            (tr
+              (td "Not using") (td "97") (td "10%"))
+            (tr
+              (td "Tinkering") (td "156") (td "17%"))
+            (tr
+              (td "Slightly important") (td "147") (td "16%"))
+            (tr
+              (td "Moderately important") (td "194") (td "21%"))
+            (tr
+              (td "Important") (td "133") (td "14%"))
+            (tr
+              (td "Essential") (td "216") (td "23%"))))
+        (p "A visual representation:"
+          (figure
+            (img (@ (src "/static/blog/img/2024-guix-survey-q10.png")
+                    (alt "2024 Guix user survey: GNU Guix's importance in 
users computing environments bar chart")
+                    (style "width:85%;height:85%;")))
+            (figcaption (@ (style "font-weight:bold;")) "Figure 6: Guix's 
importance in users computing environments")))
+        (p "This is an interesting mixture which is probably reflective of 
many new users, and how Guix is used as a package manager on top of another 
distribution. Over a third of users consider it to be essential/important where 
it would be difficult to replace, while the bottom third are tinkering or 
exploring it.")
+
+
+      (h3 "Some thoughts")
+        (p "We've looked at the first 10 questions of the survey which covered 
the composition of the Guix community, initial adoption and satisfaction, and 
challenges that led to users moving away from Guix. The first thing to say is 
how fantastic the response has been to the survey, it's amazing to have over 
900 participants!")
+        (p "Some big take-aways:")
+        (p
+          (ul
+            (li "Interest in declarative configuration, reproducibility along 
with Scheme, Guile and Lisp are bringing in lots of new user - around 50% have 
been using Guix for less than 2 years")
+            (li "Guix users are knowledgable Linux users who are comfortable 
being hands-on with their system")
+            (li "Around 50% of users adopt Guix as a GNU/Linux distribution, 
36% as a hosted package manager on top of another Linux distro")
+            (li "The survey produced great feedback from current and previous 
users on areas where the project can improve")
+            (li "Around 67% of users were satisfied (or very satisfied) with 
their initial adoption experience")
+            (li "Guix is essential or important for over a third of users, 
part of their environment for the next third, and being explored by the last 
27% of users")))
+        (p "The next post will cover more of the survey - which parts of Guix 
are most used, what sorts of deployments are being used, architectures and 
drivers details, and how users view contributing to the project financially.")
+
+    ) ;; end of content
+    ) ;; end of list
+) ;; end of end
diff --git a/website/static/blog/img/2024-guix-survey-q1.png 
b/website/static/blog/img/2024-guix-survey-q1.png
new file mode 100644
index 0000000..887c717
Binary files /dev/null and b/website/static/blog/img/2024-guix-survey-q1.png 
differ
diff --git a/website/static/blog/img/2024-guix-survey-q10.png 
b/website/static/blog/img/2024-guix-survey-q10.png
new file mode 100644
index 0000000..024655e
Binary files /dev/null and b/website/static/blog/img/2024-guix-survey-q10.png 
differ
diff --git a/website/static/blog/img/2024-guix-survey-q2.png 
b/website/static/blog/img/2024-guix-survey-q2.png
new file mode 100644
index 0000000..30b57b6
Binary files /dev/null and b/website/static/blog/img/2024-guix-survey-q2.png 
differ
diff --git a/website/static/blog/img/2024-guix-survey-q5.png 
b/website/static/blog/img/2024-guix-survey-q5.png
new file mode 100644
index 0000000..bc896f9
Binary files /dev/null and b/website/static/blog/img/2024-guix-survey-q5.png 
differ
diff --git a/website/static/blog/img/2024-guix-survey-q6.png 
b/website/static/blog/img/2024-guix-survey-q6.png
new file mode 100644
index 0000000..557437d
Binary files /dev/null and b/website/static/blog/img/2024-guix-survey-q6.png 
differ
diff --git a/website/static/blog/img/2024-guix-survey-q7.png 
b/website/static/blog/img/2024-guix-survey-q7.png
new file mode 100644
index 0000000..9bc6e5a
Binary files /dev/null and b/website/static/blog/img/2024-guix-survey-q7.png 
differ


Reply via email to