What was wrong with nvm that necessitated this competing with it?
I think that’s more of a confrontational take than we’ve had with Volta—we all have used and were in many ways inspired by nvm, rvm, nodenv, pyenv, rbenv, etc. There were a few things we wanted to do differently and in some cases improve upon, though. One of the biggest is how global installs are handled. Another is the idea of having your toolchain management be declarative (like .nvmrc files!)—but in a way that can be managed for a whole organization, transparently. That latter bit was a key requirement for us at LinkedIn, and none of the tools in the space quite hit the mark.
The last bit is speed! Volta has had “being fast enough that it’s effectively invisible” as one of the key goals from the start, and it shows. You never notice it’s there unless we’re giving you a nice message that we’re installing a tool your project is missing. Key hot paths are consistently in the 10–20ms range to do all of Volta’s work. We consistently hear people say things like “I forgot it was there” or “Is it even doing anything?”
One big benefit of Volta is that it runs on Windows. That in and of itself is enough reason to go with it for me.
Oh yes! I’ve gotten so used to this with the tools I use that I often forget it’s not actually the norm, and in this case it was particularly problematic because nvm-windows has completely different semantics and behavior than the Unix-y nvm.