news.ycombinator.com
Rust in 2025: Targeting foundational software | Hacker News
3. The fact that for reasonable compile time you need to split projects into lots of small crates. Again, I understand the reasons, but the result sucks and we can definitely do better. As I understand it this is because crates are compiled as one compilation unit, and they have to be because circular dependencies are allowed. While that is true, I expect most code doesn't actually have circular dependencies so why not make those opt-in? Or even automatically split items/files within a crate into separate compilation units based on the dependency graph? … We see it time and again across anything that has two implementations. The pace of development is pretty good, to the point where one of the main criticisms of Rust is that it moves too quickly. The stability is pretty good, I can only remember one time when code was broken. Compile times are mediocre but three ambitious projects hope to tackle that - parallel frontend, cranelift backend, changing the default linker to a better one(landing next month). … themafia 3 months ago ... The TOML configuration format is weak and it's easy for things like namespaces and features and optional dependencies to get severely complex rather quickly to the point that it's easy to introduce subtle bugs or create a fragile configuration. The requirement to use semver, which may work for a lot of projects, but is not necessarily the best when dealing with software that deals with regulatory compliance issues. The version number is sometimes a product of multiple considerations. Unless you want to publish a page that helps users understand how versions map onto regulatory calendars. … reallydifficult though, and requires you to commit to certain implementation details without ever changing them, so I can understand why it’s not a priority. To my knowledge the only success stories are Swift (which faced the problem head-on) and COM (which has a language-independent IDL and other pain points.) ObjC has such extreme late binding that it almost feels like cheating. If rust had a full-featured ABI it would be nearly the perfect language. (It would improve compile times as well, because we’d move to a world where dependencies could just be binaries, which would cut compile times massively.)
Related Pain Points4件
Lack of stable ABI complicates binary distribution and dependency management
7Rust lacks a full-featured, stable ABI, making it difficult to distribute dependencies as pre-compiled binaries. This forces recompilation of all transitive dependencies, significantly increasing compile times and preventing the binary-based dependency model used by many ecosystems.
Crate splitting required for reasonable compile times fragmentizes code organization
6Developers must split projects into many small crates to achieve reasonable compile times, since crates are compiled as single units and circular dependencies are allowed. This artificial fragmentation complicates project structure despite most code lacking true circular dependencies.
TOML configuration complexity breeds subtle bugs in namespace and feature management
5Rust's TOML configuration format, combined with complex namespace and feature flag systems, makes it easy to introduce subtle bugs and create fragile configurations, particularly problematic for projects with many optional dependencies.
Semantic versioning requirement mismatches regulatory compliance workflows
4The requirement to use semantic versioning doesn't align well with software under regulatory compliance, where version numbers often reflect multiple regulatory and product considerations rather than pure API compatibility.