As developers, we often need to work with different versions of programming languages and frameworks. This post covers version management tools for several popular technologies.

Java

For linux/macOS users, you can use the built-in java_home utility:

/usr/libexec/java_home -V
export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`

Reference

NodeJS

nvm (Node Version Manager) is a popular tool for managing Node.js versions:

nvm use 20.12.2

Python

uv is a modern Python package manager and version manager.

uv venv --python 3.12.0

Flutter

fvm (Flutter Version Management) is an excellent tool for managing Flutter SDK versions.

fvm use 2.10.0

Special thanks to Silas for sharing this awesome tool!

Rust

Rust uses rustup as its official toolchain manager. It allows you to easily switch between different versions of Rust:

rustup install 1.68.0
rustup default 1.68.0

Conclusion

That’s it