What They Won't Tell You About Nix

Surprise, this is actually a positive post. Its something I think the core team should hear.

I’m a grumpy, picky, complainer who as written just shy of a small book about my annoyances with Nix, how I think it is doomed to be unmaintainable, bad culture, etc. And don’t get me wrong, I still hate every second of dubugging the God awful functional DSL we call nix, the drama, the reproducibility and search issues, etc.

But.

Year after year … Nix somehow doesn’t implode. In fact its quite the opposite. No matter how bad it seems to get, somehow the engineering design of project is getting healthier? And support is growing stronger? And improvements almost feel like they are coming faster?

I’m going to @vcunat cause you’ve been on the receiving end of some of my harshest criticism. And I’m going to @Infinisil because every interaction I’ve seen from you has been positive (so hopefully I can provide some positivity in return)

I never thought I’d see the day nixpkgs was formatted with a standard half-decent formatter, or have pname + version actually required for all packages, or packages be sorted by name instead of some arbitrary heirarchy (which, yeah, isnt finished but still), or lib be pulled out into a separate community flake. Those battles felt unwinabble 4 years ago – like there was nothing I could do or say to convince anyone to make those changes – changes that felt so obvious. And yet they happened without any PR or regular complaining from me.

Even more than that – it seems many of the strongest critics, like me, just can’t stop fricken using nix. There’s nothing like it. And not just using it, but contributing somehow. I’m really proud of how small but effective my Xome tool has been for me. I made better-nix-syntax for VS Code, @vic made a better search as an improvent of my nix version search which itself is built on top of the work of the guys from devbox, and lazamar, and the nix.org search which has gotten so much better. The CLI has become more usable. People are doing stuff (slowly) about the LD_PATH issues.

Nix / nixpkgs is still a mess – and not just rough edges (I don’t intend to retract any of my criticisms). But there is something weirdly unstoppable about it. It has so many reasons to die and yet those reasons seem to get crushed, steamrolled, by some larger invisible distributed force.

So (@ core contributors and @ critics) when you see the 117th “is nix dead” post tomorrow, next week, and next month, remember:

“There are only two kinds of languages: the ones people complain about and the ones nobody uses”

  • Bjarne Stroustrup

Sincerely,
Your friendly nix critic, Jeff

(And Happy Thanksgiving if you’re in the states)

50 Likes