Rust is a new language, sponsored by Mozilla, with the core goal of safe and productive systems programming. It’s a language developed industrially, with ambitions for widespread adoption. But it’s also a language deeply informed by PL research, including substructural types, the Cyclone project, Haskell’s type classes, and Scheme macros. And it’s built by a team that mixes PL PhDs with dyed-in-the-wool engineers.
In this talk, I’ll cover some of my experiences as one of those PL PhDs. We’ll tour some of the core features of Rust, tracing the research lineage and seeing what evolution was needed to make them work at scale. We’ll discuss the tough decisions around shipping the language without yet having a soundness proof, and further tough decisions about how to handle soundness fixes. We’ll talk about the way that Rust’s ongoing development is done completely in the open, and how that relates to working in an academic setting. And finally, I’ll mention some of the open research problems around Rust – which runs the gamut from memory models, specification, soundness, API design, to type theory and more.