&$!#% — A Celebration of Swearing

Brief disclaimer: this post contains a swearing, vulgarities and general rudeness 🤬

My daughter asks the best questions. She’s only nine, but we often get hit with questions like, “Why is money valuable?” or “What’s the point of being alive, when all your feelings die when you do?”

What I love about these questions is that you open your mouth to give the answer, which is obvious, but then you think about it and realise that actually it’s not so obvious after all, and then an hour later you find yourself explaining concepts like barter economies and morality when actually you just want a small child to go to sleep.

Anyway, the latest question that inspired this project was: why is it rude to swear?

This question really captured my imagination. Why is it rude to swear? What is it about some words that makes them offensive, outrageous and unacceptable? What makes one thing ruder than another? And why do we even swear in the first place?

This led to one of those late-night internet rabbit-holes, and before you know it I had a spreadsheet of all the common English swear words categorised by content and ranked by rudeness, and obviously the next logical step was to sink days of unpaid time into creating a visualisation.

And thus &$!#% was born: an interactive repository of swear words, profanities and vulgarities.

The idea is to capture as many swear words as possible and show them (roughly) in order of rudeness, creating a resource to explore in order or dip into at random for serendipitous swears. There’s an art to swearing; a kind of zen in picking just the right level of vulgarity for the situation. Accidentally over-milking in your tea might call for a zounds or even a scheiße, but there are times in life when you just can’t beat tabarnak, caralho or even putain de bordel de merde.

All the words are colour-coded, and can be filtered by subject when you need the perfect insult for that special someone in your life.

And for a while, all was well. But once I’d added all the swear words I could think of, it occurred to me that there must be more — loads more, in fact, in hundreds of other languages — how could I possibly find and include them?

The idea of a collaborative data visualisation had been rolling around my head for a while, and this seemed like a great opportunity to try it. After all, there’s nothing like insight from native speakers to give you some context to calling someone’s mum a donkey.

So I added the ability to submit your own swear words, including an estimate of vulgarity, language and description. From humble majority English beginnings, the viz now includes swear words and insults from languages as diverse as Norwegian, Arabic and Hindi, with more coming in all the time.

And in the end, after my deep-dive into donkeys and dickheads, I can indeed tell you the how and why of swearing.

Basically, it’s all about breaking taboos — the spoken or unspoken rules about what society thinks are bad, dirty, or repulsive. Body parts (mainly bums, boobs and genitals) and bodily functions, sex, wee and poo, incest, promiscuity (mainly female promiscuity), profaning against religions — these are the things about which we should not speak.

To swear is to break those taboos, to say the unsayable, and in doing so demonstrate the strength of your emotion. Swearing can be cathartic, or threatening, or to create camaraderie. Swearing can express pain, pleasure, anger, frustration and joy — but ultimately it’s to say look at me, I’m breaking the rules.

Taboos vary in subject and strength between countries and times, so what’s rude in one country might not be rude in another. In the UK, shit is a moderately rude swear word, but in Sweden skit is something you can say around children. Insulting someone’s family will get you in a fight in many Arabic countries. In Scandinavian countries many swear words are religious — fan, helvete and so on — whereas in England profane words like bloody or damn have lost their power as faith has declined.

So learning about swearing teaches you about the society that swears, too. It’s fascinating to compare swearing across languages, but also within cultures. In English, for example, there are more rude words for women, and they’re ruder than the words for men. The rudest word in English is slang for female genitalia. What does that tell you about the taboos in the UK?

If you want to have a go for yourself, then check out the project here: https://profanity.acatcalledfrank.com/ — and let me know if you find your new favourite swear word 🥳

Tech Notes

I built this viz as a personal project — a nice change of pace after working on the titan that is VizSweet for so long. I wanted to keep it simple, try out a few new bits of tech, and have an excuse to learn a bunch of new swear words.

The underlying framework is SvelteKit, a JavaScript (well, TypeScript) app framework that handles front and back-end code together, which is handy. The front-end deals with all the layout and rendering, and the back-end handles submissions. I hadn’t used Svelte much until now, as the bulk of my experience had been with React/Vue/Next. It’s… fine? The built-in reactivity is nice, with less mucking around than React’s hooks, but I probably wouldn’t rush back to it, mainly because there’s a much more limited ecosystem of libraries and tools than compared to React.

Bubble charts like this are imprecise, due both to the unpredictable physics-based layout and the nature of the axis-less, circle-based data points. It’s not what you’d use for something that needs to display exact values, but in this case I used the imprecision to capture the subjective nature of “rudeness” — the nature of the layout means that points often end up slightly muddled, which works well here.

Letting people submit their own swears required a form and a backend to keep everything in — Turso DB, in this case, with a little help from my old colleague Paul Barton and a library called Drizzle.

It’s been a pretty fun build, and a valuable experience as a contrast to the last eight years.


Leave a Reply

Your email address will not be published. Required fields are marked *