7 ms·
This is predicted on the assumption that the only benefit of Rust over mainstream GC languages is performance, which is false.
by mcronce 3y ago
This is predicted on the assumption that the only benefit of Rust over mainstream GC languages is performance, which is false.
- cmrdporcupine 3y agoThere are plenty of advantages, which is why I work in Rust (but for systems dev); but for projects like that they are all outweighed by the much larger ecosystem of talent and tools and the ease of development that goes with other options.
- yberreby 3y agoGP didn't say to go for mainstream GC languages, though. OCaml, F#, or Haskell would offer many of the benefits that come with Rust's type system. I've used OCaml professionally, and it's been a real pleasure.
- jackmott42 3y agoThere isn't much else. Depending on the mainstream language in question you may have a little bit stricter typing, and while you get Data Race protection that is motivated by wanting to get performance from multi-threading with less risk.
- cmrdporcupine 3y agoYep, and I would freely admit that if you really do have a heavily concurrent workload and you're going to be doing a lot of multithreading on high core count machines ... you could/should in fact reach for Rust. Writing a low latency, high throughput ad server / RTB system from scratch? Sure, go Rust. Google uses C++ for this stuff still for a reason. But in reality most of the services we're talking about are I/O bound low-thread-count data pipelines. And they'll be perfectly served by various managed languages. Instead we get tokio-all-the-things...And Rust is a flavour of the month, and the JVM Isn't Cool, etc...
- mcronce 3y ago* Sum types, and with them, exhaustive match checks * Immutability by default, including a warning for unnecessary mutability * Usable documentation even when the library author wrote none * Extremely low-friction testing, including fuzzing To name a few. Racing to get an HTTP service that starts but doesn't do anything you want it to do correctly isn't really useful; in my experience, that's the only advantage e.g. Python, Go, etc really give you over Rust.
- cmrdporcupine 3y agoAs others have pointed out, you can get these in F# or OCaml, or Scala as well. Or at least variants of them. And for F# and Scala you will have the advantage of an ecosystem of integrated libraries for .NET and the JVM respectively as well. And honestly, TypeScript's union & intersection types are pretty nice and that language is nice and expressive. Actually I actually routinely run up against expressiveness limits in Rust's enums in places where e.g. Scala would actually allow for a more static-declarative model (for better or for worse). I haven't worked in Scala in 15 years, but it was actually quite compelling.
- timeon 3y ago> And honestly, TypeScript's union & intersection types are pretty nice and that language is nice and expressive. It is such pain compared to Rust's enums. Wish there was more Rust front-end.