3 ms·
I've been in the ecosystem for years, including working with core maintainers and using it professionally in a large context. I'll just summarize what ultimatel
by aliasxneo 2y ago
I've been in the ecosystem for years, including working with core maintainers and using it professionally in a large context. I'll just summarize what ultimately turned me away:
1. The community is extremely polarizing. Not just politically, but even from just being a general contributor. Depending on who reviews your PR, you can have a very pleasant experience to a downright demeaning one. I get that every community isn't perfect, but after years of dealing with generally the same problem people, I just quit contributing.
2. The Nix language itself is relatively simple to grasp, but for one reason or another people tend to build it up into a rat's nest that becomes nigh impossible to reverse engineer. Because of it's laziness, the error messages are generally unhelpful, and debugging is nothing but pure pain.
3. The thing that makes Nix great (reproducibility) is also it's greatest pain point. Depending on your language, your packaging experience may be simple to downright infuriating. At one point I just stopped packaging NodeJS/Typescript applications and resorted to other means (and this, of course, tended to anger the fanatics). Bottom line is that most software wasn't built with Nix's constraints in mind which means it's generally always a battle to get things packaged correctly.
4. The kingdom building has continued to be a major problem. Just watch the Nix Discourse for a week and you'll likely see the same problem space reinvented at least a few times. For whatever reason, in the Nix world, it feels like _everyone_ thinks they can do it better. This becomes a serious problem when it comes time to actually producing things in Nix. In my time using it professionally, I had to change "libraries" dozens of times due to lack of maintenance/abandonment. I swear each programming language must have a dozen different libraries for packaging, each with strange bugs and missing implementations.
I am one of the hopeful that something new and better will come out of Nix, but I have high doubts it will come from the community itself.
- mtndew4brkfst 2y agoEvery point matches my experiences to a T. Well said.
- ilc 2y agoThis matches what I see when I read the code base.
- kstenerud 2y agoExactly this. My NAS and hypervisor run on NixOS, but I'm probably going to replace them with Debian again once I get around to it. Immutability and reproducibility are nice, but not nice enough to put up with the crazy.
- OhSoHumble 2y ago> The community is extremely polarizing. Not just politically, but even from just being a general contributor. Depending on who reviews your PR, you can have a very pleasant experience to a downright demeaning one. I get that every community isn't perfect, but after years of dealing with generally the same problem people, I just quit contributing. God, I feel this. I ended up just stop trying to seek help because most of the time I'd come across the MOST self-righteous people I've ever met. I don't think Nix will ever be easy to use because half the community genuinely does not care about their fellow human beings enough to write software for their fellow human beings.
- spease 2y ago> I don't think Nix will ever be easy to use because half the community genuinely does not care about their fellow human beings enough to write software for their fellow human beings. This matches my experience as well. I’ve been trying to use nix either as a system package manager, package manager, or OS since 2019. It was first recommended to me in 2016. I’ve tried to use it for C++, Python, and Flutter development. I’ve tried to use it on MacOS and NixOS. There doesn’t seem to be any use case where it’s usable for regular people. I can use it, sometimes, but more often than not it breaks and fixing it becomes the project over the project I was trying to use it for, before I have to give up and abandon it for conventional, less aspirational but actually usable tools. Just the other day it broke because of a MacOS beta update. The suggested fix in a PR to reinstall it didn’t work. The uninstall instructions didn’t work. In the end, after some manual fidgeting and more ad hoc suggestions on PRs plus some informed guesswork on my part having to do with the ca store at various stages, I was able to restore my install to functioning. Every time I ran the install it was text-based and filled my screen with intermediate commands and asked me whether it should execute some command that nobody but a POSIX skilled person would understand. Even after trying to tell it not to bother me. The community has seemed obsessed with flakes that will fragment the ecosystem and lock nixpkgs into backwards compatibility (to some practical degree). Meanwhile when I tried to contribute back to nixpkgs, and an update broke my patch (a derivation that made specifying application derivations roughly as easy as homebrew), no one on the forums could tell me how to fix it. Now it seems like the community, or some fraction of it, is chasing social perfection while their own tool is in such a half-baked state that I can’t recommend it to anybody, and almost nobody technical that I interact with recognizes it. Meanwhile, in the time that nix has been…doing whatever it’s been doing, docker has become the de facto standard for reproducible environments. It’s hypothetically not as good, but practically it’s a whole lot easier to use, so now nix has to push back an entrenched competitor if it wants to become more than just this weird niche tool that nobody’s heard of. I guess if the community doesn’t care if people use their work or not, I can’t blame them if they want to spend their free time on theoretical solutions. But it seems more inability to recognize other people’s hardships and arrogance rather than intentional neglect. Someday I really hope someone figures this out, because having a cross-platform cross-purpose cross-language declarative package manager would be awesome. EDIT: Also, one thing that’s bothered me about the recent Nix drama has been how they treat their “own” people. What I’ve heard or seen project leadership or moderation doing has come across as capricious, spiteful, and entitled towards people who have invested huge amounts of time into Nix; regardless of the politics of the individuals involved. It’s turned me off from continuing to invest in Nix either as a contributor or a user (I was even questioning fixing my preexisting install, but I figured deciding on an alternative and switching right then would take more time). I’m hoping an alternative comes to light, or somehow I’ve misjudged the situation.