MS has massive resources and can align the many many modules of .NET into major releases. The Rust project does not.
MS has massive resources and can align the many many modules of .NET into major releases. The Rust project does not.
There are crate "recommendation lists" like this: https://blessed.rs/crates
While these help, Rust's small standard library has slowed Rust adoption where I work because our IT security team must approve all third-party packages before we can use them. (Who blindly downloads code from the Internet and incorporates it in their software?)
This means that unless there is a compelling need to use Rust, most teams will use C# because .NET is approved and has almost everything. I prefer Rust to C#, but we are not using it that widely yet.
It's not a fair comparison, but it is how things currently are.
Do they also review the original tooling? Why would one single out third-party packages?
Everything used for software development is explicitly approved. This includes programming languages, compilers, debuggers, IDEs, etc. We are primarily a Microsoft shop, so the majority of our development tools follow that direction.
For FLOSS libraries, the approval process covers both IT security review, a source code scan / static analysis, as well as a legal review of the package's license to ensure it is not on the prohibited list.
This makes management happy since it prevents potential security and legal issues. It keeps our customers happy since they get quality software made from fully traceable components.
When a CVE is announced, we know immediately if we are impacted and what will need to be fixed.
Some places have no idea what their dependencies are. I am sure there are lots of log4j horror stories from Java shops that were not so careful.
My knowledge about Rust's library system isn't great so there are probably several gaps in my argument.