Mozilla sets its sights on Rust's future

As Rust hits 1.0, Mozilla is organizing ideas about where next to take the language, its toolset, and its users

Now that Mozilla's Rust language has hit its 1.0 milestone, more or less, the company is focusing on the next logical steps.

In a document entitled "Priorities after 1.0," published on the site, Mozilla senior researcher Niko Matsakis outlined the next goals for the language. The full list runs quite long, but the most urgent items are better support for Windows and ARM, better library APIs, and faster compilation.

Of all the items on the list, it'll be heartening for Windows developers and ARM mavens that better Windows and ARM support place so highly on the list. Windows tends to be the odd man out when it comes to supporting new languages, in big part because most languages assume a Unix-like environment. To that end, building for Windows typically involves relying on tools to provide a Unix compatibility layer via something like the MinGW toolchain; Rust currently uses MinGW, but the plan is to shed its dependency on that toolset and be able to build natively on Windows.

Better support for distributing Rust libraries and programs is another high priority. Right now, Rust has a package management system called Cargo, but it only goes so far, and this part of the wish list includes a one-step install process for Rust programs and the ability to distribute binaries with as few external dependencies as possible.

When it comes to compilation, Matsakis notes that "there's a lot of low-hanging fruit here [in optimizing the compiler], but also an opportunity to re-architect parts of the compiler and gain huge wins." Google's Go, which despite its relatively newness has emerged as a contender for creating distributed network applications (e.g., Docker), sports super-fast compilation as one of its selling points. If Rust becomes able to achieve build speeds of the same magnitude as Go, that would push it closer to the scripting-language-replacement territory that Go has laid partial claim to.

Rust was developed at Mozilla as a high-speed systems programming language, akin to C/C++, but with modern concurrency and memory-safety features. At least one major project at Mozilla, the Servo HTML layout engine, is being built in Rust. The language mutated a great deal in its pre-1.0 incarnation, but both the feature set and the language's APIs are now considered stable enough to be the basis for deliverable projects.

Mozilla's bigger ambitions for Rust ostensibly include not just system-native software like Web browsers, but entire operating systems as well, given the language's billing as a way to achieve speed without sacrificing safety. The next step for Mozilla is to put that speed and safety into the broadest possible set of hands, and see what gets built with them.