/random/RIIR

Have you considered Rewriting It In Rust?

My first proper programming language was C. It was super confusing, and I wrote some terrible code that didn't really do anything terribly useful.

Along the way, however, I learned a bit about how computers do things, sort of. I say sort of because C is a high level language.

Of course, there are higher-level languages, and those end up being really good for a very wide array of tasks, so I went and learned them, and then I started actually getting things done. I'm glad I started with C, though, since it gave me an idea of what these other languages must be doing under the hood to accomplish so much with so little code.

Using Scheme, Python, or Javascript, I didn't have to bother with managing the computer's memory allocation manually, and that turned out to be a lot more fun.

At some point a while back, I heard about Rust-lang.

What is Rust?

Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.

Sounds good, right?

Yea, actually.

I think it's a pretty awesome language. The problem is, I make my living writing stuff working on web apps, and that means writing Javascript. That's not a problem, necessarily, but I just don't have much use for a language like Rust.

It definitely seems awesome, and as a lisp aficionado, I love a lot of its high level concepts. As I recall, Rust even has properly nesting block comments, which I find quite practical.

Where am I going with this?

Well, I just wanted to clear up that I don't think Rust is a bad language. I'm not going to criticize Rust in this article, however, I am going to criticize a part of the community surrounding the language.

To be honest, actually, I'm not really sure the people I'm going to criticize are even a part of the community. At best, they seem to be a part of the fringe.

Who are these people?

They are the people who show up unannounced on your software project's doorstep (probably your issue tracker) and ask the following question:

Have you considered Rewriting It In Rust?

Yes, I'm starting a language flame war

Ok, here we go.

If you've spent any time at all in a community where programmers hang out, you've probably seen a flame war over which language is best.

I don't know which language is best, though I've argued for Scheme many times because nobody else seems to be doing it.

That being said, I've noticed that this particular subset of the Rust community seems to do this particular thing often enough that it's nearly the only thing that I know about the Rust community.

I've joked about it with friends and coworkers, and sure enough, most of them have witnessed it in the wild.

I believe the first time I saw it was on the (now disabled) cjdns issue tracker.

I was lucky enough to have the tracker turned on for long enough that I was able to get a screenshot:

It all started and ended pretty quickly. Some Rustafarian asked a question, and the author (@cjdelisle) answered somewhat sarcastically.

Once OP figures out that their brilliant idea is not being taken seriously, they get annoyed and leave.

But wait, there's more

Yea, of course it goes on. I heard it a few more times, laughed about it (oh, this again), and then continued on with my life.

Of course, clearly it happened enough times that I started to notice a trend, because as I mentioned, I've joked about it with people, and they've noticed it too.

So, this morning (2016-03-22) I saw a thread in a repo I'm watching, and there it was again:

Once again, my friends make some snappy comments. Pair those with a classic if you want it written why don't you write it, a few more lulz and our Rustacean acquaintance gets annoyed:

ok, didn't thought a simple question would attract that much angry trolls.

..and things pretty much die out.

But then I started thinking

We joked about it on IRC, and a few more people comment that they've also seen this in the wild, and quickly enough we find that we need an acronym because Rewrite It In Rust takes too long to type and so RIIR is born.

So, naturally, once an acronym is born, we have a meme, and memes like to spread. So, naturally, I start digging:

Who else has been hit by this storm that has been sweeping the web?

Nix

Apparently there were a few threads like this one which went on for a while. I haven't checked the exact timelines, but since this is a language flame war, I'm sure somebody will leap in to do that research for me.

Tor

Yup, Tor, the very large, critical infrastructure that keeps journalists, criminals, schizophrenics, and piracy privacy activists anonymous has been asked to rewrite their software.

More still...

Why not rewrite the Linux Kernel? I'd love to hear Linus's answer to this.

Then of course there's this comprehensive thread on Hacker News covering a bunch of angles on the pros and cons of this meme.

Finally, I stumbled across this blog.

Despite being quite new, and certainly newer than the meme itself, this post seems to exemplify many of the talking points extolled by proponents of RIIR.

Its title even comes in the form of a call to action:

Rewrite Everything In Rust

So...?

I don't really have more to say on the matter. I just wrote this much to document a phenomenon I've noticed.

I don't have a comments section, because it ends up being really time consuming to say annoying, opinionated things if you have to answer for the fallout in your comments section. Instead, I made a github repo where you can file an issue which:

  1. voices your own obnoxious opinion
  2. supports my thesis
  • super bonus points if you find more github issues asking for Rust rewrites
  1. refutes my thesis
  • super science points if you find that this behaviour is not exhibited disproportionately by Rust users
  1. links to some project where somebody actually did Rewrite It In Rust

Did this post offend you?

Cool.

Talk about it.

Tell your friends.

Good memes die hard.

--ansuz

2016-03-22