The article discusses the ongoing issue of dependency churn in software development, particularly in ecosystems like JavaScript and Rust. Dependency churn refers to the constant need for updates and patches due to transitive dependencies. For instance, a seemingly simple crate like terminal-size ends up requiring multiple additional crates, leading to complexity and inefficient compilation. The author argues that this practice is unnecessary, as stable functionalities can be maintained without constant updates, hinting at a need for a shift in how dependencies are managed to reduce this chronic burden on developers.
It's a plague in most ecosystems with good packaging solutions. JavaScript and Rust are particularly badly affected by that.
For one function, terminal-size manages to introduce three or four additional crates, depending on your operating system.
terminal-size had 26 releases. My own version that I have stuck away in a project from 10 years ago still works without a single update.
Because it's built on top of platform abstraction libraries that constantly churn, it needs to update to avoid code duplication and blowing up compile times even more.
Collection
[
|
...
]