nope. they all are. all depends on the use case. if your use case is "must do 100% of what C can do, no exceptions" then of course that leaves one option. but for many programmers the trade offs today are not in favor of C, and haven't been for some years.
Programmers doesn't define requirements, the task define the requirements
If you need to target very tiny boards, none from that list are suitable C replacements, _maybe_ zig and D with betterC since they both provide an inline assembler
Otherwise we'll end up with companies using Raspberry Pi 4 for their fleet of scooters because "i can run nodejs on it" (hyperbole, but you get the idea) https://news.ycombinator.com/item?id=37016842
Yeah. I don't understand the choice of Rust in this context. If you can write all the CPU instructions on a whiteboard that also has the literal memory map you don't need a high level language like Rust.
I don't see this as a place where Rust can't replace C (or where Zig is a better replacement, or whatever) because why are we writing any high level language at all?
I guess it can make sense if there's a device family and this is the smallest of a range.
nope. they all are. all depends on the use case. if your use case is "must do 100% of what C can do, no exceptions" then of course that leaves one option. but for many programmers the trade offs today are not in favor of C, and haven't been for some years.