The Paradox of Tolerance

Podcast episode player
0:00 0:00

This episode explores the "paradox of tolerance," and what it means for free software communities, business, conference organizing, and our daily interactions. This episode offers six propositions about tolerance:

  1. Free software requires certain kinds of tolerance
  2. Tolerance has limits
  3. The paradox of tolerance sets up clear distinctions between good and evil
  4. Business can utilize the paradox of tolerance
  5. In practice, tolerance is messy and arbitrary
  6. Kindness outweighs tolerance

The theme music used in this episode comes from the Open Goldberg Variations, performed by Kimiko Ishizaka.



Questions about who and what and when to tolerate can challenge even the brightest minds. The word "tolerance" comes to us from the Latin word tolerare, which means "to put up with." Tolerance is a complex subject, so this episode concentrates on the relevance for free software of something called the paradox of tolerance. I will offer six propositions about tolerance:

  1. Free software requires certain kinds of tolerance
  2. Tolerance has limits
  3. The paradox of tolerance sets up clear distinctions between good and evil
  4. Business can utilize the paradox of tolerance
  5. In practice, tolerance is messy and arbitrary
  6. Kindness outweighs tolerance

Let's begin.

Free Software Requires Certain Kinds of Tolerance

Open source and free software advocates cultivate radical viewpoints regarding openness and freedom. We write code for other people to use, study, redistribute, and modify. We encourage human interaction, so participation in free software communities requires a high degree of tolerance, both for other people and for how other people use our software. In this episode, we explore notions of tolerance to better understand the dynamics of free software communities and free software advocacy.

Tolerance takes many forms, such as religious, moral, racial, and cultural tolerance. Some kinds of tolerance involve mutual respect while others suggest a strong sense of inequality. In most cases, those who think they tolerate well seek to avoid excluding others.

This first sense of tolerance that I mentioned regarding code use and modification creates, perhaps, the least amount of controversy. Conversations about software licenses can grow unwieldy, but free software advocates agree on a great deal. Open source and free software licenses promote a radical openness, and multiple guidelines exist that detail the requirements that the license must meet. For example, Free Software Foundation maintains its own set of guidelines.

Another guideline known as the Open Source Definition, or OSD, was copied almost word or word from the Debian Free Software Guidelines. Open Source advocates use documents like the OSD to determine if a particular license meets the rigorous standards of open source. The OSD, which you can find at, contains statements such as "The license shall not restrict any party from selling or giving away the software." Or "The license must allow modifications and derived works."

I could spend an entire episode investigating any one of the guidelines contained in the OSD, but I found one statement especially helpful for understanding how open source communities approach tolerance. It reads:

"The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research."

The OSD does not discriminate, so open source software cannot discriminate. We as free software advocates must agree to these terms. Most people I know who write free software accept this stipulation, although I've heard some developers express discomfort when they learned, for example, that pornography sites used their code.

Nonetheless, hacking communities avoid limiting how people use their code. We believe that for each instance of someone using code for a purpose that makes us uncomfortable, far more people will use the code for reasons that make us feel good.

So, I offer my first proposition: Free software requires certain kinds of tolerance.

Tolerance has limits

Another kind of tolerance in hacking communities relates to the people who create the code. Free software communities require people to work together, and therefore welcome as many people as possible. One open source software conference included the following diversity statement:

"Platitudes are cheap. We've all heard conferences and communities say they're committed to 'diversity' and 'tolerance' without ever getting specific, so here's our stance on it:

We welcome you.

We welcome people of any gender identity or expression, race, ethnicity, size, nationality, sexual orientation, ability level, neurotype, religion, elder status, family structure, culture, subculture, political opinion, identity, and self-identification. We welcome activists, artists, bloggers, crafters, dilettantes, musicians, photographers, readers, writers, ordinary people, extraordinary people, and everyone in between. We welcome people who want to change the world, people who want to keep in touch with friends, people who want to make great art, and people who just need a break after work."

This continues for more paragraphs. Clearly this conference desires to welcome everyone, and I think these statements sum up nicely the general beliefs of many people who engage in the practice of hacking. And like all good conferences nowadays, this conference included a Code of Conduct that nicely outlines "Excepted Behavior," "Unacceptable Behavior," and "Consequences of Unacceptable Behavior." The section on "Consequences" includes the following statement:

"If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning and without refund."

This, in a nutshell, demonstrates the paradox of tolerance. All of us who run free software conferences welcome as many people as possible ... as long as they agree to our Code of Conduct. The paradox is that we welcome everyone, but not everyone.

Most free software conferences have adopted similar language. For example, the most recent Twin Cities Drupal Camp -- a conference that I have helped organize since 2011 -- included a similar statement:

"If necessary, conference organizers are empowered to take appropriate actions that may include, but are not limited to, warnings, expulsion from the conference without refund, and referrals to venue security or local law enforcement."

