AIM INTERVIEWS

Graydon Hoare
Creator of Rust

SK
Who are you?
Graydon Hoare
Probably relevant to these questions: "the person who started the Rust project". More generally: a Canadian, a remote worker, an open source developer who likes doing software infrastructure projects, a middle aged white guy with leftist politics.
SK
You started Rust as a personal side project while you were at Mozilla Research back in 2006. Why did you decide to work on Rust? Was there any inspiration?
Graydon Hoare
I was tired of fighting C++. I used nicer languages in my hobby work and I wanted nice things at work too. Lots of people have hobby languages. I just got lucky: Mozilla funded mine. Right time, right place.
Graydon Hoare
Lots of inspiration. ML, Ada, Cyclone, Alef, CLU .. the Wikipedia page on Rust has a decently-exhaustive list, including a lovely one from Berkeley called Sather. I like older 70s, 80s and early-90s (pre-web) PLs, and enjoy digging around in the forgotten PL attic looking for interesting gems. I tend to think of computer history as very path-dependent, and lots of good stuff gets lost or forgotten for no good reason.
SK
What was the basic idea behind Rust? Why was memory safety without a garbage collector such an important problem to solve at the time?
Graydon Hoare
The basic idea for Rust was to harvest existing programming-in-the-large techniques from past/forgotten languages that would help with concurrency and safety problems in modern, large systems programs. It's important because bad actors now attack programs a lot and if the programs are full of vulnerabilities they get exploited. Multithreaded C++ was and is pretty hard to make robust against attack.
Graydon Hoare
"Not having a GC" isn't something I'm religious about. Rust had some task-local GCs at one point, along with CoW values more like Swift. But I knew C++ folks wouldn't adopt something with a mandatory global GC, and I knew some other techniques like affine values and alias control from other PLs, what Rust now calls "move semantics" and "borrowing", or its "ownership system". So eventually that became the only language-integrated memory management pattern in Rust and the rest are special cases in optional libraries.
SK
You stepped away from Rust in 2013. After that, you joined Apple and contributed to Swift. What did your role there entail, and how did the experience compare to your work on Rust?
Graydon Hoare
My role at Apple was quite minor. I arrived late into the Swift project's life and the design and implementation was mostly done. I was there for 3 years and worked on only a few small language features, mostly compiler performance, compiler bugs, the occasional standard library feature. Tried to help out, but very subordinate to the project leads. Whereas when at Mozilla and working on Rust, I was the project lead.
Graydon Hoare
Apple and Mozilla are very different. One is 160,000 people, the other is 750 people. Apple is very intense and focused. Mozilla is much more free-wheeling and anarchic. But I loved working on both teams and miss everyone a lot, they were both once-in-a-lifetime opportunities.
SK
Are there any people or projects you particularly admire today?
Graydon Hoare
Oh gosh, lots. Far too many to enumerate. Let's pick a few projects: Lean 4, Koka, FStar, Hylo, OxCaml. And maybe Egglog. And Bruno Oliveira's work on first class environments. And Databases! I could bore you with dozens of VLDB papers and literature reviews I'm obsessed with. It doesn't really line up with past PL work but I think databases have almost as much to teach the PL community as vice-versa.
Graydon Hoare
I suppose I should also furnish an opinion on LLMs but I don't have much of one at this point. Still too soon to understand what the impact will be. I use them. I don't know what they're going to turn out to be in the long term. They're certainly surprising!
SK
What's a message you have for the world?
Graydon Hoare
Be kind, get more sleep, spend time with your loved ones, go for walks in nature. As the song goes: enjoy yourself, it's later than you think.
Graydon Hoare
Concerning programming and intellectual work in general: follow your interests, go deep on what seems like the right idea to you and don't get too hung up on whether it's trendy or popular. Good ideas are often overlooked and forgotten, or everyone has decided they're bad for no good reason, just bad timing or broken telephone. Pull on a thread and see where it takes you. Trust your curiosity.
Next Interview →