Rust is Just a Tool
24 points by ugur
24 points by ugur
I swear I've seen a lot more complaining about the alleged enthusiasm of Rust users in the wild than actual evangelism.
Have you ever said anything negative about Rust publicly?
In my last job, I was coauthor of a strategy document that recommended Rust adoption (and encouraged investment upstream).
In my current job, I have a £2.7M grant to bring Rust support to production quality on our platform and am collaborating with some folks reimplementing some of our TCB code in Rust.
I've met some incredibly talented folks who are active contributors to Rust and they've been great to collaborate with.
But outside of that group? If I ever point out the limitations of Rust, I get a load of (usually poorly informed) flames from Rust fans. Not from Rust contributors. Not from Rust Core Team members. Not from people who have maintained large Rust codebases. But from a large hanger-on contingent who seem to regard Rust as a core part of their self identity.
Taking a step back from commentary about the Rust community (I know little and I think the discussion is a little too general), it is often the case that people who are most knowledgeable and most active in a given ecosystem are also more nuanced about it. The more we learn something, the more we notice the flaws. (I'm an OCaml person, I could complain about it all day.). It's a bit of a curse, we see the defects in every tool in our area of expertise, especially the ones we take care of ourselves.
There is one category of exceptions I can think of. Some people will have expertise and an internally-nuanced view and behave negatively towards criticism of said technology: people with a vested interest in the technology who have decided to be untruthful when it serves their interest.
It seems to me that this phenomenon exists for every sufficiently popular computer-related technology, be it a language, an operating system or anything else. You encounter the same kind of zealotry about Linux (argh, GNU/Linux!!!!) or C++ or Python or Windows or macOS or whatever...
It's something that peculiarly characterizes the computers industry and I never explained why to myself. You don't find electronic engineers fighting over their preferred MOSFET or civil engineers bragging about their favorite kind of bricks.
It would be nice if some sociologist or psychologist could study how this works.
I've certainly heard some tradespeople swear by or talk with vitriol towards one brand of power tools or another. But the further one moves from "something I use to get other things done" to "hobbies" or "enthusiast", the stronger the flamewars. Ask photographers, cyclists, car enthusiasts, etc, about the feuds in their niches.
I get that for hobbies, and programming or similar things can start as an hobby for many people. But still… one should grow up at some point :)
I would counter that has nothing to do with technology. Humans are hardwired for tribalism and mob behavior and will default to it in any context. Doesn’t matter if it’s a supposedly “smart” or “rational” one like science or engineering. The football hooligans trashing your downtown are running the same HumanOS as the Rust hooligans trashing your C++ codebase.
And take a look at an EE forum to see some equally arbitrary and forceful opinons. Nerd rage knows no bounds.
If I ever point out the limitations of Rust, I get a load of (usually poorly informed) flames from Rust fans.
Online or in person? I see this occasionally online, but I generally believe it’s just trolling. I have yet to see behavior like this in-person (though perhaps I’m just purposefully forgetting it).
I have seen it both in-person and online. And i'd say to a similar amount of people (relative percentage).
That hasn't been my experience. I like Rust, but I've had people tell me they won't use software I wrote because it isn't in Rust. I've seen the same with other projects.
Yeap, rust attracts a lot of young people and young people are enthusiastic about stuff that blew their minds. We were the same when we were young and nagged people to move from C to C++, because that more convenient and safer. Now we are the old guys and get annoyed by the young people asking us to move to rust, because that is safer and mkre convenient.
How young? I'm 40 and, while I have more tact, I'm still a big Rust fan because Everything Is Broken and it's got the most expressive type system out of my options for writing things which can still have an in-process QWidget GUI with minimal memory unsafety (i.e. PyQt or PySide via PyO3, not bare C++) and can still viably share code with things like in-browser WebAssembly.
(I'm thinking that, going forward, I'll probably try to put anything that can reasonably be turned into a plugin into WebAssembly modules compiled within non-persistent Docker containers to minimize my exposure to supply-chain attacks... especially with that maybe-hype/maybe-not about Anthropic Mythos.)
I would count you as young then, but I was thinking abiut even younger people.
I did C++ for 25 years before switching to a fulltime rust position a couple of years ago. I definitely would count myself as a rust fan as well and am more than a decade older than you.
The ease of building and installing a project matters very much, I think. There's a spectrum here and Rust sits alongside Go and single-file-html in terms of painlessness. On the other end are Python, C, Java, etc.
Rust opened my eyes to the idea that building a project doesn't need to require toiling at dependency woes, and I have to admit I'll gravitate toward a Rust project over other languages for this reason.
Very reasonable.
If I have a choice I will use projects written in Rust. This guarantees me a lot of benefits, and if I ever want to submit a PR and fix, makes my job easier.
Not wanting to use some software is a choice, not slander.
I think there are two things that are true here.
I also think Rust had the good/bad fortune to become popular during a particular online moment when people are latching onto programming languages like fandoms, as not just a tool choice but as their communities and part of their identities. That may have boosted Rust’s adoption? But also may have contributed to memes of the RESF and such.
(I say “moment” but it may just be the new normal…)
Thinking about it, this might be my experience lately as well lol. But I still think the post is on point and does not fall into the category of over complaining. I think, in general, it is a good reminder that tools are just tools.
The unfortunate truth is that languages are not just tools; they're ecosystems with network effects. I, for one, want Rust to be as popular as Java, Python, and JavaScript, so it will have a large ecosystem of libraries and developers, so it will be an easily defensible choice for more projects, so I can use it in more projects, because I love the combination of robustness and performance. I try not to be a loud Rust zealot online, but I can see why people might be.
Edit to add: about the safety lectures that the author is weary of, Rust's model of ownership, borrowing, and controlled mutability really is something that, as far as I know, is absent from any other language with anywhere near Rust's level of popularity and library ecosystem. And it makes sense that we'd want this in as much of our software as possible, especially in libraries that we depend on, ideally at every layer from the stack.
Rust isn't perfect, but I think it's the currently the best choice for a large subset of software, and I want its adoption to accelerate, so we and our users can have more robust and efficient software.
Hear hear. Replace "rust" with any other language and the latter two thirds of the post remains great advice.
For about half a century, it has been about marketing and market share momentum. These driving factors completely override all others. Every technical one included, no doubt.
What's the best now because of technical reason x, will be replaced by the next hype which totally disregards it. Or focus on some 40 year old idea that no one cared about until flashy marketing picked it up.
I talk about my happy place of Linux + emacs + rust.
I had a different happy place last year.
I want to hear about people's happy places so maybe I can find more happy places for myself!
refuse to admit there are alternatives to RAII
I was one of this type of folks. And I'm sorry, my first language was C++ and as a newly hatched duckling I fell in love with how elegant everything was in C++ back then. RAII looked like the bullet.
Still, RAII is a good common denominator in a broader conversation.
Anyways, for my fellow GC folks from non-precisely collected languages: take a look at the new using keyword in JavaScript. It sort of bridges both worlds ratger neatly.