In 2006, after a long climb up the stairs, Graydon Hoare started designing the programming language that became Rust. The elevator in his Vancouver apartment building was out of order — its software had crashed, and not for the first time — and he lived on the 21st floor.
On the way up, as MIT Technology Review later told the story, he thought: “It’s ridiculous that we computer people couldn’t even make an elevator that works without crashing!” Hoare, then a 29-year-old programmer who worked for Mozilla, opened his laptop. He hoped his new language would make it possible to write small, fast code without memory bugs.
He named it after rust fungi, a group of remarkably hardy organisms that are, he says, “over-engineered for survival.”
The problem Hoare was aiming at was real. Many crashes, he knew, come from mistakes in how programs use memory, and the same mistakes open security holes. In 2019, Microsoft’s Security Response Center said that each year, memory-safety issues make up about 70% of the vulnerabilities Microsoft assigns a CVE, a public identifier for a security flaw.
Rust 1.0 shipped in 2015 without much of the language Hoare first designed — and without Hoare as project lead.
A spare-time project with “nothing new” in it
For years, Rust was a hobby. When Hoare presented it at Mozilla’s Annual Summit in July 2010, his slides said he had been writing “a compiled, concurrent, safe, systems programming language for the past four and a half years.” The next line read: “Spare-time kinda thing.” A small group at Mozilla had become interested only in the past year, once he told them what he was up to. Mozilla had decided in 2009 to sponsor Rust officially, and it began paying engineers to work on the language.
The pitch was unusual for a new language. “Rust is a language that mostly cribs from past languages,” one slide said. “Nothing new.” Hoare listed older languages it took ideas from, among them Erlang (1987), Newsqueak (1988) and Limbo (1996). A slide asking for help told would-be contributors: “Please: no research or novelty! There’s plenty of known-good technology in the literature.”
That 2010 Rust would look strange today. Its “hello, world” program used log "hello, world";, functions returned values with ret, and the slides promised lightweight tasks, claiming that 100,000 could be spawned in about a second. A “typestate” system checked, among other things, that variables were initialized before use. The compiler was a 38,000-line bootstrap written in OCaml, a functional programming language.
What the Rust team cut before 1.0
Mozilla engineers such as Patrick Walton, Niko Matsakis and Felix Klock joined the work. Through the early 2010s, MIT Technology Review reports, Mozilla engineers and Rust volunteers around the world honed the way Rust manages memory. They created an “ownership” system, enforced by the compiler, in which each piece of data has one owner.
Much of the 2010 language did not survive, and the release notes record the cuts. Typestate was removed in version 0.4 in October 2012 — the release whose notes called borrowed pointers “much more mature and recommended for use.” The @ pointers, Rust’s built-in garbage-collected type, left the language in July 2014, and the library type that replaced them was gone by October. The notes for the first 1.0 alpha, in January 2015, said that Rust “no longer has a runtime of any description, and only supports OS threads, not green threads.” The green threads behind the lightweight tasks of 2010 were gone; Rust now used threads managed by the operating system.
Hoare did not lead Rust to the finish. In August 2013, the newsletter This Week in Rust reported that he had stepped down as project lead and that Brian Anderson would take over. Rust 1.0 shipped on 15 May 2015.
The language found its audience. Rust topped the “most loved” list in Stack Overflow’s 2016 developer survey, at 79.1%, and was still the survey’s “most admired” language in 2025, at 72%. Linux 6.1, released in December 2022, added initial support for writing kernel code in Rust.
What the popular origin story leaves out
Explainers often introduce Rust simply as a language developed by Mozilla. The Rust Core Team’s own 2020 post about the project’s future said it “was originally conceived in 2010 (depending on how you count, you might even say 2006!) as a Mozilla Research project.” Hoare’s own account counts those first years differently. In 2016, he described Rust as a personal project from 2006 to 2009 and, after late 2009, “a Mozilla project conducted in private.”
Retellings stretch the elevator story, too. One says Hoare “knew that the fault lay with the programming language.” MIT Technology Review’s account says that the elevator’s software had crashed and that Hoare knew many such crashes come from how programs use memory. It adds, in general terms, that software in devices like elevators is often written in C or C++, languages that make memory bugs easy to introduce. But it does not say what made that elevator’s software crash, or that Hoare knew the language was to blame.
The Rust Hoare says he wanted
In June 2023, Hoare published a blog post titled “The Rust I Wanted Had No Future.” He listed choices he would have made differently, among them green threads with growable stacks instead of async/await, and modules like those of OCaml and other ML-family languages instead of traits. He also wanted tail calls, references without explicit lifetimes and a built-in decimal type. “I would have traded performance and expressivity away for simplicity,” he wrote. That trade, he added, would have taken the language “in a direction broadly opposed to where a lot of people wanted it to go.”
His conclusion: “The Rust I Wanted probably had no future, or at least not one anywhere near as good as The Rust We Got.”
What Rust’s history shows about new languages
Old ideas can still fill a neglected niche. Hoare’s 2010 pitch leaned on older languages. His slides said everyone was “dodging” the “static, structured, concurrent, large-systems” niche — the territory of C++, which one slide called “well past expiration date.”
The person who names the problem does not have to make every trade-off. Hoare’s frustration started Rust. Typestate went while he still led the project; the garbage-collected pointers and the green threads went after he had stepped down.
The elevator explains why Rust was started. The release notes show how it reached 1.0. Hoare’s post answers the what-if: “Don’t jinx it by imagining I would have done any better!”
Related stories
Sources
- Clive Thompson, “How Rust went from a side project to the world’s most-loved programming language,” MIT Technology Review, February 14, 2023
- Graydon Hoare, “Project Servo: Technology from the past come to save the future from itself,” slides, Mozilla Annual Summit, July 2010
- Graydon Hoare, “The Rust I Wanted Had No Future,” graydon2 blog, June 2023
- Graydon Hoare, “Rust Prehistory Repo” README, November 2016
- Rust release notes: versions 0.4 (October 15, 2012), 0.11.0 (July 2, 2014), 0.12.0 (October 9, 2014) and 1.0.0-alpha (January 9, 2015)
- This Week in Rust 13, August 31, 2013
- The Rust Core Team, “Announcing Rust 1.0,” Rust Blog, May 15, 2015
- The Rust Core Team, “Laying the foundation for Rust’s future,” Rust Blog, August 18, 2020
- Microsoft Security Response Center, “A proactive approach to more secure code,” MSRC Blog, July 2019
- Stack Overflow Developer Survey 2016
- Stack Overflow Developer Survey 2025: Technology
- Kernel Newbies, “Linux 6.1”
- C# Corner, “What Is Rust Programming Language and Why Is It Called a Memory-Safe Language?” (example of the “developed by Mozilla” framing)
- TechInformed, “World in Disruption: Trust in Rust” (example of the elevator retelling)
- Featured image: rose rust fungus on a leaf (illustrative; rust fungi gave the language its name), by Sanjay Acharya, via Wikimedia Commons, CC BY-SA 3.0

Leave a Reply