To Nix or Not to Nix?
I've been considering hopping on the Nix hype train for a little while now. Its new wiki finally addresses its notorious documentation gap—a big deal for a system built on a functional, untyped DSL.
However, I still have my reservations. It ultimately boils down to one thing—are the tools an end in themselves, or should the tools serve another end? Nix most certainly falls into the former category. It's no secret that running Nix is a time-consuming process. But it's cool. And cool is important.
Further, it actually does have some very real use cases. It's being used at an increasing number of reputable companies. Reproducible builds are objectively beneficial. Functional, declarative operating system and package configuration does sound like a good thing.
But another part of me romanticizes the boring stuff. Make, UNIX command-line tools in general-the tried and true. Ben Rady and Matt Godbolt said it well—boring is awesome.
Balancing coolness with productivity and reliability has been a constant dialogue I've had with myself. For example, I use Neovim, but run LazyVim to circumvent the overhead of maintaining a config. I try to avoid shiny object syndrome. I stick to the basic, foundational tools, and am reserved and skeptical about what's new and cool.
But then again, sometimes it's just fun to explore new stuff. I shouldn't have to rationalize everything through the lens of what's maximally productive. That's something I'm working on.
And, although learning Nix isn't as directly impactful as actually producing something, it's better than nothing. It would probably expose me to new, generally applicable things within the Unix ecosystem, and new ways of thinking. I'll continue to wrestle with this question—the tools vs. their output, basic vs. new. Let me know your thoughts.