3 ms·
There are a couple of key differences between the two ecosystems here which affect the tradeoffs: 1. Rust's cargo tool manages dependencies, it's almost univer
by ekidd 6y ago
There are a couple of key differences between the two ecosystems here which affect the tradeoffs:
1. Rust's cargo tool manages dependencies, it's almost universally used, and it does a good job. It's most similar to a mature Pipenv.
2. The Rust community normally does a good job with semver and the type checker makes it much easier to notice breaking API changes.
3. The Rust standard library has a strict policy of not breaking backwards compatibility.
4. There are tools like cargo-audit, cargo-geiger, cargo-crev and cargo-deny that can be used to enforce various policies across all dependencies.
5. Rust allows building single-file executables, so you don't need to distribute dependencies at runtime.
So in practice, people tend to standardize one or two good solutions outside of the standard library, and very occasionally the best ideas will make it into the standard library. It's partly a philosophical difference, but the entire ecosystem of tools works together to support that philosophy.