Is there a language that handles dependencies well?

Python's virtual environments are a bit awkward but everything mostly works, I haven't played with Java build tools much, Javascript is a trainwreck. I've been happy with Dart, but haven't gotten into the weeds much. Same with rust, cargo seems nice, but I haven't played with it enough to know the pitfalls yet.

#programming #dependencies #python #java #javascript #dart #flutter #rust #cargo #pip #npm #yarn

@jforseth210 NPM and TypeScript is the best combination I've seen. NPM's approach is to bite the bullet and accept that every project's dependencies are specific to it, so the `package.json` describes what dependencies the project has, and they get installed alongside the project.

Uses a lot of space, but space is cheap these days.

@mtomczak
NPM does not even support snapshot dependencies like Maven.

Furthermore, version ranges are terrible if you want your builds to be reproducible. For this, you need an extra lock file that has to be updated from time to time.
@jforseth210

@StephanWindmueller @jforseth210 Ah yeah, I left out the lockfile from my description. NPM has those also and they're very important for reproducibility.

Maven I've used very little. I've never had need for snapshot dependencies; almost all my work has been in dev houses where such a thing doesn't exist because if you want to test a potential release, you're pulling in main HEAD, building, running your tests by hand, and hand test + letting CI beat on it --> a release identified by a git tag and published to a binary container. But I can see how those would be useful if you had users that want to grab the bleeding edge before you've wiped the blood off it.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.