Most of the benefit of nix for me is maintaining a configuration for a couple computers in a way that's easy to backup, upgrade, and recover with.
As an example, I was recently playing with Pyinfra which is like a pure Python version of Ansible. It turns out that one of the dependencies uses an archaic version of setuptools and the package owner had inserted some _very_ hacky code that ended up breaking on two of my systems. Now I'm relatively experienced with Nix, so it took me a few hours to track down, but it would have been days if not impossible for a beginner.
Nowadays I package brew along with my machines and as soon as something smells funky in Nix I just manage it with brew. Much more peaceful.
Particularly since I do a lot of ML work - I never figured out how to handle mixed Python/C++ code with dependencies on CUDA.
It's just way easier, even if not reproducible, to build an environment imperatively in Docker.
When I asked a long-time Nix vet why he thinks people leave, he provided the most insightful answer I've seen yet: they just don't try hard enough.
The book is a quick read and helpful: https://a.co/d/ckOzbSq
I no longer meditate as often, but when I do, it’s actually still quite effective. I now see it more as a “retreat” of sorts - I can just kind of dissociate and let the ringing take over. Reading this article brought it back, incidentally.. but I’m ok with it. Once you fully surrender to the noise, you can start to let go of it. It’s the mental resistance that makes it hard to deal with.
Do you think a lot of it has to do with having the right mindset?
The most convincing and interesting thing I’ve read about the US’s science standing is just a reminder that it wasn’t always considered a global science leader. A few people saw the opportunity created by Nazi ideological purges of scientists and built, among other things, Princeton’s IAS.
Considered most charitably, the current administration sees itself as trying to return to an era of imperialism for the good of the country. In this area I wonder how resilient and immobile the scientific community is to these stresses. If I were in charge of science in a wealthy country right now I would be working overtime to brain drain US researchers.
My perception (probably skewed by overly negative media) is that the US is leading a global trend (emphasis on leading). It feels like the world is too busy preparing for war or economic gloom than trying to poach scientists.
I fear we will get ( because we need them ) many thousands more skilled workers in the trades to build more again but they’ll also be too easily bamboozled by charlatans like Trump and vote in policies that will screw us all
I'm going to guess the kids that are inherently interested in this will research it themselves. The ones who are not, won't. I'm one of the former.
While I disagree with the person you're replying to, I find your reply dismissive.
I don't know the behind-the-scnene reasons for this, but I can very very easily apply a very similar situation to this from my experience.
Nix is a full blown functional programming language along with a very rich (and poorly documented, niche, only second to C++ template in error comprehensibility[1]) ecosystem in itself. It's not like "docker" or "kubernetes" where you're mostly dealing with "data" files like yaml, json or Dockerfile. You're dealing with a complex programming project.
With that in mind:
- You have a core team with 1 or 2 people with Nix passion/expertise.
- Those people do most of the heavy lifting in implementation.
- They onboarding the team on to Nix
- They evangelize Nix through the org/company
- They mod and answer all the "#nix-discussions" channel questions
Initially the system is fairly successful and everything is good. over the next 5-6 years it would accumulate a lot of feature asks. The original "Nix person" has long left. Most of the original people have moved either to other projects or not particularly that passionate about Nix. In fact, the "best" developer you have who has inherited the whole Nix thing has only really had to deal with all the shit parts of Nix and the system. They are they ones fixing issues, dealing with bugs, etc. All while maintaining 3 stacks, a Nix stack, a Go stack, and a Rust stack.
Eventually that person/team that's annoyed by maintaining the Nix project wins. They want to own that code. They don't want to use Nix any more. They know what's needed, they want to implement it as part of their main Go stack that they are actively working on. They can optimize things for their special case without having to worry about "implementing it the Nix way" or "doing it upstream".
They promise you (the management who is open to the idea, but trying to understand the ROI) feature parity + top 5 feature asks for the initial release. You trust the team enough to let them do what they think is best.
[1]: LLMs are really good at suggesting a solution given an error message. Nix errors bring them to their knees. It's always "Hmmm.... it appears that there is an error in your configuration... have you tried a `git revert`?"