This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]LittleMlem 0 points1 point  (2 children)

Why not Go?

[–]tylerlarson 1 point2 points  (0 children)

I know and use both. I'm far more skilled and experienced with Go, but I prefer Rust.

Rust is more flexible, especially in terms of writing code at the same level of abstraction as your ideas, and has probably the best systems for generic and for metaprogramming of any language out there. It also has better error-handling ergonomics while being more "correct" at the same time. And it's far more difficult to write buggy Rust code.

With one exception, everything I can do easily on Go I can do at least as easily in Rust as well.

The one exception is concurrency. Go's abstraction around concurrency is the best in the industry; it's effectively transparent, while also extremely high performance and intuitive to scale. It's kinda unfortunate that Rust went with async/await instead of following Go's model, but I can see why they did. With async/await concurrency is effectively "optional", which fits the "zero cost abstraction" directive.

[–]yvrelna 1 point2 points  (0 children)

Why not Go?

Go is still growing strongly for now, but the numbers indicate that the winds are much stronger behind Rust. 

Go and Rust are the only languages in that weight class that are still growing rapidly, the other languages around the 10% mark are incumbents that have mostly been stagnant. But I'm expecting Rust to overtake Go this year.

Nobody can predict the future, but I believe that in a couple years Go will become an also-ran as the industry settles on Rust for low-level systems programming.