Not worth fiddling with the other package managers. Homebrew just works and never gave me much of an issue.
I am mainly with JS tech stack for years and play around Python from time to time - My set up in my machine is iterm2 + Oh-My-Zsh(theme) + plugins(e.g. autoJump & zsh Autosuggestions). I cant live without Autosuggestions in my terminal.
Homebrew is ridiculously slow in my experience, and nix is quite easy when you stay on the happy path—and when you fall off of it homebrew is unlikely to help you anyway.
I use multipass/qemu on my m2 and it works wonders. Another benefit is that I don’t run third party deps directly on my machine.
I use asdf for managing versions. Was using nvm, rbenv, etc previously.
Personally I didn't care about shims or performance. I find the asdf commands to be difficult to remember because they are unintuitive. See the "UX" section of the link above.
you can't use latest:20 in a .tool-versions file or many other places
This has always bugged me in asdf where I just want to say something like python:3.11.* where I don't care about the patch version number just that some 3.11 version is used.[1]: https://pkgx.app/
The main consideration I have is whether to manage languages via brew or via things like NVM for node, Pyenv for python etc.I don’t remember what I did for python but using poetry works flawlessly.