Home Mozilla is Designing a New Programming Language Language Called Rust

Mozilla is Designing a New Programming Language Language Called Rust

Mozilla is designing a new multi-paradigm programming language called Rust. According to the Rust Project FAQ, the Rust team’s goal is “To design and implement a safe, concurrent, practical, static systems language.”

Rust began as a side project by Graydon Hoare in 2006, and Mozilla got involved in 2009 once the project was mature enough to run some basic tests. The language is now published on Github, but is in no sense production-ready.

Here’s a code sample from the Rust Language FAQ:

Here’s a list of features from the Language FAQ:

Safety oriented:

  • Memory safe. No null pointers, wild pointers, etc. Automatic storage management.

  • Mutability control. Immutable by default. No shared mutable state across tasks.

  • Dynamic execution safety: task failure / unwinding, trapping, logging. RAII / dtors.

  • Typestate system: ability to define complex invariants that hold over data structures.

Concurrency and efficiency oriented:

  • Explicit memory control. Layout and allocation control. Interior / value types.

  • Very lightweight tasks (coroutines). Cheap to spawn thousands-to-millions.

  • Stack iterators (effectively lambda-blocks w/o heap allocation).

  • Static, native compilation. Emits ELF / PE / Mach-o files.

  • Direct and simple interface to C code (switch stacks and call, ~8 insns).

Practicality oriented:

  • Multi-paradigm. pure-functional, concurrent-actor, imperative-procedural, OO.

  • First class functions with bindings.

  • Structurally-typed objects (no nominal types or type hierarchy).

  • Multi-platform. Developed on Windows, Linux, OSX.

  • UTF8 strings, assortment of machine-level types.

  • Works with existing native toolchains. GDB / Valgrind / Shark / etc.

  • Practical rule-breaking: can break safety rules, if explicit about where and how.

In addition to Hoare, other contributors include Ecma committee member Dave Herman and JavaScript creator and Mozilla CTO Brendan Eich.

Ed Borasky recently commented here at ReadWriteHack: “We flat out don’t need any more programming languages! What we need is *efficient* implementations of the ones we have now and IDEs / version control systems that enforce software engineering discipline.”

Do you agree? Do we have enough programming languages, or is there a need for more experimentation?

About ReadWrite’s Editorial Process

The ReadWrite Editorial policy involves closely monitoring the tech industry for major developments, new product launches, AI breakthroughs, video game releases and other newsworthy events. Editors assign relevant stories to staff writers or freelance contributors with expertise in each particular topic area. Before publication, articles go through a rigorous round of editing for accuracy, clarity, and to ensure adherence to ReadWrite's style guidelines.

Get the biggest tech headlines of the day delivered to your inbox

    By signing up, you agree to our Terms and Privacy Policy. Unsubscribe anytime.

    Tech News

    Explore the latest in tech with our Tech News. We cut through the noise for concise, relevant updates, keeping you informed about the rapidly evolving tech landscape with curated content that separates signal from noise.

    In-Depth Tech Stories

    Explore tech impact in In-Depth Stories. Narrative data journalism offers comprehensive analyses, revealing stories behind data. Understand industry trends for a deeper perspective on tech's intricate relationships with society.

    Expert Reviews

    Empower decisions with Expert Reviews, merging industry expertise and insightful analysis. Delve into tech intricacies, get the best deals, and stay ahead with our trustworthy guide to navigating the ever-changing tech market.