You should learn Rust if you want to write fast code.<p>There’s a discussion on lobsters “C++ or Rust?” (<a href="https://lobste.rs/s/0akqy7/are_there_any_good_reasons_use_c_over_rust" rel="nofollow">https://lobste.rs/s/0akqy7/are_there_any_good_reasons_use_c_...</a>) and the general consensus is that Rust is better except for legacy reasons. I disagree, I believe there are niche cases C++ is better even on new projects with new teams (maximum performance, no care about safety, most on the team don’t care about “functional programming”, something like UI or game dev), but they are niche and the benefit is marginal. Which means Rust has a good chance to become the future.<p>Even if you end up writing C++, Rust teaches concepts which translate to C++ specifically and writing fast code in general. Including concepts related to the “functional” aspect which will help you write <i>better, safer</i> C++.<p>Also learn Rust if you want to learn more about low-level abstractions and functional programming, primarily for writing fast code.<p>However, I still believe you shouldn’t learn and use Rust for writing general-purpose code, unless you care about learning performance. Because languages with garbage collectors (JVM languages) and weaker memory models (Swift) are “fast enough” in most cases. And I’m very skeptical that most people would implement something faster in Rust than they would in Kotlin, TypeScript, OCaml, even C# or Java; because the borrow checker does create overhead. Unless they need to go back and optimize for performance (or they are writing idiomatic code in Rust but not in the other languages; most of the functional paradigms from Rust, like small structures, typed wrappers, polymorphism, composition, even ad-hoc multiple inheritance (extensions or default methods) and pattern-matching can be applied to all the languages mentioned above).