3 ms·
There 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
by jackmott42 3y ago
There 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.