

I don’t know how else they could react:
And the compiler was slow, the code that came out was slow…
The compiler is slower because it has more to check for, but “the code that came out was slow” seems like nonsense, exaggeration, or PEBCAK. Rust code is highly performant and very close to C code.
The support mechanism that went with it — this notion of crates and barrels and things like that — was just incomprehensibly big and slow.
Dude what? C’s build systems like cmake are notoriously unfriendly to users. Crates make building trivial compared to the ridiculous hoops needed for C.
I have written only one Rust program, so you should take all of this with a giant grain of salt,” he said. “And I found it a — pain… I just couldn’t grok the mechanisms that were required to do memory safety, in a program where memory wasn’t even an issue!
He doesn’t say what the program was, and the borrow checker operates by a set of just a few extremely simple rules. There’s no idea of what he was trying to accomplish or how the borrow checker impeded that.
So my reaction as someone who cares deeply about how disastrously unsafe C is and the tangible havoc it creates in modern society:
- I agree the compiler is slower. Honestly boo hoo. It’s slower for two very good reasons (better static analysis and better feedback).
- The code being slower is such a minor issue as to effectively not be true. Benchmarks prove this.
- I’m not going to take “big and slow” as a serious critique of Cargo from someone who idealizes C’s ridiculous, tedious, convoluted build system.
- The borrow checker is trivial, and unlike C, the compiler actually gives you easy, intuitive feedback for why your code doesn’t build.
I’d go even further: the learning curve for Rust is shallower than C/C++.
The fact that the compiler actually guides you, to me, made learning it much easier than C/C++.