3 ms·
If you haven't heard criticisms of Rust, you haven't heard very much of Rust. If you give it more than a superficial glance, you will find that there are issues
by nindalf 7y ago
If you haven't heard criticisms of Rust, you haven't heard very much of Rust. If you give it more than a superficial glance, you will find that there are issues with Rust - build times, build artifact sizes, ability to integrate with non-cargo build systems, cross-platform compatibility, difficulty in finding developers proficient in Rust, time to train engineers new to Rust, FFI with C++ not being good and on and on. Even the very article we're discussing is by a person who is unhappy with the FFI experience and wants to improve it to unlock contributions to Linux.
What makes people excited about Rust is not that it's perfect right now, nor do people claim that it's perfect. They're excited because they've seen a lot of progress in the last 3 years and see a clear path for it to become better in the next 3.
Almost every blog post I've read mentions shortcomings. Take one I read today from way back in 2017 (showing that people criticising Rust is not new) - https://onesignal.com/blog/rust-at-onesignal/ https://onesignal.com/blog/rust-at-onesignal/. While they are very happy with their choice, they mention
1. Build times being very long. This is partly the fault of rustc generating verbose LLVM IR and partly because of code-gen macros like the ones used by serde (the crate that makes json parsing easy)
2. Libraries such as async clients for postgres and redis not being available. Http clients being immature and having to spend time improving them.
3. IDE experience being poor.
Of course, 2.5 years later many of these issues are no longer true.
* Build times have improved a 8-30% depending on the project in 2019 (https://blog.mozilla.org/nnethercote/2019/07/25/the-rust-compiler-is-still-getting-faster/ https://blog.mozilla.org/nnethercote/2019/07/25/the-rust-com...). Incremental builds are a thing now, as are check builds (they generate no artifact, just make sure your code is compilable).
* Many more libraries available. Certainly all the basics will be covered once async-await becomes stable and all network libraries add support for it.
* RLS is reasonably good, IntelliJ-Rust is better and rust-analyzer is being worked on. Current situation is much better than the days of using Racer and will likely improve within 2 years when rust-analyzer is mature.
So there you go - an example of a Rust "fan" pointing out it's shortcomings 2.5 years ago, and the ways in which Rust has improved since then.
If your issue is that you see Rust being mentioned by fans a lot, it's likely because we keep reading stories about vulnerabilities that happen over and over, issues that wouldn't exist in a Rust code base. If these vulnerabilities were less common, maybe we wouldn't see Rust being mentioned so much.