Occurences of swearing in the Linux kernel source code over time
105 comments
·June 14, 2025holowoodman
Theory: the shift towards lesser swearwords is a sign of corporatization, making the linux source a soulless bland hellscape of confirmity.
thewisenerd
theory: the amount of crap is increasing. the number of fucks given are decreasing.
Arainach
Hopefully in a few decades the last of the people who think that using respectful discourse means no fun can be had will be gone and we can stop rehashing these threads.
You're contributing to something that runs on billions of devices across the world and is maintained by people around the world of all types. If you can't describe your code, your reasons, and your notes politely, do better.
rfrey
I contend that you are slipping in the words "respectful" and "professional" and assuming the benefit of their positive connotations without an argument that simply omitting the occasional well-placed curse is indeed "professional".
I think so-called "professional" speech - which I'd call bland and often ineffective speech - is professional in the same way that a suit and tie is professional. It's a uniform to ensure nobody stands out, and the corporation can absorb everybody's personality, like flour incorporated into bread dough. White bread, no seeds.
perching_aix
> is professional in the same way that a suit and tie is professional. It's a uniform to ensure nobody stands out, and the corporation can absorb everybody's personality, like flour incorporated into bread dough. White bread, no seeds.
I take you also strongly believe then that when I waltz up to work in some random hoodie, sweatpants and running shoes, that's actually some bespoke eloquent expression of self, full of meaning?
Reminds me to all those "he/she is wearing this/that kind of glasses/shoes, that means <extremely specific personality trait>" scenes from older movies and shows. Holy hyperbole.
Arainach
Cursing adds nothing to the code. "// Stupid fucking hack" is worse than "stupid hack" (more characters while conveying no extra information) and much worse than "work around Lotus 123 leap year calculation bug"
SapporoChris
Vulgarity is a crutch used by those without the ability to communicate effectively.
https://www.scientificamerican.com/article/is-swearing-a-sig...
dogleash
>people who think that using respectful discourse means no fun can be had will be gone
It's not absolute-zero fun, but everyone understands it's a sign the vibes will be up-right, right?
thrwwy451
It happens to run on billions of devices, after corporations realized they can profit from "a (free) operating system (just a hobby, won't be big and professional like gnu)".
> and is maintained by people around the world of all types.
You seem to think that the whole world shares your definition of "polite". After living in a few quite different countries, I have to disagree. The diversity out there is huge. There's no point trying to solve this "problem", it's an impossible task.
perching_aix
> It happens to run on billions of devices, after corporations realized they can profit from "a (free) operating system (just a hobby, won't be big and professional like gnu)"
While hordes of people peddle that everyone should be using it like gospel.
> After living in a few quite different countries, I have to disagree.
Yeah dude, tell us about all the countries where cursing isn't impolite and unprofessional.
koverstreet
Personally, I think the nicest thing I can do, for my users, and for the engineers who come after me, is to write code that works, and write it in such a way that other people can figure out what it does without wanting to gouge their own eyes out.
Clearly, we do not have the same goals.
Perizors
It is not mutually exclusive tho
javcasas
There are two types of people: the ones that write the code, find the bugs (including hardware ones), find the bad design decisions (including the ones they wrote themselves)... and the ones that complain that they found a swearword in the source code they never see because compilation step.
Or as they say in the army: do, lead, or get out of the way.
Arainach
There are far more than two types; all of the most effective programmers I've ever worked with can do everything you mentioned and write professionally.
If we have to boil it down to two types, however, I'd split it as "people who think they can do everything themselves and only the code matters" and "people who build effective teams capable of far more than themselves solo", and it's the second group that does the most impressive things. Being professional and respectful is quite beneficial for that group.
danparsonson
Total non-sequitur - it's entirely possible to be highly productive and also moderate your written language for a wider audience. What a ridiculous distinction to make.
kps
> do better
I find that expression far more offensive than ‘fuck’ or ‘shit’. Similarly (and non-exhaustively): ‘bad take’; ‘not a good look’; ‘this ain't it’; ‘… not the … you think it is’; ‘…, actually’. They're all personal insults. “This code is crap” is fine; “You're crap” is not.
mystified5016
Yeah, you tell 'em! Anyone who doesn't conform to Corporate Culture and treat the dress code and code of conduct as their own personal Bible, upheld even on their time off, they're all terrible engineers and should go work on some script kiddie project.
javcasas
I have never worked on a big corporation. But I find interesting about corporations forbidding swearwords in code. I mean, the people responsible for forbidding swearwords rarely read code. And if they read code with any frequency and are somewhat proficient at it, most likely they have their own list of swearwords.
Also we should look to add more keywords to programming languages that trigger naïve filters. I'm all in for another era of broken censorship to poke fun at the people who know nothing, but always have an opinion.
gspencley
I don't personally care about language choices in code, but I'll play devil's advocate and speculate as to why a business might be concerned.
1. Reputational harm in the event that code needs to be shared. Say, the code gets read in court, or an outside consultant is brought in who is given access to the code. The company likely wants to maintain the same standard of professionalism that they expect when their employees write or utter spoken language in the workplace for the same reasons.
2. Similar to #1 but nuanced enough to deserve its own mention: code is a business asset. It can be sold or licensed out. The company may fear that language that it deems unprofessional could depreciate the value of that code in the context of selling or licensing it to 3rd parties.
Personally I think that the fuss over "bad words" is deeply irrational to a religious degree. The idea that arbitrary sequences of phones or characters will cause anyone within ear or eye-shot to become offended is rather absurd. But you can't choose what planet you do business on and, on Earth, there are a lot of silly people.
thfuran
>The idea that arbitrary sequences of phones or characters will cause anyone within ear or eye-shot to become offended is rather absurd.
No more absurd than the notion that a mere sequence of sounds could convey any other meaning of elicit any other response.
noworriesnate
Yeah I had a coworker who put salty MessageBox.Show debug messages in the code, and one day while demoing the software a pop up appeared that said “BITCH!!!”
Needless to say the customer was not amused. So the simple solution is just ban the bad words from the source code.
didntcheck
> the same standard of professionalism that they expect when their employees write or utter spoken language in the workplace for the same reasons.
Depends a lot on the culture. In the countries I've worked in, anyone trying to forbid profanity in the workplace would be laughed out of the room. The laughter would likely turn to anger if it turned out to be Americans trying to impose puritanism on another country's project
toast0
Also 3, fear of reputational harm if the code leaks. Microsoft got a lot of PR for curse words in code that leaked, and then they locked it down.
mcgrath_sh
I can swear a lot while talking. I have never written a curse word in my code, especially professionally. Just seems odd and not useful? I wouldn't be offended if I came across one, but it seems weird to use in a professional setting? A lot of the times I have seen inappropriate words used were not in any context and were used as a "joke" when logging/debugging. So "dicks 01" or "fuck me 01" instead of a bland "check 01" or whatever. For some reason, that seems much more unprofessional than a comment like "this code is shitty but works, need to clean up."
The contextless swearing seems so unnecessary and adds nothing to the code, whereas a comment with a curse word in it reads way more human.
perching_aix
> I mean, the people responsible for forbidding swearwords rarely read code.
Just plain not true.
eyeris
At a previous company, legend had it that swear words in code were banned because of an incident. A vendor was called in to debug a platform error which led to a code review. In the code reviewed, there were many expletives cussing out the vendor for undocumented behavior in their platform.
perching_aix
> a soulless bland hellscape of confirmity.
I'll never understand this mentality. It's code, not some """self-expressionist""" art project.
msgodel
I think it indicates stronger internalization of the "theory" (using phrasing from "Programming as Theory Building.")
There's a kind of "nesting" thing 10x/100x programmers do with code and it tends to manifest this way. The opposite extreme is the 0.1x programmer dequeing agile tickets they don't really understand and issuing broken PRs overworked senior dev "maintainers" LGTM merge. I think everyone exposed to corporate software (on both sides) is really tired of that.
darkwater
They went up, actually. "crap" skyrocketed in the last years, and the rest were more or less stable.
bravetraveler
> They went up, actually. "crap" skyrocketed in the last years, and the rest were more or less stable.
To their point, I would consider "crap" a lesser swear. More "fuck" or "shit" would counter-intuitively imply... certain qualities [by not being so conformist]
darkwater
And what about damn then? Is that even a swear word?
kps
More crap in the tree is also a sign of corporatization.
null
bowsamic
Strange to make such a point based on what you expect to happen when clicking on the link would immediately show the opposite to be the case. But I guess you didn’t need to do that bc you already “knew” the swear words would fall?
bonoboTP
It seems like absolute count of occurrences, not normalized to codebase size.
Even more informative would be to plot the occurance rate within new code.
0x000xca0xfe
OKR for H2: Increase edginess of Linux for a less corporate feel
Key result: Boost occurrence of swearwords by 20%
Key result: Create a new metric that tracks relative swearword use per line YoY
Key result: Attract at least 100 comments on HN or Reddit about the new code
sschueller
Retard may not be in there as a swear word. It could be a comment regarding a "delay". [1]
[1] :to delay or impede the development or progress of : to slow up especially by preventing or hindering advance or accomplishment
af78
Indeed. Most of the matches for "retard" have the meaning of "delay":
$ git grep -i retard v6.15
v6.15:drivers/net/dsa/sja1105/sja1105_dynamic_config.c:/* The switch is so retarded that it makes our command/entry abstraction
v6.15:drivers/net/wireless/broadcom/b43/phy_a.h:#define B43_OFDMTAB_ADVRETARD B43_OFDMTAB(0x09, 0)
v6.15:drivers/net/wireless/broadcom/b43/phy_lp.h:#define B43_LPPHY_ADVANCEDRETARDROTOR_ADDR B43_PHY_OFDM(0x8B) /* AdvancedRetardRotor Address */
v6.15:drivers/net/wireless/broadcom/b43/phy_n.h:#define B43_NPHY_PHYSTAT_ADVRET B43_PHY_N(0x1F3) /* PHY stats ADV retard */
v6.15:drivers/net/wireless/broadcom/b43/tables.c:const u32 b43_tab_retard[] = {
v6.15:drivers/net/wireless/broadcom/b43/tables.c: BUILD_BUG_ON(B43_TAB_RETARD_SIZE != ARRAY_SIZE(b43_tab_retard));
v6.15:drivers/net/wireless/broadcom/b43/tables.h:#define B43_TAB_RETARD_SIZE 53
v6.15:drivers/net/wireless/broadcom/b43/tables.h:extern const u32 b43_tab_retard[];
v6.15:drivers/net/wireless/broadcom/b43/wa.c:static void b43_wa_art(struct b43_wldev *dev) /* ADV retard table */
v6.15:drivers/net/wireless/broadcom/b43/wa.c: for (i = 0; i < B43_TAB_RETARD_SIZE; i++)
v6.15:drivers/net/wireless/broadcom/b43/wa.c: b43_ofdmtab_write32(dev, B43_OFDMTAB_ADVRETARD,
v6.15:drivers/net/wireless/broadcom/b43/wa.c: i, b43_tab_retard[i]);
v6.15:drivers/net/wireless/broadcom/b43legacy/ilt.c:const u32 b43legacy_ilt_retard[B43legacy_ILT_RETARD_SIZE] = {
v6.15:drivers/net/wireless/broadcom/b43legacy/ilt.h:#define B43legacy_ILT_RETARD_SIZE 53
v6.15:drivers/net/wireless/broadcom/b43legacy/ilt.h:extern const u32 b43legacy_ilt_retard[B43legacy_ILT_RETARD_SIZE];
v6.15:drivers/net/wireless/broadcom/b43legacy/phy.c: for (i = 0; i < B43legacy_ILT_RETARD_SIZE; i++)
v6.15:drivers/net/wireless/broadcom/b43legacy/phy.c: b43legacy_ilt_retard[i]);
v6.15:drivers/net/wireless/broadcom/b43legacy/phy.h:#define B43legacy_OFDMTAB_ADVRETARD B43legacy_OFDMTAB(0x09, 0)
v6.15:drivers/net/wireless/broadcom/brcm80211/brcmsmac/d11.h:/* Advance Retard */
v6.15:fs/bcachefs/bkey_cmp.h: /* we shouldn't need asm for this, but gcc is being retarded: */
GJim
It's baffling anybody would think otherwise. Reddit auto-censorship (and such auto censorship elsewhere) has a lot to answer for.
perching_aix
See the other comment where the guy mentions it's overwhelmingly used in a non-cursing manner, then the first hit is it being used as cursing.
jansan
In Germany we have "Retard-Tabletten" (Tabletten = pills), which are not intended to stop (or accelerate) cognitive decline, but release the active ingredients with a delay.
perching_aix
We have those too. I wonder how many people actually know that's what that means, cause it's not an everyday word by far here in this meaning.
d3m0t3p
You can check company names too ! It's interesting to see that by default, the graph shows google,apple. But adding meta, and IBM really changes the plot.
Meta went from 2K to 10K+ from 2018 to 2025. While IBM seems to have stopped contributing in 2008. Since they the merging with RedHat, I would have expected to see them increase again but none of RedHat / IBM seems to have increase. https://www.vidarholen.net/contents/wordcount/#redhat,oracle... Not sure if their name appearing means that they are contributing tho.
Really cool project,
M95D
Meta is not just a company name. Look at how it's used:
https://github.com/search?q=repo%3Atorvalds%2Flinux%20meta&t...
Zobat
I wonder if there's anything not referring to IBM that matches that search. Add them and you'll see that they soar over all others.
necovek
All the mentions of "IBM PC"? "HP" seems to follow closely behind too (Dell is nowhere close though but comparable to "redhat").
Add "arm" in and it's a different ballgame: they are more than 2x anybody else, Meta and IBM included.
Mostly goes to say that this doesn't really show much :)
roryirvine
LWN publish better stats for every kernel release - the most recent (for 6.15) can be found at https://lwn.net/Articles/1022414/
So RedHat were the third largest employer by number of changesets (after Intel and Google), IBM were 15th - but, by number of lines changed, they were 5th and 4th respectively.
INTPenis
But why have Apple contributions skyrocketed? I have never heard of Apple using Linux in anything.
detaro
This is mentions of Apple in the source code, not contributions, and non-Apple people have added lots of support for Apple hardware over the years.
robertlagrant
The recentness of this makes me wonder if this is Asahi contributions.
Zobat
Apple is Berkeley Unix-based, while not actually Linux it's possible their contributions to open source have made it's way into Linux (me guessing, no real experience of either Linux or Mac).
Could also be that there's been work done to communicate with Apple specific products, again wild guesses but based on my perception of people working with Apple products is that there might be above average number of "edge cases" that needs addressing when communicating with those.
dhsysusbsjsi
As an Australian I’m disappointed in the lack of the key word ‘cunt’ in the graph. Unless perhaps it’s zero.
bArray
Trying adding "ass", it explodes [1]. Not sure if that's because of keywords such as 'class' or something else? "dumb" is really on the uptake [2].
[1] https://www.vidarholen.net/contents/wordcount/#fuck*,shit*,d...*
[2] https://www.vidarholen.net/contents/wordcount/#fuck*,shit*,d...*
steamrolled
Assembly, assign, assert, assume, associate... I think most of what you're picking up is not actually naughty.
qzw
Report: Adding ass makes stuff explode. Dumb is on the uptake.
Resolution: Behaving as expected. Won't fix.
RedShift1
Pretty sure 99% of these are gonna be in the drivers and direct hardware interaction bits.
krunck
Is this in contrast to "Jokes and Humour in the Public Android API" ( https://news.ycombinator.com/item?id=44285781 ) posted 6 hours earlier?
b0a04gl
> most of the apple/meta mentions are likely hardware support strings or vendor-specific quirks, not actual dev contributions. it reflects who linux has to accommodate, not who’s writing upstream patches
> what abt the context density. how many files per vendor mention? how many touched subsystems? and are these strings from comments, error messages, or code logic? raw grep graphs don't show structural influence
amelius
Reminds me of:
https://www.reddit.com/r/linux/comments/vbvxiv/10_years_ago_...
(warning, contains footage of frustrated programmer making offensive gesture)
robinhouston
What's the story behind the Great Unfuckening that took place between v4.18-rc8 and v5.6?
dijksterhuis
i like to think it’s solely down to linus.
4.18 was the second half of 2018, around the time linus took some time away and went off doing therapy to work on his “communication issues”.
23434dsf
[dead]
akie
Missed the opportunity to include "garbage" in the list of default words for that graph... 5 times as frequent as the next runner up, "crap".
of these i'd take "idiot" as the most harmful, working against positive collaboration