Unix Co-Creator Brian Kernighan on Rust, Distros and NixOS
Unix Co-Creator Brian Kernighan on Rust, Distros and NixOS

Unix Co-Creator Brian Kernighan on Rust, Distros and NixOS

Unix Co-Creator Brian Kernighan on Rust, Distros and NixOS
Unix Co-Creator Brian Kernighan on Rust, Distros and NixOS
I wonder how the Rustaceans will react to his honest criticism.
Edit: exactly how I expected, LOL
I will listen to his sound advice and not take it very seriously.
I don't know how else they could react:
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.
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.
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:
In my limited experience the speed a rust complied executable runs is highly dependent on compiler options. By default (from what I remember), rust includes a ton of debug info in the resulting program. With the correct compiler flags you can strip all that out and programs run very close to c speeds.
I wouldn't be surprised, if the guy does not normally use a build system to begin with. Professors don't tend to have the time to write software that would require a build system (both in terms of complexity and being used by end users).
So, I'm guessing, all he wanted was
rustc
, but most Rust tutorials don't bother explaining it, becausecargo
isn't much harder to use.Apparently that's not really the reason.
cargo check
is usually quite fast.I also wouldn't say Rust code is slower than C. It wins in some places (e.g. strict aliasing) and loses in others (e.g. bounds checks) but in practice it's usually much faster because it's so much easier to use fast containers (not just linked lists everywhere), fast libraries, and multithreading.
Off the top of my head the compiler is slow because:
No language guarantees high-speed code. Rust, like C and C++, is also perfectly suited for writing slow code
What honest criticisms did you find in this article? All I saw was;
This isn't new?
He said the code that came out was slow, but Rust always ranks within the top handful of languages for speed, so I'm taking that comment with a big pinch of salt. Among popular systems languages only C and C++ really beat Rust for speed. So you get better memory safety for the price of a pretty small decrease in speed and a steeper learning curve for the compiler's picky rules (though the compiler gives you lots of clear help). Rust programmers know this.
People stopped taking Brian seriously when he helped create Go. That was pre-Rust.
Even the "talking points" here seem to be re-used from "Go vs. X" ones. Also, his experience speaks of someone who only tried Rust pre-v1.0.
Anyone who actually knows Rust, anti- or pro-, knows that what he said (partially in jest) is factually wrong.
Feel free to prove otherwise, especially the part about the performance of Rust programs. Don't be surprised if he simply didn't pass
--release
tocargo build
, a common pitfall for someone in the "hello world" stage of trying Rust.And this is why appeal to authority was never more fallacious, considering we live in a world where Dunning-Kruger is a universal reality.
You call that a criticism? It's a first impression.