a google image search for “flower on fire”

Fire Flowers and Marios: Marketing Rust

ashley williams


Gosh that’s a lot of video game references.

Recently, Steve Klabnik wrote a piece on marketing Rust. It questioned whether the party line of safety was the best angle to take. This morning, Graydon Hoare and Dave Herman published some follow up pieces. Mostly, these pieces said that marketing Rust using its safety was definitely correct and that questioning it, was at best, a little off. You can read the pieces here:

In his piece, Dave uses a popular metaphor from Kathy Sierra about fire flowers. She argues that while you may think that fire flowers are your product, your product is really Mario holding a fire flower. This is apparently called a Fire Mario, who knew.

In his piece, Graydon (OG rust creator) says that safety is the raison-d’etre of Rust. This is why he thinks it should be the marketing line. OK.

So- what’s my hot take? I think both Dave and Graydon miss the mark.

I’m going to use this Mario with burning plants or whatever metaphor to try and make it through my point:

Most developers aren’t Marios. They don’t have an affordance for fire flowers, which is to say- they either can’t pick up a fire flower, can’t find fire flowers in their universe, or don’t see any point in picking up a fire flower. At best, a fire flower doesn’t solve the problems they have, or, they don’t know how to phrase the problems they have in a way that a fire flower might be seen as a reasonable solution. Maybe they are metal Mario walking under water. Or just swimming. I dunno, I’m not good at video games.

I think a lot of developers think of Rust’s “safety” the same way a normal person in the real world might think of an actual fire flower: “Oh hey, why is that flower on fire? It looks cool, but I don’t know why this is happening.”

I work primarily with Node, on the package manager, npm, and my background before that was mostly Ruby. I’m coming from a different part of programming than many of the people who work on and with Rust. This place I come from though, it has a LOT of developers in it. A lot of developers that I think would benefit from Rust.

I believe that Steve’s original point was “maybe we should try marketing this a different way”. And I think he is right. I certainly didn’t pick up Rust because it was safe, and while I obviously don’t represent all people coming from dynamic scripting languages, I’m more representative than most people who are currently engaged in Rust.

So what to do? Three thoughts:

  1. If you insist on marketing solely re: safety, please explain what the heck that is. JavaScript developers will get the idea that a for loop that goes out of bounds of an array is a pain in the ass. Start there. Otherwise, “safety” is just a vaguely positive nonsense word.
  2. Market the other cool things about Rust! OMG it is so expressive. The standard library is large compared to JavaScript. In rewriting several Node projects in Rust, I found I could reduce the number of dependencies I needed, just because of some awesome Rust String and Struct functions. Also: Cargo. Cargo is the friggin best.
  3. Tell people what they can build with Rust. Rust solves problems for people who build certain types of things. But if you’ve never built those things, the problems you’d incur while building them aren’t obvious at all. So solving them seems a little irrelevant. If you tell people what they can build, they can try, and when things don’t blow up in their face (like C code that they’ve *never written* at 3am might), they’ll think Rust is neat. And they’ll probably keep using it.

In the end, marketing is about knowing your audience. I want to see Rust grow a LOT, it’s an awesome language. There are a lot of people writing JavaScript, Ruby, Node, etc. who could totally use Rust, but need a different message to understand why.

tl;dr: Some people don’t know what Fire Flowers are. Those people probably won’t use Rust if you keep selling it like that.

EDIT: This tweet is a better tl;dr. just s/the patriarchy/safety and s/men/web developers.



ashley williams

a mess like this is easily five to ten years ahead of its time. @integer32llc @mozilla eng. @rustlang core. rustWASM WG. former @npmjs, @nodejs director.