7 ms·
I've been using Nix and NixOS since 2022. I can't imagine not using Nix at this point and agree that the reputation for "being too hard" is not quite accurate.
by davidcox143 1y ago
I've been using Nix and NixOS since 2022. I can't imagine not using Nix at this point and agree that the reputation for "being too hard" is not quite accurate. Nix is different - that's the point.
The learning curve is a thing, although I'd argue that it's nowhere near as steep as the tools many of us use every day (C++, Rust, AWS/GCP, etc.)
Nix's "difficulty" IMO comes from defaults that are not sane and a split community. For example, if you use the official Nix installer, flakes are not enabled by default (despite being widely used [1]), but they are if you use the Determinate Systems Nix installer.
Flakes are realistically the only way to obtain the benefits that motivate learning Nix (deterministic pure builds, fine-grained control over dependencies) and are the "primary driver of Nix's adoption" [2]. AFIK there isn't a viable alternative to flakes other than maybe atoms [3], which are relatively new (like "lock files are totally hand made" new [4]). Yet, the official Nix stance on flakes is to wait... for... what?
For a day-in-the-life look at more of Nix's rough edges, I posted some rambles here [5].
[1] https://x.com/d4r5c2/status/1896415101386928539 https://x.com/d4r5c2/status/1896415101386928539
[2] https://x.com/grhmc/status/1896551138104844389 https://x.com/grhmc/status/1896551138104844389
[3] https://x.com/nrdexp/status/1925892763301695978 https://x.com/nrdexp/status/1925892763301695978
[4] https://x.com/nrdexp/status/1925707692447871283 https://x.com/nrdexp/status/1925707692447871283
[5] https://youtu.be/TwVamLq5OHY https://youtu.be/TwVamLq5OHY
- codethief 1y agoDo you have a link that explains what atoms are? This is the first time I'm hearing about them.
- davidcox143 1y agoSort of. There’s a summary by the author of atoms in the Twitter thread linked above. They also link this very lengthy blog post: https://nrd.sh/blog/atom-anatomy/ https://nrd.sh/blog/atom-anatomy/ My understanding of atoms compared to flakes is that they 1) add toml 2) provide a more precise way to reference remote src. The author also claims performance benefits. I haven’t used them personally and can’t speak to their stability or ergonomics.
- codethief 1y agoThanks!
- nylonstrung 1y agoI like your Atoms idea and will follow along IMO 80% of Nix's shortcomings are due to 20 years worth of tech debt that we're all very conscious of By 2030 all the rust rewrites and new tooling will have finally saved us from it
- bfrog 1y agoUnless it becomes a typed language with clearer syntax around what is what, it’s painful at the scale of nixpkgs and nix without nixpkgs just isn’t all that useful.
- nylonstrung 1y agohttps://nickel-lang.org/ https://nickel-lang.org/ is a configuration language similar to a typed Nix I'm hopeful something like this could get adopted in future Nix tooling