Rust Lang Roadmap for 2024
Rust is becoming a primary language for modern blockchains and hence the roadmap should account for their demands as well, particularly three of them:
1. Readable and debuggable macros. Blockchain devs use them heavily, and it's virtually impossible to understand what's going on for a person, who wasn't involved in the development of that code with macros.
2. Floating point operations reproducibility across environments. When it comes to finding and hashing the consensus among many machines about floating point calculations, Rust gets ugly: in fact, as a developer, you'll have to use either integers or a made up fixed point numbers instead of floats to ensure that calculations are identical on different machines. You need that because hash function will be completely different for two numbers, which are even slightly different.
3. Zero-exception safety mode checking at compile-time. Blockchain code should run forever and never halt. Because if it does, the whole blockchain is at risk of stopping, and some chains may never recover from that. So, just as good as Rust prevents poor memory management, there should be a special optional compile-time check, that prevents runtime exceptions and halts, and forces the developer to wrap all possible points of exceptions in nice workarounds.
Blockchain devs are the best Rust adopters out there, we're excited to see how the language is becoming defacto a standard for web3 development.
As a longtime embedded C developer (20 years) I always look forward to truly learn Rust someday. But unfortunately I don't have much time now to learn it. And I'm in a kind-of hate-love relationship with Rust at the moment. The same applies to modern C++.
> many people report a sense of high "cognitive overhead" in using it, and "learning curve" remains the most common reason not to use Rust
This is me.
And I was super excited when I read "we will identify and eliminate many of those patterns and idiosyncracies".
Then... the post follows with "extend the language", "Extend our async-await support", "Broaden the set of traits", and I know what this means. More things to learn, more time to reach an operative state.
And this kicks in: https://en.wikipedia.org/wiki/Overchoice
Someone should invent RISR (Reduced Instructions Set Rust).