I’m a self-confessed zealot about many things. Being a proud member of the Rust Evangelism Strike Force (occasionally abbreviated as R.E.S.F.), I tend to exude a lot of waffly enthusiasm about the Rust programming language to anyone that will listen, if we’re talking about something programming-related. (No, I don’t (yet) start talking about Rust in the middle of everyday conversation1). I am of the opinion that, if most pieces of software were to be rewritten in Rust, the world would be a better place.

As a non-social-media user, I also tend to go off on one about how not using social media has improved my quality of life significantly2 (indeed, I might even write a blog post about it at some point in the indeterminate future). I am also of the opinion that, if most people stopped using social media as much, the world would be a better place.

As one final example, I also believe that the new matrix.org chat protocol is the bee’s knees. If everyone abandoned other messaging platforms, such as WhatsApp, Facebook Messenger, Hangouts, et al., and started using Matrix instead, I am of the opinion that the world would also be a better place.

Okay, so, I have a lot of opinions about stuff, and I want all of this stuff to succeed and do well and enrich the lives of various people. That’s a good, positive attitude to have, and there’s nothing wrong with the positive component of that attitude. However, as you may have guessed, this kind of zealotry also has a rather negative side to it as well. If Rust is the best thing since sliced bread, that kinda implies that things which are Not Rust aren’t good. If not using social media is great, then using social media is, well, not great. If Matrix is the best chat protocol around, then the other ones are kinda crap, right?

RIIR

It’s this negative component of zealotry that leads to a lot of ruffled feathers and conflict. Take this quotation from “Have you considered Rewriting It In Rust?”, a blog post which documented the more negative effects of Rust Evangelism:

…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 language3. […]

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?

Clearly, this behaviour doesn’t exactly make the Rust evangelists very popular with other members of the software community. It’s the equivalent of the annoying-as-hell Jehovah’s Witnesses who show up unannounced on your literal doorstep and ask similarly annoying questions, or lecture you for a while about the benefits of being a believer. I don’t have a large sample size, but I don’t think Jehovah’s Witnesses are very popular people.

The Rust evangelists/Jehovah’s Witnesses, however, don’t really mean to cause harm4; they just found something cool, and they want to share it with other people. That’s, after all, an integral part of what people do, isn’t it? That’s not, however, how it comes across. The message that comes across from lots of overzealous zealots is more like “You made a mistake by not doing things the way I like them, and I won’t be satisfied until you change your ways and do it the way I want you to” (perhaps not as extreme as that in some cases, but something along those lines). That’s a whole lot different from what the well-meaning zealot actually wanted to do - they just wanted to make people’s lives better with their software! But, due to this conflict, the zealot ends up walking away disappointed or annoyed at not achieving their aims:

Once again, my friends make some snappy comments [in response to a zealot’s questioning]. 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.

Stallman

Another example is the world-famous zealot Richard Stallman, the guy who is kinda responsible for the whole GNU project, which brings us most of the tools (the GNU coreutils, GCC, etc.) that make a modern installation of Linux actually possible. He, famously, argued that we should call the ‘Linux’ operating system ‘GNU/Linux’, because, after all, a Linux installation uses both the Linux kernel (the program responsible for looking after other programs) and the GNU coreutils.

He’s right, in my opinion - the Linux people should acknowledge all his work, and call it GNU/Linux. There are many benefits to adopting his view. However, again, him trying to force his view on other people, who don’t necessarily care about the naming of the system, makes Stallman unpopular with a lot of people. In fact, there’s even a piece of copypasta about it:

I’d just like to interject for moment. What you’re refering to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

Much like I’d be angry if a Jehovah’s Witness started lecturing at me, I also wouldn’t take kindly to Stallman directing this rant at me, if I were a maintainer of a popular Linux distribution. Again, the message it sends is “how dare you not do things the proper way?” - although it isn’t really meant that way; Stallman just wants to spread the word about GNU. GNU’s a pretty cool5 project, too.

Matrix

I’ve, of course, encountered this very same problem6, in trying to get people to use the Matrix chat protocol. I’d like to think that I’m not too much of a controlling, annoying bastard, but holding that opinion whilst incessantly badgering people to change their chat app is kinda stupid on my part. I mean - nobody that the average person whom I try to convert knows uses Matrix. What kind of person do I think I am, asking someone to download, sign up for, and start using a special new application, just so they can talk to me (and nobody else), because I have weird, stupid opinions about messaging software and won’t use anything else? When I have made this suggestion to people in the past, they quite rightfully have not been very happy with my overzealous behaviour.

And, to be honest, neither am I. Forcing someone to use something they don’t want to use in order to contact me isn’t right; it’s essentially me overriding someone else’s wishes and saying “no, screw you, you do it my way or no way at all”. Faced with this harsh ultimatum, many people reasonably choose to appease my selfish demands, and start using the new software - which, in fact, just makes things worse.

Considering things a bit differently

People generally have reasons for doing things a certain way. To evangelise and waffle and exhort the benefits of your own software is a way of setting those reasons at naught, and saying that your reasons for doing things your way are most certainly better. (To make matters worse, often the proposed alternative is not actually better - Rust, for example, is full of holes in many ways7, and Matrix is still in beta, and occasionally eats people’s messages.)

So, the takeaway from all of this is that zealots (me included) should try and employ the positive form of zealotry only, and not try and impose their views on others. You don’t make friends by walking up to people and nonchalantly suggesting that they become a friend of yours - no, you have a pleasant conversation with them, and let them make their own judgement on the matter. And, crucially, you then respect their judgement, and stop talking to them if they don’t actually want to talk to you. You, therefore, won’t attract new people to your movement by trying to force it on people. If these people are friends of yours, you might casually float the idea of them using thing X, and perhaps have a little debate about it. (If they’re complete strangers, then don’t!) If they don’t want to, fine. Change the subject. Unless you don’t want the people you’re talking to to like you any more, don’t keep trying to convince them to use the software.

After all, what would you rather have - people who are as enthusiastic about thing X as you are, or people who only use it because they’ve given in to your incessant whining about it, and who can’t wait to get rid of it as soon as possible?


  1. The exception to this rule is if someone mentions ‘rust’ (i.e. iron(III) oxide), where I can’t resist throwing in a ‘fearless concurrency’ in response, because I like making awful puns. 

  2. Often in an unsubstantiated manner - I’ve never actually used social media extensively, so making the claim that it’s crap is something I’m not really allowed to do. More on that later…! 

  3. Please note that this represents a minority of Rust community members, as the linked blog post states. Most Rustaceans, thankfully, are not annoying zealots. We’re nice people; stop by and say hi sometime, if you’d like! 

  4. We assume. Of course, there are trolls, but let’s assume that these guys possess a genuine interest about their thing, instead of trying to create conflict for the fun of it. 

  5. Understatement of the year, of course; the free software community wouldn’t be where it is now, if it were not for GNU’s existence! 

  6. …which is part of the reason why I’m writing this thing. 

  7. c.f. my rant on how async Rust sucks