We cannot reason with those who reject reason, nor should we tolerate people that disobey the rules. In other words, we cannot have inclusion without exclusion. To tolerate something means we find the thing objectionable, as different. When we cannot tolerate the objectionable thing, we expel it. So we must negotiate the limits of tolerance with caution. Sometimes free software communities must ask people to leave.

This is my second proposition: Tolerance has limits.

Good and Evil

To explain when we should or should not exclude individuals in a group, some people cite the "Paradox of Tolerance." I did not invent this term. This general idea has existed for thousands of years, but Karl Popper first used the phrase "Paradox of Tolerance" in 1945. Popper advocated strongly for something he termed "the open society." In his 1945 book, he wrote,

"Unlimited tolerance must lead to the disappearance of tolerance. If we extend unlimited tolerance even to those who are intolerant, if we are not prepared to defend a tolerant society against the onslaught of the intolerant, then the tolerant will be destroyed, and tolerance with them."

Popper believed that acting too tolerant would lead to the end of tolerance, an he urged people to take a stand where appropriate. Popper, paradoxically, expressed hostility towards anything less than complete acceptance of his ideas. He felt quite strongly that a tolerant society had its enemies -- the intolerant -- that we must stand firmly for tolerance. He laid out his case in terms of a simple dichotomy with tolerant good people on one side and the intolerant bad people on the other. He placed a great deal of faith in the faculty of reason, which he constructs as the enemy of violence.

I offer my third proposition: The paradox of tolerance sets up clear distinctions between good and evil.

Business and Tolerance

Popper's dichotomy can help proprietary software companies, such as Apple, Google, and Twitter, because they decide who can use their software. The past year, especially, these companies have debated who should and should not be allowed to use their products.

For instance, in August 2017 Airbnb revoked the bookings of white nationalists who had planned to attend the "Unite the Right" rally in Charlottesville. Also in August 2017 Cloudflare terminated the Daily Stormer's account, an American neo-Nazi and white supremacist news and commentary website. Some people advocate strongly for revoking use by these kinds of groups. In September 2017, Valerie Aurora, the longtime Linux kernel engineer and Ada Initiative co-founder, gave a talk at Airbnb about the Paradox of Tolerance, suggesting criteria for when companies should ban people from using their products. Let's listen to Valerie Aurora describe her "The Intolerable Speech rule":

Valerie Aurora: "Alright, so here's my proposed rule, and I'm calling it the 'intolerable speech rule.' Um, it's probably going to undergo some more revisions, but here's the basics and I'll go over each element. I suggest that you ban people from using your products if they are advocating for the removal of human rights from people based on an aspect of their identity in the context of systemic oppression primarily harming that group in a way that overall increases the danger to that group. So, we'll go over each one and then we'll do a few examples."

Matthew Tift: Valerie Aurora encourages us to label certain kinds of speech as intolerable. Her "rules" can guide businesses trying to negotiate complex issues about tolerance because her rules justify exclusion. She suggests when to prevent people from using code, which we don't do with free software. She evokes notions of "human rights" and "systemic oppression" and "danger" to justify exclusion.

We profess similar ideas here at Lullabot, where I work. For instance on we describe the criteria we use to determine whether we will work with a potential client in simpler terms: "Often this simply comes down to whether or not you're a good human being we'd enjoy working with." Lullabot has determined it makes good business sense to work with good human beings. We can't stop people from using the open source code we produce, but we can choose our clients carefully.

This leads to my fourth proposition: Business can utilize the paradox of tolerance.

Tolerance Is Messy and Arbitrary

Unfortunately, these kinds of simple divisions do not represent reality. While we can and should expel people from events when they do not follow our codes of conduct, our lives do not stop when we leave our hacking communities. Should we tolerate someone who follows the code of conduct during an event, but not after the event has ended? Some open source advocates firmly believe that we should only judge people by their code contributions, and that nothing else matters. We could compare this attitude to the spirit of open source licenses and find many similarities -- recall that the Open Source Definition, the OSD, does not limit contributions based on a contributor's moral character.

If companies that use open source software to create proprietary software, such as Airbnb, use the Paradox of Tolerance as justification to reject certain people from using their services, should free software projects reject those same people from contributing to their code base using the same argument?

To expose the arbitrary nature of this thinking, we can expand this logic further and ask, should we use software that includes code contributions from those banned people? If, for example, we find out that a that the person who violated our Code of Conduct contributed code used in Google Maps, should we stop using Google Maps? Thinking of that nature could become burdensome. Technology all around us -- in cars, kiosks, elevators, video games, phones, and the Internet -- uses open source and free software, often without our knowledge. Propriety software, such as Google Maps, can utilize open source software built by thousands of contributors.

Perhaps more to the point, we could question the fundamental premise of tolerance. In the early 19th century, Goethe wrote:

"Toleration should, strictly speaking, be only a passing mood; it ought to lead to acknowledgment and appreciation. To tolerate a person is to affront him."

