That may not seem like a big deal for the x86_64 world where modern mitigations largely make shellcode a thing of the past (hence heap exploitation, ROP/JOP, etc) but it is a BIG DEAL for embedded microcontrollers that lack OS/HW memory protection - an area where #![no_std] Rust shines.
As a security researcher and not a developer, let me be very frank: you should STRONGLY consider Rust in place of C or C++. But know that release profile builds don't do integer overflow checking, so don't get cocky :P
https://www.amazon.com/Rust-Programming-Language-Steve-Klabn...
I think it’s also available for free online. Here? https://doc.rust-lang.org/book/
[0]: https://www.amazon.com/Programming-Rust-Fast-Systems-Develop...
Both are great and I still refer to The Book (and Programming Rust) from time to time.
I'd be really keen to pick up v2 of Programming Rust.
TerraFX is greater than just Windows bindings[3] but it is certainly useful for even just that. I've contributed a lot of bindings recently for some low-level Windows headers. Contributions are welcome!
[1] https://github.com/terrafx/terrafx
If Kubernetes were written in JavaScript would you call it a systems programming language as well?
Assuming Microsoft isn't talking about solely using Rust in Windows The Operating System and Linux The Operating System, they agree with my definition.
That tended to mean a language designed to compile down to processor instruction sets the way C, C++, or now, Rust do.
Go was intended to replace C++ and C for many of the things that Google programmers did, but it wasn't intended to aim at "bare metal" if I recall Rob Pike's design talks correctly.
Every now and then this misconception is found on HN.