Live data from Hacker News

Install Asdf: One Runtime Manager to Rule All Dev Environments

jdsalaro.com

61–70 of 132 posts

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#61
post #5

I've used asdf for years, but recently switched to https://github.com/jdx/mise It's a drop-in replacement for asdf, but I prefer some of the nice features it has to offer. See: https://mise.jdx.dev/dev-tools/comparison-to-asdf.html

I did the same. mise is brilliant! For reference it was previously called rtx The main differences are better UX with simpler commands and it not using shims, which means much better performance

mise borrows the plugins from asdf, which also makes it non-cross platform. Interesting discussion on this topic on their GitHub: https://github.com/jdx/mise/discussions/66

Solutions considered include adopting the vfox plugin system or transpiling all asdf plugins to ShellJs.

Now I know that vfox exists.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#62
Out of curiosity, how many dev environments do folks use? Is this for reproducible environments shared by members of a team or company?

For a single user with one development machine, simply having say a time-machine backup could be sufficient. I haven't had challenges for personal projects where details mattered. e.g. a Maven pom.xml, or Go modules/packages was sufficient for my needs.

Historically I'd only cared about automating the spec of production environments. Why would I want/need this?

I now recollect once being contacted out of the blue as being a person who might be able diagnose/solve an issue at a company I'd never worked with. They had two dev machines and only one of them could produce a working program. Their team couldn't figure it out. I gave them a rate and arrived on-site. It was a Visual Basic 6 program, so I just took two half days going through every EXE & DLL related to Windows and VB, eventually finding the difference. Tedious but not rocket science. Is it to avoid these cases?

Edit: We have project onboarding instructions where I work. I suppose it could be useful for making those. I don't make them but could appreciate if they used a standard rather than bespoke scheme.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#63

I've used asdf for years, but recently switched to https://github.com/jdx/mise It's a drop-in replacement for asdf, but I prefer some of the nice features it has to offer. See: https://mise.jdx.dev/dev-tools/comparison-to-asdf.html

No disrespect to mise but this what’s so frustrating about the industry. Just as one starts getting popular, some people move on to something “better”.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#64
post #50

Having been down this path - asdf didn’t go far enough in creating reproducible/sealed environments, the quality of the plugins per language varied dramatically, shims made a lot of assumptions about how tools will be used, and you can expect to throw asdf away the moment you need to deploy and then have to build something else. I don’t like Nix but I haven’t found anything else that scales along those critical requi…

People complain a lot about NPM, but I find it solves all these problems reasonably nicely. It's pretty easy to use in development and it's easy to deploy (either using node_modules in production, or bundling, both approaches work).

Of course it only works if your codebase and tools are all JS-based!

Having worked recently on a project that was mostly TypeScript with some Python, the TS bits were mostly straightforward but the Python was a hassle in both dev and production (I used venv). I can see that asdf might have been handy for development but if it didn't have a good deployment workflow that wouldn't have helped.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#65

Out of curiosity, how many dev environments do folks use? Is this for reproducible environments shared by members of a team or company? For a single user with one development machine, simply having say a time-machine backup could be sufficient. I haven't had challenges for personal projects where details mattered. e.g. a Maven pom.xml, or Go modules/packages was sufficient for my needs. Historically I'd only cared ab…

> Why would I want/need this?

always, golang is overly opinionated regarding where modules and binaries are stored. I don't like that and I've blown my local development environment into pieces because of that (looking at you GRPC, yikes)

But also, imagine that you, like me, need to test Python, Java+Kotlin+Gradle and NodeJS+Angular stuff. Do you really want to install _all that_ natively ? Just for a couple of merge reviews, and even if not, do you _really_ want to install all that natively ? The answer is always, IMHO, a resounding and clear no.

> It was a Visual Basic 6 program, so I just took two half days going through every EXE & DLL related to Windows and VB, eventually finding the difference. Tedious but not rocket science. Is it to avoid these cases?

For example, but also much worst, as mentioned in the OP it's to prevent the very real possibility of crippling your OS's language runtimes and also to stay productive.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#66
post #53

Earlier quoted context omitted.

pip-tools[0] is all most things need IMO. It’s a great balance of simplicity and utility. [0] https://pip-tools.readthedocs.io/en/stable/ As for Poetry, it is constantly improving and has gotten very popular. It should not be dismissed, especially for larger projects since its dependency management is so much better than pipenv. This is a good primer: https://diegoquintanav.github.io/poetry-primer.html

pyenv + pip tools is all one needs. Supposedly uv is gunning to be a drop in for both. I think there’s a good chance uv pulls it off and becomes defacto for this use case. I think it’s fair to see appeal in poetry, but ultimately the maintainers have created a culture that feels a bit too non-collaborative to outside ideas or use cases beyond what they more narrowly envisage. That said, my perspective may just be tai…

> pyenv + pip tools

then you'd also need rbenv, nvm, etc.

and pyenv can implode in marvelous ways.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#67
post #63

I've used asdf for years, but recently switched to https://github.com/jdx/mise It's a drop-in replacement for asdf, but I prefer some of the nice features it has to offer. See: https://mise.jdx.dev/dev-tools/comparison-to-asdf.html

No disrespect to mise but this what’s so frustrating about the industry. Just as one starts getting popular, some people move on to something “better”.

I mean you can apply this argument to just about anything, it isn’t really unique to “this industry” or computing in general.

People will generally change taste and likes/dislikes every few years.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#68

Earlier quoted context omitted.

What's the "original asdf?"

https://en.wikipedia.org/wiki/Another_System_Definition_Faci... (it's bit like Python stealing the name of a CL compiler ...)

asdf is not Python specific.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#69
post #59

Earlier quoted context omitted.

Dont we have VSCode Dev Containers? That works impressively well

We do, and they are pretty cool but incredible limited. For one, you have to limit yourself to vscode and/or other IDEs with this capability - which ought to be a dealbreaker right there. But then you still have issues around syncing permissions and paths inside+outside the environment. And that all your other windows have a different view into your project. That alone is another dealbreaker (which you can bandaid, b…

> For one, you have to limit yourself to vscode and/or other IDEs with this capability - which ought to be a dealbreaker right there.

You don't have to. There's a devcontainer CLI.

https://code.visualstudio.com/docs/devcontainers/devcontaine...

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#70
post #63

I've used asdf for years, but recently switched to https://github.com/jdx/mise It's a drop-in replacement for asdf, but I prefer some of the nice features it has to offer. See: https://mise.jdx.dev/dev-tools/comparison-to-asdf.html

No disrespect to mise but this what’s so frustrating about the industry. Just as one starts getting popular, some people move on to something “better”.

> Just as one starts getting popular ...

asdf hasn't just started getting popular. It's been popular for a long time already. IIRC I started using it ~8 years ago (~2016). asdf has been around since 2014. I believe Mise (rtx) has been around for a couple of years already too.

Post reply on HN