As I mentioned near the beginning of this episode, tolerance comes in many varieties. In some cases, people decide to tolerate one another in a sort of reciprocal recognition. The feeling between groups is mutual. However, in many of the cases I have described, the person or group doing the tolerating has the power. As organizers of conferences, we decide who we will allow to stay. Described in this way, the very idea of tolerance feels less that ideal. None of us wants to think that we are rejecting an person because we think we are morally superior.

Fortunately, quite a few companies, free software communities, and even governments are working on these kinds of thorny issues, and experimenting with a variety of solutions. Frequently, they do their work under the banner of "Diversity and Inclusion," seeking to make their groups both diverse and inclusive. Drupal, for example, has a volunteer "Diversity & Inclusion" group, and I will be interviewing someone from that group in a future episode.

But for now, let me offer my fifth proposition: Tolerance is messy and arbitrary.

Kindness Outweighs Tolerance

Many activities help develop our capacity for tolerance. For example, a style of meditation, called mettā meditation, encourages us to think kind thoughts and cultivate compassion. We typically translate the word mettā, from the Pāli language, as loving-kindness, friendliness, or benevolence. Others scholars have interpreted mettā as "radical openness," a definition that could also describe free software communities. I have spent countless hours practicing mettā meditation, purposefully thinking kind thoughts for everyone -- and I mean everyone. I think kind thoughts about myself. Then I think kind thoughts about my wife and kids and extended family. Then kind thoughts about friends and co-workers and neighbors, extending each person thoughts of peace, happiness, and success.

Perhaps the most challenging aspect to mettā practice requires thinking kind thoughts about the people I dislike, such as objectionable politicians or people who have intentionally injured me. Yet the practice works only if my kind thoughts extend to all people. No exceptions. In fact, regular mettā meditation practice can reveal the pointlessness of acts such as yelling at our dogs or getting upset at our kids.

In terms of hacking communities, developing a disposition toward kindness reveals the futility in thinking about how things used to be or how I would like it to be. We can only improve software projects as they exist right now, in this moment. I, personally, have noticed how my sense of joy only increases as I treat more people with more kindness. True tolerance admits fundamental differences in worldview -- even irreconcilable differences -- and at the same time respects those with whom we disagree. Just as free software does not judge the person who uses it, we gain nothing by judging the people we cannot tolerate. I find life far more happy when I accept the people around me than when I struggle to change them.

Most free software communities would not exist without friendship, and we must practice treating everyone as we treat our dearest friends. At Lullabot we celebrate being human. One of our core values reads: "We value our humanity. We talk in simple terms like humans, conduct our business like humans, and accept the humanness of those around us."

In my daughter's elementary school hangs a poster with the acronym T-H-I-N-K. The poster reminds students to speak up when they have something to say that is true, helpful, important, necessary, and kind. The THINK acronym enables productive conversations when students disagree, and people of all ages can learn from it. Certain situations requires us to speak up and confront intolerance, and in those situations we must act with kindness. True, helpful, important, necessary, and kind conversations transcend sentimental ideals. The poster reminds us that we do not live in a commercial for beer.

I have experienced positive interactions with some of the most hated people in the Drupal community. Maybe I just catch these people on their good days. Perhaps luck is on my side. But I know those experiences would not have been positive if I had not treated these individuals with respect, listened to their stories, and connected with them on a human level, without judgment.

Likewise, when I signed up to teach meditation in a local prison, I did not intend to treat certain prisoners differently based on the crime they committed. I endeavor to treat each person as if they were my newborn child. However, if a prisoner breaks the rules, they cannot attend meditation.

The same should be true in free software communities, we should not only encourage everyone to follow our community codes of conduct, we should treat everyone with respect. That is fundamental.

With that, I offer my final proposition: Kindness outweighs tolerance.


Successful communities communicate their expectations. Both tolerance and intolerance threaten to degrade our interactions, or worse, to unravel the fabric of civil society. Let us go back to communities not merely to tolerate our friends and collaborators, but to act with unconditional kindness. Not a phony kindness, but a confidence in an inextricable, unbreakable connection between all people.

Perhaps you think this does not apply to you or your company or your community. But it would be difficult to achieve such a perspective without engineering walls. Keep in mind that there is no actual "us" or "them." That person who you find so annoying today could become your co-worker tomorrow.

In my experience, most free software communities consist primarily of people who think they are kind. Most of us do not spend our days scrutinizing blatant code of conduct violations. What I am pointing to in this episode is more personal. For example, how do you react when someone asks you "what's a node?" Do you think, "WTF? RTFM! Have you heard of Google?" Or maybe you realize those thoughts aren't helpful and hope that someone else answers, patiently watching the screen, crossing your fingers. Or would you say, with kindness and compassion, "I'll answer your question but first I'd like to know if you are going to use this knowledge for systematic oppression"?

Acting with kindness takes practice, and the first step is noticing how you react in various situations. Not tormenting yourself when you notice anger, but just noticing. Rather than find new reasons to exclude people, we can find new ways to welcome people.

If you have any feedback about this episode, please email me at

Thank you for listening.