3 ms·
The worst thing about Rust is easily the community - lots of drama and arguments, people building their personalities about something trivial like which program
by jstx1 3y ago
The worst thing about Rust is easily the community - lots of drama and arguments, people building their personalities about something trivial like which programming language they use because it makes them feel superior, and many fans of Rust refusing to listen to any criticism of the language. It's a designed-by-committe language with a cult around it which might be the worst possible combo.
The second worst thing is how difficult to use it is which makes it not worth it for problems where you can use a higher-level garbage-collected language.
- Yoric 3y agoFWIW, I have seen some of this behavior from people who have just discovered Rust, but none from people who are actually established members of the Rust community. In my personal experience, the Rust community is very welcoming, extremely open to criticism and discussing tradeoffs – and yes, pretty happy of the language, just as every PL community.
- cmrdporcupine 3y agoI've said it before, and I'll say it again: the problem with Rust right now is that it is in the unfortunate position of being an ascendant language for "cool kids". It has captured some portion of the attention of a younger and more trend-focused audience, and people are attaching their egos and careers to it and jostling to make themselves "known" in its community, etc. That and some of the projects and types of work adopting it; last year the "web3" and "crypto" companies began piling in, which had a markedly corrosive effect on the language and its emphasis. In general, the amount of "webscale" type work being done in Rust right now has shifted the focus in published crates, etc. from "systems" type work to a lot of the "async serving" types of stuff. For someone like myself whose interest (and day job) in Rust is in embedded, "systems" (closer to the metal, storage, virtual machine, database internals, etc), and the like, this is a bit discouraging. In general the list of speakers at RustCon (before the whole fiasco) didn't look on the whole like the list of speakers around a "systems programming language" for example (with some exceptions). As more "boring" work is done in Rust, this will hopefully shift. The trend hoppers will move on.
- steveklabnik 3y ago> In general, the amount of "webscale" type work being done in Rust right now This had nothing to do with web3 and crypto, and everything to do with FAANGs and similar large companies not in those industries.
- cmrdporcupine 3y agoI don't see that at all. I can't speak for Meta, but I just came from Google last year... there was zero zero zero work being done in Rust for anything service or web related. The only Rust work at Google that I knew of was Fuchsia stuff. But there's job postings all over the place for either "web3" companies and/or others for tokio/async/web stuff in Rust. Which seems like gratuitous novelty seeking to me, TBH.
- steveklabnik 3y agoYeah, in terms of "who is using Rust the most" inside of literal FAANG, least to most: * Netflix isn't using it at all, as far as I know * Google is using it in Fuchsia and Android, but I'm not aware of many web service things. Fucsia does use async/await though. Not sure about Android as I haven't examined it closely. * Apple is using it as the backend of services, and on some storage team, though for the latter I haven't heard from it in a while. They're absolutely async/await users. * Facebook/Meta are using it in a number of ways, for services but also as well as like, the SCM, filesystem, and build system. The latter aren't web services but do use async/await. * Amazon is using it heavily inside of AWS. You don't get more "web services" than that. But also, I meant "FAANG" in a broader sense. Large, established tech companies. Cloudflare, Microsoft, stuff like that. If you check out who is sponsoring the Rust foundation (not that that means that this gets you more weight for new features, mind you) https://foundation.rust-lang.org/members/ https://foundation.rust-lang.org/members/ it's very much not dominated by crypto or web3. When I was on the Rust team, we didn't prioritize web3/crypto use cases, and I haven't seen any evidence of that changing. It's always been kinda awkward, frankly. After writing this comment, I also wonder if maybe that's also not some of the disconnect here: while async/await is critical for network services in Rust, it's also useful for other things too. So you have a larger coalition than you may think that's interested in directing the language in that way.
- taosx 3y agoI won't comment on the drama but I don't see a second worst thing. I feel like Rust makes the costs clear and you should* not use it in situations where a higher-level garbage collected language can work.
- jstx1 3y agoThere are teams rewriting web apps and APIs in Rust. Maybe they're making a mistake, maybe they're doing great and are happy trading off some developer time and training overhead for what they're getting from the language - I don't know which one is more common but the trend of rewriting in Rust is definitely there and it's accelerating.
- cmrdporcupine 3y agoI'm sure they'll have some success. But if I was the engineering manager or technical lead for teams like this, I would be cautious. From a hiring/staffing point of view it is foolish and probably unnecessary; there is a large pool of talent trained in existing web framework tech, and generally most web applications do not need the latency guarantees that come with a non-GC language like Rust. If you're trying to staff and maintain a team doing this kind of thing, picking boring old TypeScript and staffing up with excellent senior engineers and just applying rigorous quality controls and engineering standards to the codebase makes more sense. It gives you better ability to bring on new staff, and to use existing frameworks. FWIW I worked in ad serving for some years (at Google and prior) and much of that work is done in C++ because of millisecond granularity P99, etc. latency concerns. Rust is a natural fit there, even though that is nominally "web serving"; but that's a different domain than serving up database-backed microservices for typical web customer workloads; that stuff is on the whole I/O blocked and not impacted by GC sweeps.
- twic 3y agoMostly, they are making a mistake. Some people are writing APIs where they genuinely need Rust's efficiency, but not many. I don't think the language of the project team can be blamed for encouraging this, but the community has unfortunately normalised it.
- insanitybit 3y agoHaving participated in Rust for the last 8 years, the community has been great. Very friendly at meetups, always eager to help debug issues or explain things. As an outsider maybe it looks like there's lots of drama but that's not accurate at all. Most everyone I've interacted is very humble. I always find it ironic that people say that Rust can't handle criticism when it is constantly being criticized... like in literally this exact post that we're all commenting on. That is a happy Rust user criticizing the language lol but yeah sure "many fans" refuse to listen to criticism.
- jstx1 3y agoYou're right, it's a bit more nuanced. People I've met at Rust meetups have been great, and some of the prominent people in the community are wonderful (I really like Jon Gjengset's youtube streams for example). At the same time if you look at Rust discussions on twitter and reddit, I think they very often match what I'm describing. Sure, maybe twitter and reddit as platforms encourage some unhealthy patterns but twitter/reddit discussions for other languages aren't nearly as toxic as Rust's. So I still think there's something there.
- insanitybit 3y agoIMO that's just Twitter being a hyper inflammatory platform. Rust's community is also a lot more active online/on Twitter than other languages, so I think that'll bias things considerably.
- shakow 3y ago> on twitter and reddit There, this was your mistake. :p
- jstx1 3y agoI explained why "twitter and reddit bad" isn't a good enough argument.