Rust 2018 is in the works for a major release this year
It’s been a long time coming, but the next edition of this programming language is getting ready for a new release: Rust 2018 is in the works. While we don’t have a set release date, we do have a whole lot of improvements for this beloved programming language. Rustaceans, rejoice!
The much beloved open source programming language Rust 1.0 arrived in 2015 and since then, Rust has topped Stack Overflow’s most loved language for three years in a row. Along the way, this popular programming language has released regular updates (including a Rust Language Server and an Eclipse IDE). However, it’s been nearly three years without a major release update. Now, we have news from the Rust-o-sphere: Rust 2018 is coming later this year!
First off, don’t get too excited. This roadmap is very generalized and we don’t know when Rust 2018 is going to drop. Or, to be perfectly sincere, what will be in Rust 2018 when it ships. But we have a good idea of both. So, let’s dive right in and see what Rust has in store for us now.
While we’re still not exactly sure about the specifics for this epochal release, here are some good guidelines from Rust’s own roadmap. The theme for Rust 2018 is productivity. And how do they plan on delivering? Rust has already created domain specific work groups for:
- Network services – Rust’s reliability and low footprint make it an excellent match for network services and infrastructure, especially at high scale.
- WebAssembly – The “wasm” web standard allows shipping native-like binaries to all major browsers, but GC support is still years away. Rust is extremely well positioned to target this domain and provides a reasonable on-ramp for programmers coming from JS.
- CLI apps – Rust’s portability, reliability, ergonomics, and ability to produce static binaries come together to great effect for writing CLI apps.
- Embedded devices – Rust has the potential to make programming resource-constrained devices much more productive—and fun! We want embedded programming to reach first-class status this year.
That’s just the beginning. It couldn’t be an epochal release without a whole bunch of improvements for the language, compiler, tooling, library, and more. Let’s take a look at what is going to change in Rust 2018.
Most of the language improvements are from the 2017 ergonomics initiative and are on their way. There isn’t an official release schedule for these language improvements; they’ll be released as they come out of the pipeline all polished and stabilized.
Here are some of the big changes:
- Ownership system improvements, including making borrowing more flexible via “non-lexical lifetimes”, improved pattern matching integration, and more.
- Trait system improvements, including the long-awaited
impl Traitsyntax for dealing with types abstractly.
- Module system improvements, focused on increasing clarity and reducing complexity.
- Generators/async/await: work is rapidly progressing on first-class async programming support.
- Other major features including SIMD, custom allocators, and macros 2.0.
The compiler improvements for Rust are already available as of version 1.24. They are enabled by default on the stable compiler. Rebuilds are significantly faster than fresh builds, but the Rust development team thinks they can improve the performance for both in the coming release.
As for tooling, Rust 2018 is going to have the stable release from the Rust Language Server, which we talked about last year here. Further work is needed to continue to stabilize Cargo, including work on custom registries, public dependencies, and a revised profile system. Things are less certain for the Cargo build system integration, the Xargo integration, and custom test frameworks, which might not be ready by the time Rust 2018 releases.
Library improvements are continuing apace. The 1.0 version of the Rust API guidelines are in progress and should be ready fairly soon. Other important libraries are being developed as well. This is tied in with the general web site improvements. These improvements should make it for developers and engineers alike to search the site and find the information they need faster.
How to help
Rust 2018 is a community effort and they are calling on all Rustaceans to come chip in. More hands make the work go faster. So, if you want to help out the most-beloved programming language of the year, here are some of the teams that are looking for your help!
- WebAssembly working group
- CLI working group
- Embedded Devices working group
- Ecosystem working group
- Dev Tools team – Drop in to #rust-dev-tools on the irc.mozilla.org network.
- Rustdoc team – Check out the #rustdoc on the irc.mozilla.org network.
- Release team – Follow the #rust-release on the irc.mozilla.org network.
- Community team