Rust also shines when it comes to high level abstractions. This is what attracts me to the language: as in C++, it covers the super low-level stuff, but it also powerful in business logic abstractions.
Zero cost abstractions are a great thing. Rust is working towards this. Readability and speed is a great goal and there is no reason to believe it cannot be achieved.
Rust has ruthless focus on practicality while having features that are old in academia, but new/niche in systems programming. I think it's remarkable that it's a language that both C and Haskell programmers can tolerate.
Yeah it's not the best analogy, but I think the rest of the idea still stands. I don't think a person looking at a language and thinking that it could be their silver bullet discredits their analysis, and Rust in particularly does seem well suited for that possibility with it's ability to address both low-level and high level programming.
A richer type system is not in opposition to good tooling, quite the opposite. Rust's strong type system enables fantastic static analysis, which, for example, obviates the need for anything like Go's data race detector.
And the philosophy of Rust is, what if we encoded that "care" into the language itself? That, to me, is a clear win. It is, to me, good systems language design: codifying decades of hard earned "best practices" into the language semantics itself.
Even though Rust has manual memory management, I'd say it can be pretty high level due to its functional programming features that are nearly equivalent to Haskell or OCaml.
Rust is a very well designed language no doubt, but I think maintenance is where high level languages have an upper hand in some domains.
Also, there are plenty of high level languages with traits, eg Haskell, but if you prefer one where it is easier to express things optionally with an imperative/OOP mindset, Scala.
Rust isn't only great because it's low level. Things like sum types (called enums in rust), pattern matching and expression orientation mean that it is often much more expressive than other languages for high level code.
reply