Strange Loop

A Tale of Two Asyncs: Open Source Language Design in Rust and Node.js

The syntactical and conceptual affordances for asynchrous programming are the most powerful, yet also most controversial, elements and design patterns in Node.js and the greater JavaScript language ecosystem. From nested callbacks, to promises, to async/await, the ability and "ease" of writing asynchronous code has helped earn Javascript (and Node.js) both intense popularity across a large number of domains as well as intense criticism and scrutiny from programming language design experts, professional developers, and new developers alike. 

In it's own effort to be a first class serverside language, Rust has also embarked on it's own journey of language design for asynchronous programming. From Futures, to Tokio, to Async/Await- the Rust community has been prioritizing work to make asynchronous programming not only possible, but ergonomic and productive.

Both of these communities are tackling the same problem, in a very similar moment in time, yet they have very different tehcnical design constraints and governance models. In this talk, we'll explore these two moments and how each community's context affects how conversations and work around async features have unfolded (or continue to unfold). By the end of the talk, we'll have a greater appreciation for the efforts involved in open source language design, the unique challenges of asynchronous programming features, and that ever illusive design concept of intuitive developer experience.

Ashley Williams

Ashley Williams

Rust Core Team, Mozilla

Ashley is an engineer at Integer32, contracting for Mozilla on the Rust Programming Language. She is a member of the Rust Core team, leads the Rust Community Team, and is a member of the infra and cargo teams. Previously, she worked as an engineer at npm, the package manager for Javascript, and currently is the Individual Membership Director on the Node.js Foundation Board of Directors. A long time teacher, Ashley has focused much of her energies on education programs for open source projects, founding NodeTogether in 2016 and currently leading the RustBridge and Increasing Rust's Reach initiatives. She has represented teachers' perspectives at TC39 meetings to influence the growth of JavaScript and continues to be passionate about growing the web through her work on WebAssembly.