Marketing Team: Can we present Nix/NixOS better?

I’d love to see a “NixOS Pills.”

For installing Nix, I agree that a full-blown GUI is not necessary, but it would be great to have a cmdline program for generating an initial config based on hardware / a couple questions to the user. The few people I know that now use NixOS as a daily driver each spent 1+ full days figuring out how to boot into NixOS (myself included…). Time spent to working boot, with, say, the same initial packages as the installer, is a solveable and important issue.

One aspect I love about Nix/nixpkgs is how welcoming the community is for first-time contributers. We might top the linux distro leaderboard for ratio of contributers:users. We do an awesome job of converting users to contributers. I don’t have the faintest clue how to contribute to Debian/Ubuntu packaging after using the OS for 15yrs, but was contributing to Nixpkgs within weeks. I’m (perhaps naively) not as concerned about this.

I very much want to see the community grow in size as we would all reduce our time burden in packaging software and fixing broken packages with more users.

It might help spread the burden if it was easier to contribute to documentation. For example, it’d be awesome if there were links for each heading that took me to the source file it came from. Although maybe this is treating a symptom–the logical flow of sections doesn’t correspond to source code layout, so it’s hard to find relevant file without grepping. That said, I think the documentation is generally high-quality and beautiful :slight_smile:.

Finally, just to throw in a grenade…

The nix language itself is a major barrier to adoption. The fundamental choices are fantastic, e.g. laziness, file type, etc., but the error messages are often incomprehensible, the standard library is anything but, and the syntax/keywords are, well, unique. I won’t repeat the well-known critiques that started Guix in the first place as this ship has long sailed. But I do think it’s productive to look at Rust’s 2017 roadmap and what they achieved in 2017.

An effort around friendly error messages & perhaps even a Nix language server might go a long way. More bold ideas include gradual typing a la Racket, Julia, or Typescript, and an alternate syntax / language that compiles to Nix, like what ReasonML did for OCaML.

Edit: I just saw https://discourse.nixos.org/t/proposal-for-improving-nix-error-messages/, which is fantastic!

3 Likes