Rust History

From Rust Community Wiki
(Redirected from History of Rust)

The name Rust[edit]

Graydon Hoare, the creator of Rust, explained his rationale for naming his language "Rust" in an IRC chat. The dialogue can be found on Reddit:

jonanin: any history behind the name?
graydon: jonanin: "rust"?
jonanin: yeah
graydon: people keep asking and I keep making up different explanations.
from an email exchange with an early private reviewer of rustboot:

I love the name. I take it that it refers to your scavenging the skeletal hulks of dead languages, now covered in vines...?

A little. Also big metallic things. And rusts and smuts, fungi. And it's a nice substring of "robust".

jonanin: hah
graydon: IOW I don't have a really good explanation. it seemed like a good name. (also a substring of "trust", "frustrating", "rustic" and ... "thrust"?)
I think I named it after fungi. rusts are amazing creatures.
Five-lifecycle-phase heteroecious parasites. I mean, that's just crazy.
talk about over-engineered for survival
jonanin: what does that mean? :]
graydon: fungi are amazingly robust
to start, they are distributed organisms. not single cellular, but also no single point of failure.
then depending on the fungi, they have more than just the usual 2 lifecycle phases of critters like us (somatic and gamete)
jonanin: ohhh
those kind of phases
graydon: they might have 3, 4, or 5 lifecycle stages. several of which might cross back on one another (meet and reproduce, restart the lineage) and/or self-reproduce or reinfect
jonanin: but i mean
you have haploid gametes and diploid somatic cells right? what else could there be?
graydon: and in rusts, some of them actually alternate between multiple different hosts. so a crop failure or host death of one sort doesn't kill off the line.
graydon: they can double up!
it's madness. basically like someone was looking at sexual reproduction and said "nah, way too failure-prone, let's see how many other variations we can do in parallel"
jonanin: I can't really understand that lol. I'm only 3/4 the way through my highschool bio class which is not much
graydon: !
jonanin: I understood maybe half the words on that page
evanmcc: that's totally insane
jonanin: so a gamete becomes two different organisms in parallel?
graydon: highschool? gosh. I ... definitely was not landing patches on other people's compilers in highscool. precocious! you have a bright future in programming
rumbleca: rust never sleeps...
graydon: jonanin: something like this, yeah. I think basically they have lifecycle phases that are part of two separate reproduction cycles at the same time or something. it's very confusing. I took a mycology course trying to understand all this and it got far too complex for me to follow
anyway, I remember being kinda into them back when I was picking the name.
but then everyone thinks it's a pun on "chrome" so maybe we should stick with that
jonanin: hahahha

It's noteworthy that Rust was initially a lot like Erlang. It had built-in green threads, which made it efficient to spawn lots of threads, panic often, and recover from panics by re-spawning the thread. This allowed to build distributed, fault-tolerant systems, like fungi, which can have parts die off and regrow.


The first version of the Rust logo, designed by Sean Martell[1]

The logo was designed by Sean Martell, a Mozilla employee. The reason why a cogwheel was chosen for the Rust logo is explained in a BugZilla issue:

Graydon Hoare: The rust team was rethinking our initial request for a logo recently. Realizing many of us ride bikes, and that things like bike chainrings are both frequently rusty and very visually distinctive (and look awesome), we thought it might be nice to brand the project with a chainring-themed logotype or such. Either with the letter "R" or the whole word "RUST".

Thinking something minimal looking, line-art / B&W, primarily just a shape that's easy to recognize.

Sound feasible?


Public announcement, July 2010[edit]


Rust 0.1[edit]

Introduction to regions[edit]

Removal of runtime[edit]

Runup to 1.0[edit]

Major post 1.0 updates[edit]

Procedural macros[edit]

Rust 2018[edit]