Tuesday, January 24, 2012

Mozilla releases programming language Rust 0.1

After more than five years in the pipeline, Mozilla Labs and the Rust community have released the first alpha — version 0.1 — of the Rust programming language compiler.

The Rust language emphasizes concurrency and memory safety, and — if everything goes to plan — is ultimately being groomed to replace C++ as Mozilla’s compiled language of choice. Browser prototypes programmed in Rust will eventually emerge, and then one day Firefox — or parts of Firefox — might be re-written in Rust.

Rust is a strongly-typed systems programming language with a focus on memory safety and concurrency. The compiler is supported on Windows, Linux, and Mac. Feature-wise, Rust intentionally doesn´t bring any new ideas, and instead builds upon existing, known features that are present in other languages.

Inevitably we have to compare Rust to Go, Google’s new language. The Rust community explicitly says that it was not inspired by Go — development of Rust began before Go — but by other languages made by Rob Pike such as Newsqueak, Alef and Limbo. Feature-wise, the languages are quite similar, but Rust seems to be more security- and safety-oriented. Where Go has global garbage collection, null pointers, and shared mutable states, Rust GC is optional and per-task, null pointers are not allowed, and objects are immutable by default.

Performance wise its target is to be as fast as C++. So far most of this new language's features do work but are incomplete and the library APIs are still subject to change which means you can already try it out and play with it but future versions of the compiler may render your code useless.

Take a look at the Rust 0.1 release notes.