Hacker News new | ask | show | jobs
by mrbonner 358 days ago
My actual usage is a mix-bag. For general tools and utilities, I often just use Nix and Home Manager. It is a pain for setting up but once you got it working, it's basically fire and forget. Whenever you need a new app, you just add that to the `home.nix` and call it a day.

Now, for language development environment, I won't use Nix and just prefer to whatever that language popular choice. For instance, in Python I use uv. For Node I use npm (or yarn or bun or whatever in fashion now), Java has mice, Rust has rustup.

It is not a one-size-fit-all solution but I am not sure if we can ever achieve that.

5 comments

I'd argue nix is the closest to a one-size-fits-all solution if you're using stuff like uv2nix and npm equivalents
yes, but I now have to deal with all the oddities by combining them.
Yeah it's hard to get excited about these sorts of tools when Nix exists.

I think for development purposes it's a smart idea to use the language specific conventions/ecosystem.

I love Nix flakes, but for some languages it is still very painful to use.

For example, Julia has an unusual package management system and lots of packages still fail under flakes.

>Rust has rustup.

Do you mean cargo?

Cargo's the package manager and build tool, and doesn't really replace mise. Rustup, as the toolchain version manager, is the mise-equivalent for the Rust ecosystem.
Rustc is the compiler, rustup is the updater, cargo is the package manager.
Java has mice? I thought java had maven and Gradle? Is mice a new thing?
Java also has SDKMAN!, jabba and the "alternatives" mechanism in Linux distros:

- https://sdkman.io/

- https://github.com/shyiko/jabba

- https://www.man7.org/linux/man-pages/man1/update-alternative...

Java is one of the few languages where I prefer the endemic/specialized version manager in the form of sdkman over mise. It has more Java versions available and also allows you to install a lot of the Java tooling like Gradle and Maven.
My dang autocorrect, it is mise.