Rust - My wish list for 2018

Last year I have spent some time exploring Rust lang. It has quickly become one my favorite programming language. I even published a small crate. Overall I am very happy with Rust and in my opinion Rust is one of the best language out there at the moment. Here are some of the things I think would be important to Rust in 2018. These are just my personal opinions based on my limited experience I have with Rust.

All of these issues are well known and being worked on, but there are lot of other items being worked on. I am only repeating the ones important to me here.

Language and Compiler

Compilation Speed

Rust compiler is too slow at the moment. I think this problem is well know in the community and among the compiler dev team. Things like cargo check do help, but definitely this is an area which needs lot of work. Rust compiler does a lot of work, so I don’t think it will ever reach the levels of golang compiler. But certainly there is a lot of scope to improve here in 2018.

Module redesign/Path clarity - RFC 2126

This is one of the important RFC to improve ergonomics. Coming from Java to me Rust’s module system looked unnecessarily verbose. This RFC is going to address that and much more. A part of the implementation(crate modifier) has already landed in nightly. I wish to see the full implementation of this change in 2018.

Non-lexical lifetimes (NLL)

If you don’t know what is this about, please read the RFC here. This is another important change that was taken up by Rust team last year. As mentioned this is going to help beginner Rust programmers also it will help produce a bit more readable code. This feature is already implemented in nightly. I have seen good results already in nightly. I hope for this to stabilize soon.

Ecosystem

Tokio stabilization

I have never used tokio directly. But many of the important libraries in the ecosystem are dependent on tokio for async story. Every project have one or two blockers on tokio to be stabilized. Async is one of that thing which is only going to get more attention in 2018, so tokio stabilization is going to be very important for the rust ecosystem.

Rust format

Rust format allows projects to have a consistent code format across. Currently rustfmt does not work on stable because of its dependency on nightly only libs. In nightly rustfmt works pretty good. I believe this to change soon and I hope it will be released with the distribution like in golang.

IDEA plugin

I am a fan of JetBrains IDEs, this year JetBrains have officially started supporting the Rust plugin. I wish Rust IDE reach the quality on par with other IDE. At the moment it is usable and better than any other Rust editor/IDEs out there.

Crypto library

A stable and good cryptography library is going to be essential for rust adaption. At the moment the current options are rust-openssl, ring and rust-crypto. rust-crypto is an abandoned project, that leaves ring and openssl. rust-openssl requires libopenssl installed, it is not straightforward to link it statically. I would prefer a statically lined library. ring at the moment is missing few popular crypto utilities. I hope ring or some other library to provide a decent cryptography functionality soon.

Summary

I am very happy with Rust with as is it now. All the points here are being addressed one way or the other. The only thing I don’t want is; Rust to become a big language like C++. I think Rust team does know where to stop and new features are only if they add value.