Mainly, it's a fairly steep learning curve. The docs suck (but have gotten way better recently). But mostly it's hard because build systems, and computers in general, are hard.
Nix forces you to deal with the complexity that's usually hidden behind the nice CLI commands you've learned. You have to deal with your language's compiler, its build process, how it composes libraries etc.
It also reveals the flaws of some language's build systems. For example, making Nix packages for Python is, in my experience, a total nightmare. if you're a python dev you're gonna have a bad time. But great build tools (like Rust's cargo, or Elixir's mix) are super easy to work with because those build systems have learned from past's ecosystems' mistakes.
If you're comfy on your Mac using homebrew and don't really care about open source software as a philosophy, then no need to put yourself through learning to use Nix.
Homebrew feels like a nightmare. When I switched back to Mac, the first thing I did was install nix on orbstack and then switched all my dotfiles over. A pain for a month but I couldn't look back. I've yet to run a single command in my Mac terminal besides occasional xcode stuff.
reply