Brainstorm crew: Async Foundations Working Group outlines its ‘vision’ for Async in Rust

Brainstorm crew: Async Foundations Working Group outlines its ‘vision’ for Async in Rust

A group of developers have started an initiative to help make the Rust programming language a more attractive choice for building distributed systems such as cloud services.

Just a month after the core foundation for the language launched, Async Foundations Working Group has kicked off with a shared vision document for Async Rust that it hopes will spark a collaborative effort to accelerate Rust adoption for distributed systems.

Rust was designed for performance and safety, especially safe concurrency, which ought to make it a good choice for development for distributed systems. But Niko Matsakis, a core developer on the Rust team, explained on the Rust blog that asynchronous programming support in Rust needs to move beyond the “MVP” (minimum viable product) state where it is today and made more accessible to a broader range of developers.

“We are launching a collaborative effort to build a shared vision document for Async Rust,” Matsakis said. “Our goal is to engage the entire community in a collective act of the imagination: how can we make the end-to-end experience of using Async I/O not only a pragmatic choice, but a joyful one?”

The starting point of the document is to introduce characters that typify particular developer roles that will help the group to think about the different kinds of priorities and expectations that different people have with regard to Async Rust.

While this sounds a little bizarre, Matsakis said that one of the reasons for doing this is to compensate for the “curse of knowledge”, a trap that those working on Async Rust may be liable to fall into because they are already experts in Async Rust and may overlook the challenges and knowledge gap that less experienced developers will face.

The ultimate goal of the vision document is to clearly define what the status of Async Rust is now, what the community wants the future to look like, and delineate how to get there.

“Async Rust was intentionally designed not to have a “one size fits all” mindset, and we don’t want to change that. Our goal is to build a shared vision for the end-to-end experience while retaining the loosely coupled, exploration-oriented ecosystem we have built,” explains Matsakis.

The plan is to start with a brainstorming period that will run until the end of April 2021. After this, the working group leads will begin work on assembling the various stories into a coherent draft. This draft will be reviewed by the community and the Rust teams and adjusted based on feedback.