5 ms·
============================== Andreas Kling @awesomekling · 44m My general thoughts on Rust: - Excellent for short-lived programs that transform input A to
by Affric 2y ago
==============================
Andreas Kling
@awesomekling
·
44m
My general thoughts on Rust:
- Excellent for short-lived programs that transform input A to output B
- Clunky for long-lived programs that maintain large complex object graphs
- Really impressive ecosystem
- Toxic community
==============================
- BoredPositron 2y agoHe's not wrong.
- pas 2y agocan you please substantiate in which points and how right he is? do you have experience with complex object graphs in Rust, direct or indirect experience about the community? thanks!
- Decabytes 2y agoThis huge blog post goes over some of the challenges of using Rust. https://loglog.games/blog/leaving-rust-gamedev/ https://loglog.games/blog/leaving-rust-gamedev/ For the community I'll pluck out this paragraph > That being said, there is an overwhelming force in the Rust community that when anyone mentions they're having problems with Rust the language on a fundamental level, the answer is "you just don't get it yet, I promise once you get good enough things will make sense". This is not just with Rust, if you try using ECS you're told the same thing. If you try to use Bevy you'll be told the same thing. If you try to make GUIs with whichever framework you choose (be it one of the reactive solutions or immediate mode), you'll be told the same thing. The problem you're having is only a problem because you haven't tried hard enough. I've experienced this same feedback when I was struggling with Rust. One time when I posted in the Rust subreddit about it seeking help and talking about my struggles, I got the unhelpful response of "I believe in people" as a dismissive response to my struggles. Admittedly this was years ago and I've since moved on from Rust, but the blog post is dated from 2024-04-26, so it appears the issues with the language still remain
- littlestymaar 2y agoIt's not specific to Rust at all, I remember hearing the same kind of talks when learning Java because I found OOP confusing. And in fact most people saying that are right: most of the time people complain about stuff because they haven't internalized how it's suppose to work (as I was). Don't get me wrong, there are plenty of valid criticism of Rust or Java (and OOP in particular), but at the same time in practice most of the people who complain aren't at the level of understanding and their criticisms aren't good. Both are true at the same time: - every programming language has terrible flaws. - 99.9% of the criticisms you'd see online about a programming language in particular are garbage.
- Decabytes 2y ago> It's not specific to Rust at all, I remember hearing the same kind of talks when learning Java because I found OOP confusing. You're right, but that doesn't excuse it. And most languages don't have this as their first bullet point in their code of conduct >We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic. What is the point of a code of conduct if you can't rally the community around the first part of the first bullet point. If people are still experiencing toxicity on the level of other communities that don't have a code of conduct, then it's not working and the leaders of the Rust community should do something about it.
- littlestymaar 2y ago> the leaders of the Rust community should do something about it. You should read the reaction of the Rust community leaders to the quoted article, and you'll see that they share your opinion that something must be done. At the same time when you have people in the community saying politely and cheeringly that “you'll get over it when you've internalized the rules” what are you supposed to do as a mod? It obviously doesn't infringe the code of conduct even though it seems to have offended the author of the article. Also, when what the people get pissed of about a community is “they don't want to admit it doesn't work” it's had to say that the toxicity is “people are still experiencing toxicity on the level of other communities that don't have a code of conduct”, by any means… The goal of a CoC is to make sure nobody gets bullied or harassed, not that nobody will ever get annoyed by other people. You can't make sure you don't have idiots in your community, all you can do is making everyone behaving in a civil manner, which is already hard enough.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- ramon156 2y agoI wouldn't be surprised if it is true that the community is toxic, but I myself haven't really seen it
- LoganDark 2y agoI wouldn't say all the Rust community is toxic. Then again, I'm not sure which Rust community he's referring to, I'm sure there are some toxic ones out there.
- Sakos 2y agoIt doesn't matter if only a portion is toxic, because that portion can easily poison the well all on their own for everybody.
- ironmagma 2y agoEspecially if that portion is in the official nonprofit associated with the language.
- LoganDark 2y agoEh, I don't personally consider the Rust Foundation to have anything to do with Rust The Language. I consider "the community" to be everyone who doesn't have official ties to the language. Is this incorrect?
- eviks 2y agoIt does matter because there is a portion that is toxic in about any sizeable community, so following that logic all wells would be easily poisoned
- anon-3988 2y ago> - Clunky for long-lived programs that maintain large complex object graphs Interesting observation...I have the exact opposite experience. Rust is especially amazing for long last program because you spend twice as much time developing it and then forget about it for the rest of your lives until you have to change something. And just by browsing the code, a flood of contexts come in because its expressed in the language fairly well (This function returns Option because ...., this function is generic over Read because ...)
- edflsafoiewq 2y agoThat quote is describing the program's lifetime (how long a process runs), not the project's.
- deleted 2y ago[deleted]
- odiroot 2y agoI'm really glad someone prominent has stated that.
- arresin 2y agoAgree absolutely with every single point. Especially the last one.
- jeltz 2y agoI love Rust but have to agree that there is a lot of truth in all of those. The Rust community really should take a look at more welcoming and diverse communities like the Ruby and PostgreSQL communities. Not sure though what can be done to make handling long-lived state less clunky.
- pjmlp 2y agoAs someone that likes Rust, but is decades away from the days I identified myself with any specific language, the Rust Evangelism Strike Force are the ones that spoil the party. That is exactly the way to put off people, that initially could even be welcoming to hear about what the language is all about.
- jghn 2y ago> Rust Evangelism Strike Force I realize this is not what people generally are referring to when they complain about the Rust community, but this is the part that annoys me. Feels like every damn day I see people preaching the Good News of Rust, pointing to things as being the unique and sole property of their preferred language. Except those things have been around for ages, in other languages. Memory safety? Invented by Rust! Algebraic Data Types? Invented by Rust! Funadamental FP constructs? Invented by Rust! High performance? Invented by Rust! If instead they just said that they enjoy having all of these things in a single language, well great. But instead it has to turn into a preach fest.
- neonsunset 2y ago> Golang Evangelism Strike Force Concurrency? Invented by Go! (quickly corrected by Elixir/Erlang strike force, but these, just like Golang, have worse throughput than a particular C family language I have a soft spot for). Apologies, could not help myself as this response is amusing if sadly accurate (I do like Rust, but blind hostile evangelism tends to create the opposite to the desired outcome).
- jghn 2y agoAhaha, yes. Amazing. Even the evangelism strike force wasn't invented by Rust :) It's a good point. These things always annoy me. Rust just happens to have the most vocal one these days.
- freedomben 2y agoElixir strike Force member here. Minor correction, concurrency wasn't invented by elixir, it was just perfected by it ;-D (That's a joke for the record. Elixir mainly uses erlang's stuff, and it's based on the actor model, which was not invented by elixir or erlang. I do personally love it though, I believe it to be a great implementation.)
- fidotron 2y agoThe key rust problem relates to: - Excellent for short-lived programs that transform input A to output B - Clunky for long-lived programs that maintain large complex object graphs To rust purists the latter should be solved through composition of many of the former. This is what happens when constantly going on about the evils of state becomes one of your cultural norms. That said I recently poked swift for non mac use and was not impressed by the status quo, and am not sure Apple are committed to the exercise. The core language is very nice though.
- steeve 2y agoThe last one is so very true
- the__alchemist 2y agoInteresting re complex projects. Compared to other langs I've used, rust gives me more confidence in maintaining and refactoring complex projects, maintaining state etc. I think this is due to the strict type checks, the helpful compile errors, and the ownership system. Maybe also due to the robustness of what I call struct-and-enum-oriented programming. I have plenty of my own beefs with rust that I won't go into here, but... it comes out on top for complex projects.
- commodoreboxer 2y agoIt's definitely more clunky for complex object graphs. Making a useful directed graph with cycles is pretty annoying. Not impossible my any means (I'm currently working on a Rust project for audio graphs that allows cycles), but not nearly as easy as a GC language would make it.
- hatefulmoron 2y ago> Compared to other langs I've used, rust gives me more confidence in maintaining and refactoring complex projects In my humble experience, Rust gives me great confidence that my refactoring will likely be correct, but the type system makes refactoring anything moderately complex very difficult. I tend to paint myself into corners, and the compiler, in it's religious oath of correctness, won't allow a mortal like me to get away with it. I guess you can dismiss that as a skill issue, but Rust feels like a language that is very tough to iterate with. It's probably something I will reach for when I'm sure of what exactly my program will do, and how it will do it.
- brigadier132 2y ago> - Toxic community I think a lot of this is just rumors and maybe one or two high profile people. When I go to discord servers for rust and rust libraries, the help I get is as good as, if not better than support from companies I literally pay.
- blueflow 2y agoFor years, whenever there was drama and shit-flinging in the OSS world, i looked up the people causing that on github and blocked them. Github has this feature that it warns you when you look at a repository where people you blocked contributed. If you keep such a list, you'll easily recognize projects you better stay away from. For me, this was one of the reasons to keep away from Rust.
- commodoreboxer 2y agoThat sounds flawed to me. A large block list will disproportionately warn you about projects that are more open to any external contribution in general. Guilt by association is a weird standard for FOSS contributions. I certainly don't review the external lives of contributors on my repositories.
- blueflow 2y agoIf you intend to contribute, this is a reasonable way to avoid interaction with the problem peoples.
- brigadier132 2y agoMy point was just about my actual experience with the community versus what everyone says about it. There is a lot of excitement I've noticed which seems to bother some people but I've never had anyone outright call me an idiot or anything and I always get help when I ask for it.
- stephc_int13 2y agoChoosing between Rust or Swift is a false dichotomy. Switching programming language (or game engine) mid-course is a well known suicidal move. Who is asking them to use a different programming language? I am not a C++ fan, but it is a lot less risky to stick to it than switching, and this is true for any large projects ran by experts.
- gjsman-1000 2y agoC++ is a loaded gun, strapped to your body and aimed at your foot, with infinite bullets automatically firing every second, that requires you to constantly exert 25 lbs of force to tilt the gun and avoid hitting your foot. Most of the time, you’ll be successful. However, nobody seeing your plight would be shocked if your foot eventually gets blown up. To claim this state of affairs is just fine because you’ve done it for years, pitiable.
- stephc_int13 2y agoWell, there are indeed many ways to shoot yourself with C++, this is why having C++ experts on the team is a good thing. They are supposed to know how to avoid the traps and avoid being lured into the worst parts of C++ and OOP design style. I have seen very good C++ projects using only the minimal amount of bullshit features, Omar Cornut's Dear Imgui comes to mind as an example. As Swift beginners, they are less likely to avoid the bad idioms, but this is the kind of thing you only discover late, when the codebase is large enough.
- gjsman-1000 2y agoPerhaps, but here’s a question: Can you really tell me, that any C++ codebase doesn’t have memory safety bugs? The last decades have shown that almost every C++ codebase has a bug somewhere, as long as you look hard enough. That’s not a good state of affairs. C++ is a reactionary language. The programmer assumes they are an expert who can use it safely, there’s just a few exceptions or mistakes here and there and that’s normal. Using memory safe languages is a programmer knowing they will mistakes, that they aren’t that smart despite their best efforts, and mitigating the opportunity. Avoid near occasions of sin.
- commodoreboxer 2y agoI'd drop the "long-lived" and "short-lived" from the first two points. Rust is great for long lived programs, and is extremely clunky for managing any kind of object graph in general. The lifetime of the program has little to do with it, so I'm confused by those qualifiers. I've written plenty of Rust software that has run uninterrupted for years. I've seen way more people complaining about Rust evangelism and toxicity than I've seen of Rust evangelism or toxicity itself, especially here on HN. Even "Rewrite it in Rust" is something I've mostly only ever seen as a denigrating joke (and usually in response to a project choosing to be rewritten in Rust, not even to calls to rewrite something in Rust). I'm starting to wonder if the Rust toxicity and evangelism are more meme than reality.
- keybored 2y agoIME in the last while on HN the Rust Evangelism(TM) debate has been brought up either unprompted or because someone argued that Rust was objectively better on some metric (like memory safety compared to another language). In the latter case someone says something that can be argued on its merits but then someone else decides to tone police about “evangelism”. In this thread there are two Rust subthreads: someone brought up (and was downvoted) “why not Rust” out of nowhere (evangelism) and this one where we are discussing Rust Evangelism because GP quoted Kling on some separate tweet. So yes. We mostly seem to discuss Rust Evangelism as a meta thing. Something that has supposedly definitely happened, or is happening somewhere else, just rarely right in front of us in the discussions at hand.[1] I think that qualifies as a meme. [1] https://news.ycombinator.com/item?id=41119392 https://news.ycombinator.com/item?id=41119392
- throwaway215234 2y ago> I'm starting to wonder if the Rust toxicity and evangelism are more meme than reality. Doubtful. If you're running a somewhat known FOSS C or C++ project, chances are you've had to close issues from Rust fanatics aggressively urging you for a rewrite, and shaming you if you object. Nothing has changed in that regard.
- commodoreboxer 2y ago
- deleted 2y ago[deleted]