BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Where Rust is Heading in 2017

Where Rust is Heading in 2017

The Rust core team has settled on a roadmap proposal for Rust which aims to define where the language should be in a year’s time. Partially based on the results of a survey carried through in 2016 among Rust users, it prioritizes improving Rust’s productivity without sacrificing speed and reliability.

Specifically, the 2016 survey brought to light a number of hindrances to Rush adoptions, such as its learning curve, the lack of libraries and IDEs, concerns about the language “maturity”, and compiler performance. The proposed roadmap for 2017 addresses all of them by providing a detailed approach to improvement.

Learning curve

Rust’s learning curve was mentioned by 1 in 4 respondents to the 2016 survey, and it is in part related to Rust's not yet mainstream memory management model, based on the concept of ownership. Among the strategies that the Rust team will try to enact are improving documentation, language diagnostics and features, and tooling.

Tooling

On the tooling side, the Rust team would like to improve both the edit-compile-debug cycle and provide an IDE. Some work has already been done to improve the edit-compile-debug cycle, namely by introducing a mid-level IR (MIR) to desugar most of Rust’s surface and providing a simpler representation for type-checking and translation, and incremental compilation, which has recently reached alpha status. Additionally, the Rust team will try to strike a better balance between current debug builds, which are “too slow to run”, and release builds, which are “too slow to build”.

Rust ecosystem

Maturity of Rust’s library ecosystem is another focus point to improve productivity. This has two sides: on the one hand, providing the means to discover high quality crates, including badges to signal quality metrics, better supporting continuous integration, performing API reviews on selected crates, etc. On the other hand, Rust’s ecosystem should grow and strive to provide 1.0-level crates for essential tasks, with particular focus on crates meant for server-side, concurrent/async/parallel development.

Interoperability

Using Rust in production often requires its integration within existing build systems and interoperation with C++ code. On both accounts, the Rust team aims to make Rust integration within existing organizations easy. In particular, using a C++ library in Rust should not be much harder than using it in C++.

This is just a summary of the proposed Rust roadmap for 2017. For a detailed perspective on Rust roadmap, including a discussion of drawbacks and alternatives, as well as unresolved questions, refer to the RFC.

Rate this Article

Adoption
Style

BT