by micvbang on 6/29/25, 5:56 PM with 49 comments
by hks0 on 6/29/25, 8:17 PM
At first I offered mise as the recommended tool, and after a while I declared it's the only supported way to build the project and boom! All support requests that used to end with "oooh my XYZ's version was not matching the project's requirement" are gone now.
I like asdf but it has quirks. Mise has been a better companion for me past few years.
I also hear people say "but my node/ruby/elixir/java/foo version manager will break. My team uses that tool in our other projects, etc, etc" then I only have to show them what an amazing drop-in replacement mise is and nothing breaks; there's no going back for them.
I just hope muse stays mise, and doesn't become just[1] (whom I also install via mise)
by stryan on 6/29/25, 6:48 PM
If you try to stick to the classic POSIX tools since they're installed everywhere, I urge you to give mise a try anyway. It and fzf are the only programs I've found that are truly worth the extra effort it takes to install them, even if it is just grabbing a binary.
by vsviridov on 6/29/25, 6:39 PM
by mrbonner on 6/29/25, 7:44 PM
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.
by xyst on 6/29/25, 7:26 PM
Workflows now revolve around nix.
Setup a shell.nix that defines development environment (whether it’s specific version of rust or python).
Then `nix develop` will setup an isolated environment. Do some work on project. Then exit shell.
No need to pollute machines environment with 100 versions of python/pip/uv.
Add in `direnv` and it will automatically activate the nix shell upon `cd`. Plays well with gui editors too, assuming direnv plugin/tooling available.
by dayjah on 6/29/25, 6:47 PM
If you’re into these environment / tool managers I highly recommend giving nix a solid try for 4-6 months.
by sausajez on 6/29/25, 6:44 PM
by jph on 6/29/25, 7:22 PM
Here's the solution I use; perhaps someone here has a better idea?
brew install gcc readline zlib curl openssl@1.1 ossp-uuid icu4c pkg-config
PKG_CONFIG_PATH="$(brew --prefix)/lib/pkgconfig:$(brew --prefix icu4c)/lib/pkgconfig" \
LDFLAGS="-L$(brew --prefix)/lib" \
CPPFLAGS="-I$(brew --prefix)/include" \
mise use postgres --verbose
by qn9n on 6/30/25, 3:39 PM
by rsanheim on 6/29/25, 8:23 PM
I don't use the advanced task / env stuff, mostly just the tool management. Its been stable, fast, and gets out of the way.
by sergiotapia on 6/29/25, 7:32 PM
I'll try out Mise for Elixir, Erlang and NodeJS to see if it works like you describe.
by hdjrudni on 6/29/25, 6:44 PM
by Centigonal on 6/30/25, 8:57 PM
by ukprogrammer on 6/29/25, 9:01 PM
I see this "one tool to rule them all" and instantly my senses go off that this is too good to be true to work in all the long-tail scenarios.
There always seems to be some strange edge-cases with tools of this nature.
by hacb on 6/29/25, 6:29 PM