Rust in 2018
— Streamline Collaboration and Empower Intermediate Users
I wrote about the future of Rust before and it seems like nobody stops me from doing it again! Quite the contrary: this time the Rust core team even asked for it. I’m a bit late to the party, but here are my 2 cents about the priorities for Rust in 2018.
Who is this guy?
There’s a depressingly high chance that we’ve never met before — which is a real shame. For some context: I come from dynamically typed languages like Python and PHP. Rust was the first language that allowed me to write real low-level code without feeling like arguing with a bouncer.
To me, Rust is not a fireflower, it’s my own personal Megazord1. I want Rust to win, but for that, we need to tick a few points off the list.
Compiler documentation for easier contribution
When I was in Columbus, Ohio for Rust Belt Rust, I met Niko Matsakis, Ariel Ben-Yehuda, and Santiago Pastorino. Those fine gentlemen eagerly worked on non-lexical lifetimes during the impl-period. Watching them hack away on the compiler was deeply inspirational to me, and I started wondering if I could contribute, too. Needless to say, the barrier to entry for hacking on the compiler can be quite high. I didn’t contribute anything yet.
One thing I’d love to do is to spend short 30-60 minute chunks of time to fix a small thing in the compiler here and there. Could be as simple as renaming a variable, writing a test or adding some documentation. Hence my first wish is, that contributing to the language will become easier. That could be achieved by providing extensive mentorship, more entry-level tickets, and better compiler documentation. All of that was already suggested by Niko.
More resources for intermediate programmers
On a related note, I’d like to see more talks/guidelines/books targeting intermediate Rust programmers. This includes discussions on how to structure big projects in Rust and Rust-specific design patterns. I want to read more about professional Rust usage and see case-studies from various industries. For example, there was a startup called snips.ai, which built an on-device voice-assistant using Rust. They integrated with C and C++ libraries and I want to hear more about their journey.
Improve the RFC process
I try to follow the RFC process very closely, but my time is limited. My wish is, that I can open any RFC and immediately get its status:
- A summary of the discussion with major pros and cons.
- A simple usage example, right at the beginning.
- The next steps towards stabilization.
For example, if I look at this (not so) random issue, I don’t even know where to start. What are the biggest blockers right now? Who is actively pushing this forward? How can I help out?
Github is great for code, but conversations about new features regularly get out of hand. This is not a problem, that is limited to Rust, either. Just look at other big projects like Docker, Kubernetes, or Node. Maybe we need a new tool for that.
The usual suspects
If I could ask for two stable features in 2018, it would be ?
in main and non-lexical lifetimes.
There’s more I could mention of course, but I’m not gonna bore you with faster compile times, impl trait, generators, and the like. We’re on a good way here, see Nick Cameron’s post instead.
I’m convinced, that by improving documentation and mentorship, we can grow the number of contributors significantly and stabilize many highly-anticipated features this year.
1. Disclaimer: I never watched a single episode of Power Rangers.↩
Thanks for reading! I mostly write about Rust and my (open-source) projects. If you would like to receive future posts automatically, you can subscribe via RSS.