Rust - What would be your top and flop?

Complete Rust newbie here, just got interested in it a week or two ago and am finding it really interesting. I've been learning Haskell very gradually over the past few years and it feels like Rust has some of the nice type-system guarantees of ML-flavoured languages, without requiring beginners to learn some of the more mind-bending abstractions that can be offputting to newcomers (i.e. catamorphisms and anamorphisms, functors, monads and purity, etc).

Top (so far): Error-handling, really good type inference, and of course performance.
[edit] Oh, one thing I should explicitly call out as a big top is the use of an Option enum instead of allowing nulls. I use Scala at work and the inclusion of null is a bummer, although I guess there's no choice since it's a JVM language.

Flop: Clean compile times can be slow, making CI difficult without a caching setup. A bigger problem for me is the gigantic target directory for non-trivial apps. I built the simplest "hello world" web service with actix-web and the target directory was about 1 GB and required about 5 minutes to build on my laptop. I hope this can improve.

9 Likes