C is considered close to the metal, however the metal it was designed for had the memory model of a PDP-11 which has made it bit a clumsy for handling multi-threaded programming, and having declarations that compile to the native width of a target architecture is kind of burdensome when we've long since settled on 64-bit and don't have to worry so much about getting code to compile for 12-bit, 18-bit, etc. It's also opinionated about certain concepts, like strings being null-terminated which is a design choice that hasn't been replicated in newer languages for a good reason. Rust feels like much-needed clean break from this, in addition to the various safety measures built into its type system