Apart from the "low level" and memory management aspect, there are two other things about Rust that I noticed when learning it:
a very sophisticated type system (supplemented by "macros"), which makes it possible to write "correct" software - that is, you can, to a certain extent, be assured that it will work if it compiles, even before you run it
strong support for FP concepts (Functional Programming) - many features in Rust reminded me a LOT of things I saw when learning Haskell
That's very true! I especially noticed that Rust is more a functional programming language than an object-oriented one. This really popped out because Rust has no classes. I also think that Rust has a very sophisticated type system and many more powerful features (macros, traits, etc). Thanks for reading!
Correct! Rust has no (or very limited) support for "classical OO", like class-based inheritance, but support for functional programming is extensive, even though Rust is not a "pure" FP language.
Rust does have interfaces and traits and so on, but doing conventional class/inheritance based OO programming (like you'd do in Java) is not a natural idiom in Rust - an experienced Rust programmer would generally prefer other approaches.
Apart from the "low level" and memory management aspect, there are two other things about Rust that I noticed when learning it:
a very sophisticated type system (supplemented by "macros"), which makes it possible to write "correct" software - that is, you can, to a certain extent, be assured that it will work if it compiles, even before you run it
strong support for FP concepts (Functional Programming) - many features in Rust reminded me a LOT of things I saw when learning Haskell
That's very true! I especially noticed that Rust is more a functional programming language than an object-oriented one. This really popped out because Rust has no classes. I also think that Rust has a very sophisticated type system and many more powerful features (macros, traits, etc). Thanks for reading!
Correct! Rust has no (or very limited) support for "classical OO", like class-based inheritance, but support for functional programming is extensive, even though Rust is not a "pure" FP language.
Rust does have interfaces and traits and so on, but doing conventional class/inheritance based OO programming (like you'd do in Java) is not a natural idiom in Rust - an experienced Rust programmer would generally prefer other approaches.
Exactly!