This post is a response to the Rust core team’s call for blogs. I'm a little late for the official deadline, but this post isn't so much about what I think should be in the 2021 edition of Rust as much as it's about reiterating my thoughts from 2019. Specifically, I think the focus for 2021 should be to continue making learning Rust easier and more accessible for non-systems programmers.
Back in November of 2019 (a lifetime ago, it seems), I wrote up some thoughts on some possible goals for Rust in 2020. The TL;DR of that post: we need more learning resources for newcomers to Rust, specifically resources that aren't the standard long-form writing like books and articles. I think Rust has made some fantastic strides towards this goal this year (and really, it will always be a moving goalpost -- we can always continue to improve), with a plethora of new and exciting projects that serve different groups of newcomers trying to learn the language.
I care about this goal because, back in 2017 when I first started trying to learn Rust, I didn't feel like there were a ton of resources that were made for me. And by me, I mean a web developer with no formal CS background and no real experience doing systems work. Back then the official Rust website supported that sentiment, with the stated goal that: Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. I didn't even really know what a segfault was, and I certainly couldn't tell you what a safe thread looked like. But a few things kept me interested, beyond sheer stubbornness and the words blazing fast.
And for these reasons, at least initially, I kept trying to learn Rust. I bought all 4 books available for sale at the time. I worked through the blog posts and series from others who were kind and industrious enough to publish them. I wrote some (very, very bad) compilers. I learned what a pointer is. But it hasn't been an easy process, and it hasn't been continuous either. I've gotten frustrated and quit more than once in the past 3 years, and those niggling thoughts about not being a good enough programmer were hard to shake at times. Even now, 3 years down the road (ironic, huh?), I still feel pretty novice in some areas, although looking back I can see really just how much I've learned from the process.