I think they're a strong contender... it's somehow simpler than Rust
then again the correctness guarantee may be weaker??
True. But it's a pretty small space to be in. And there are good reasons for that:
a) The only correctness Rust can, mostly, guarantee, is that there won't be unexpected data races or memory bugs. While this is proudly announced often and loudly, it also isn't the most common problem in code...logic bugs...against which the rust compiler can do as little as any other language.
b) Rust can only give these guarantees because it is ALOT more complex than C. That means harder to read, harder to write, harder to learn. And developer time matters. Alot. If I can already ship features, while my competition is still stuck in onboarding, it won't matter if my code has the odd memory bugs...those can be fixed...I will already have the market to myself.
A powerful type system helps quite a lot with logic bugs actually.
A static type system does, and all the languages that Rust has to compete with in its space, have one.