I implemented firmware for very specialized AC motor speed and torque control that also does whole bunch of other things on a very low end microcontroller. Was implemented in C. Out of curiosity I just dug into source code and tried to imagine how it could benefit from Rust. Frankly the benefits would be none. As for safety: this firmware something like 6 years in production with just a single update. And the update was not made because of the bug. Somewhere along the way bunch of parts was ordered for new devices and wrong letter code was used. So instead of receiving 2% tolerance on part it was now 10%. As the order was expensive and not returnable I modified firmware to account for this.
Nobody is saying that every application of C is one where Rust would provide a clear benefit. But there are many examples where writing code C++ or C would result in many more memory safety bugs than if the project was written in Rust (even partially).
In the firmware world, arguably if the ESP8266 firmware was written in Rust it's less likely that some of the remote exploits from September would've been possible.
> In the firmware world, arguably if the ESP8266 firmware was written in Rust it's less likely that some of the remote exploits from September would've been possible.
Less likely, but not guaranteed. Rust is still very new, which means if people are migrating from writing firmware in C to Rust, chances are they are going to bring across C habbits, which will frankly lead to writing C in unsafe Rust.
The security of Rust is only as strong as the author who wrote it. We currently don't have anyone who started their firmware career on Rust.
Just because one project doesn't benefit much doesn't mean others don't. Microcontrollers are pretty powerful these days - Cortex M7s might run at 200+MHz and have 2MB of flash. You could easily end up with a project with a small webserver, wifi and ethernet, a GUI and more. When you have 10s of thousands of lines of code having the kind of guarantees Rust gives becomes more important.
I was specifically referring to my example doing strictly hard real time stuff.
What you are describing looks more like a regular software and can be more cost effective implemented in any higher level language then C.
On a side note while I do not know very much about Rust beyond some main concepts I did couple of experiments with decent size example and compile speed made me turn away from it. When/if significantly improved I might be more interested working with it.
EDIT: added "higher level language then C" instead of "higher level language" to make more clear
Depending on when you tried, the speed might be much better; it's hard to measure exactly, but it's gotten roughly 3x faster since 2015. It's still not where we'd like it to be, and are continuing to invest in improving this, especially in the incremental case.