One of my colleagues (and de-facto boss) -- whose opinions and skills I respect immensely -- earned that respect quickly because of his willingness to explain his ideas and opinions, and back it up with testable, repeatable results, and the fact that he's led our team in producing some of the fastest fucking software I've ever seen. He's always been like that, except for one topic. Rust.
He's absurdly enthusiastic about Rust, although thankfully he's a pragmatist first and a mad scientist second and so has no plans to shoehorn Rust into our technology stack. But unlike literally everything else he's ever expressed an opinion about, he can't quite seem to explain to any of us (all senior-level developers, though most of them focus on Javascript while I come from a more "classical" background with 20+ years of C/C++/Java/Perl experience) why exactly Rust is worthy of such enthusiastic support.
It's just so bizarre. I've never seen him flail so much trying to explain what should be easy to explain to a group of fellow senior-level engineers in a team with absurdly high cohesion and endless curiosity. We're always eager to mess with new shiny toys because we might learn useful things from them. Yet all we can ever get out of him when we ask why Rust is better than C, C++ or even Javascript are vague assertions that "it makes you think differently about programming" and "it's faster than C but it's safer than C," though when pressed he can't ever explain how. He couldn't even give us any examples. He just pointed us to the fucking Rust website and some white paper they provide, which had its own obvious bias. Even more bizarrely, he claimed Rust "compiles down to machine code" while C/C++ somehow don't, which really had us wondering how strong that kool-aid is since that claim is obvious horseshit.
The entire fucking community is like this. They can't just tell you what's so good about Rust. Instead, they just make endless fanciful promises of essentially magic performance and functionality and then when you insist on tangible specifics they demand you read white papers, download toolkits and spend weeks learning the language on the assumption that Rust's obvious superiority would just magically become apparent.
In contrast, the communities for Erlang and Elixir (both very esoteric languages that take a fairly unique approach to programming) have adopted a much more effective attitude: "hey check out this cool stuff we've made, because we think you'll like it and you might even find it useful. BTW here's what these languages currently suck at, just FYI so you don't have unrealistic expectations." Both languages "make you think differently about programming" (in what I think is a positive way) but not at the expense of your knowledge or experience with other languages and programming styles. And they certainly don't demand cult-like devotion like Rust seems to.
In terms of the actual technology, all I've been able to figure out about Rust (in my very limited digging, since the tranny cult and CoC bullshit has permanently turned me off of Rust) is that it sets up most (or all) memory allocations at compile time as much as possible (i.e. you're heavily discouraged -- but not forbidden -- from doing dynamic allocations at runtime because it's potentially slower) so programs aren't slowed down at runtime by dynamic allocation or garbage collection.
Of course, you can do all this in C and C++ as well if you're actually a competent programmer, but I try to avoid pointing that out when a Rust evangelist is talking because I've gotten tired of explaining how to do it with a struct
, a fixed-length array of them and a size_t
counter to index into it because apparently none of them have ever heard of a circular buffer before.
And that seems to be the extent of its cleverness. Better rewrite all of Linux and userland with it. Especially systemd, which would totally benefit from being made just a little more complex because it's not already byzantine enough as it is.