4 ms·
I am probably at a similar stage to you, investing seriously in learning Rust in the past month or so. Coming from having used Go as my “main” language for almo
by jameshiew 6y ago
I am probably at a similar stage to you, investing seriously in learning Rust in the past month or so. Coming from having used Go as my “main” language for almost a couple of years, already I can tell it is going to be a longer journey to become as proficient with Rust.
The biggest thing I am missing right now from Go is the fast compile times, something I rarely had to think about before. In some of the small Rust projects I’ve tried out, compilation takes minutes on a clean run or after having updated dependencies. When you’re checking out a lot of different Github projects, or experimenting with different crates, it really adds up.
I’ve tried out Rust’s equivalent of channels (the `std::sync::mpsc` module - https://doc.rust-lang.org/std/sync/mpsc/ https://doc.rust-lang.org/std/sync/mpsc/) and it feels clunky by comparison to Go. Spawning threads in Rust via a `thread::spawn()` call feels archaic compared to `go func` (putting aside that threads aren’t exactly equivalent to goroutines, you might generally use them in the same way). I’d actually hope Rust could introduce first class language constructs for concurrency like Go has, at some point.
There are some other Go things like implicit interfaces I am learning to get used to without, but I am really liking Rust’s concept of ownership and having proper enum types/pattern matching is a breath of fresh air. I probably appreciate Go more now for what it is - a straightforward, performant language with very good devex.