4 ms·
Can someone please explain to me what this does? I have 25y exp in the industry but I did not Understand the use cases by reading the GitHub page..
by happyweasel 2y ago
Can someone please explain to me what this does? I have 25y exp in the industry but I did not Understand the use cases by reading the GitHub page..
- newzisforsukas 2y ago> A cross-platform and extendable version manager with support for Java, Node.js, Flutter, .Net & more Seems pretty clear to me?
- Dobbs 2y agoYou are working on project A, and project B. Project A uses python 2.6, project B uses python 3. You want a simple way to switch back and forth without reinstalling everything every time you switch between them. This setups a way to quickly and if I'm understanding correctly automatically switching between the two versions of the tool. Replace python with many other tools from Java, node, etc.
- httpsterio 2y agoit allows you to install multiple versions of different code compilers and interpreters and change which version is used. so for example you can install nodejs lts and latest side by side and then easily swap which version is currently used when running node. There are already tools like nvm (node version manager) that does the same but this one works for multiple tools instead of just one.
- WorldMaker 2y agoIt's a tool for managing environments for side-by-side installs of different versions of developer tools. Say you've got multiple projects you are working on and some need Node v18 and others Node v20 and some of each need Python 3.10 or Python 3.11 depending. You can handle switching side-by-side Node installs with a tool called nvm and there are lots for side-by-side Python switching (pyenv, pip env, conda, so many more), but maybe sometimes you want to manage both together ("this project uses Node v18 and Python 3.11"). This a tool for doing that combined development environment switching, supporting plugins for a number of ecosystems like Node and Python. It's an alternative approach to what containers do. (Or an alternative to strict version policies such as "all Node and Python should be done with current LTS, no exceptions".) There are similar tools on Linux, so the noteworthy thing about this one is it is Windows native.
- vbezhenar 2y agoI just unpack node to different folders and set PATH. Why would I need any tool for that? Most languages work that way just fine. Java, node, python, go. The only bad player that I've found is Rust, its distribution is absolute mess.
- swozey 2y ago"Why make my life easier?" I deal with hundreds of different repos/projects that use various versions of various runtimes and I have to switch versions sometimes multiple times a day, sometimes multiple times a week. Why would I want to unpack an entire language runtime into ANOTHER directory when I can enter the directory and write "nvm use system"? And if I want to install a specific version of node, without having to dig around for the url on nodejs' website I write "nvm install 21.7.3" and it installs it. Then I use it. Like, it's practically weaponized incompetence to just dig your head in the sand and not use these practically standardized tools that everyone else has been using for 15+ years. Do you dislike using package managers as well? Apt? Nix? I don't feel like dealing with HNs terrible formatting system but this is how much work I do to install and change versions of one runtime. I deal with TONS of runtimes throughout the week. Also this is just one runtime, I also have to deal with python, ruby, go, terraform and many other versions so these "aggregate" runtime version managers like asdf etc are awesome. ###### -> (base) workspace nvm list -> system iojs -> N/A (default) node -> stable (-> N/A) (default) unstable -> N/A (default) -> (base) workspace nvm use system Now using system version of node: v21.7.3 (npm v10.5.0) -> (base) workspace nvm install 21.7.3 Downloading and installing node v21.7.3... Downloading https://nodejs.org/dist/v21.7.3/node-v21.7.3-darwin-arm64.tar.xz https://nodejs.org/dist/v21.7.3/node-v21.7.3-darwin-arm64.ta...... ############################################################################################################################################################ 100.0% Computing checksum with sha256sum Checksums matched! Now using node v21.7.3 (npm v10.5.0) Creating default alias: default -> 21.7.3 (-> v21.7.3) -> (base) workspace nvm use 21.7.3 Now using node v21.7.3 (npm v10.5.0)
- aooohan 2y ago> I just unpack node to different folders and set PATH. Why would I need any tool for that? To put it simply, vfox will help you do this. Unzip node, golang, etc. to $HOME/.version-fox/cache. When you write `vfox use node@10.1.1`, it will automatically configure PATH for you. Free your hands, you don't need to think about where to download nodejs, golang, etc. runtime, nor how to configure PATH. Especially on Windows, configuring PATH is still quite troublesome.
- wongarsu 2y agoSuppose you have one project that only works with the newest Node 20, and another only works with Node versions 16-18. So you want a tool that takes care of installing both versions and gives you an easy way to switch between them, either globally or only for the current shell. Maybe with some autodetection via config files that can be put in the project folder. That's basically this. But not bespoke for node (like nvm) or python (like pyenv) or protobuf, but as one tool that promises to do this for all your tools
- lxe 2y agoCurious what your experience is. I'm guessing there are dev cultures where tooling versions never have to change across projects, which has its pros and cons. For most of my career at large tech orgs working with node.js/frontend stack, python, go, and even java, I always needed things like conda, nvm, etc... Heck, even working with C (and CUDA), I would love to have an easy way to switch system-wide C/CXX compiler versions.
- deleted 2y ago[deleted]
- happytoexplain 2y agoThanks for asking the question I am perpetually too embarrassed to ask. As somebody who spends 95% of my time doing native mobile, I rarely have to think about this problem. I'm sure "runtime version manager" resolves to a specific idea for most people, but it was too general for me to know what it was referring to, even after reading the elevator pitch (my first thought was: like Docker?). This happens to me all the time. I wasn't formally educated and didn't spend my formative years around computer people. So I have holes in my knowledge and misunderstand parlance if it's not specific to my personal 10% of the software world. E.g. in the beginning, it took me a few years to realize that when people say "frontend", they virtually always mean web frontend.