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's 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 extended 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:

For example, if I look at this (not so) random issue, I don't even know where to start. What are the major 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.