Published on 9th of January 2018
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 bloody 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 is a startup called snips, which builds an on-device voice-assistant using Rust.
They integrate 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.↩