Hacker News new | ask | show | jobs
by efskap 261 days ago
There's a tool that makes the Nix way a lot more approachable: https://devenv.sh/

e.g. `languages.rust.enable = true` and you're off to the races. You can add scripts, tasks, other packages, etc

3 comments

Having started with Mise, and now being primarily a Nix user — Mise still has the edge for what it does. It supports pinning exact versions of many more languages than devenv does. When devenv doesn't support pinning the version you need, it's straight back to the pain and complexity of overlays and overrides and so on.
Another Nix based alternative.. https://flox.dev/
Any hands on experience using it? I’ve looked at both this and devenv but have some level of reluctance to go with an opinionated wrapper like these as I feel like the second you need to do anything outside of the bounds of what they allow you to do you’re back in regular Nix land anyway
I've been using flox for around a year and have been pretty happy with it. It's had a few growing pains, but overall has been very reliable. I adopted it as I wanted something to install up to date development tools on top of my OS (Debian stable) and looked at flox and devenv, I went with flox as it supported zsh, which devenv didn't at the time.

I only have a few CLI/TUI programs installed with it, I try to keep it to a minimum. Just my editor, several language servers, AI tools and some other VM/container tooling. I haven't needed to break out of the happy path with it as of yet. I follow Nix progress with hopes of it eventually maturing into something better to use directly, but given the current state I prefer the wrappers at this point.

I’ve been using devenv for about 6 months now. I’ve started new projects with it and migrated old ones to use it as well. I’ve also set up my org’s repositories with it. Onboarding devs to projects is simple. All everyone needs on their local machine is git, nix, and devenv. Bonus points for using it with direnv for automatic shell activation when you enter a directory. Direnv allows for IDE integrations as well for project dependencies.