> Learn at least a half dozen programming languages. Include one language that emphasizes class abstractions (like Java or C++), one that emphasizes functional abstraction (like Lisp or ML or Haskell), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), and one that emphasizes parallelism (like Clojure or Go).
The question being what would Rust add to this list or where would it fit here.
An interesting point about C++ in recent years (since 2011 and perhaps earlier) is that it no longer emphasizes class abstractions that much. These days the feel like just another tool in your kit. Also, the declarative specs support has expanded with C++20 concepts.
> Can you elaborate on what exactly happened with C++ since 2011 that it no longer emphasizes class abstractions?
"Modern C++, as defined in the C++11 standard has evolved to become an algorithmic language. This represents as much an idiomatic departure from Object Orientation as C++ was a departure from C’s procedural top-down composition. “C++11 feels like a new language,” says Bjarne Stroustrup [Stroustrup]. The primary focus of modern C++ has become algorithms and generic programming. To this end, the language absorbs a number of idioms from other languages and paradigms, ranging from functional to meta programming concepts. […]" [https://lambdafaktorie.com/modern-c-and-the-lisp-programming...]