I'm working on a formal paper about programming languages. I am going to talk about two intentionally difficult languages, brainfuck and JSFuck. Should I leave the names as they are, or censor the names? (e.g. brainf**k, JSF**k)

  • 188
    @vickyace No, brain means nothing in programming languages, and js refers to another language entirely.
    – deadrat
    Commented May 2, 2016 at 6:42
  • 71
    Unless this is the first paper on that programming language in that publication, you should have precedence to draw on. Failing that, ask the editor.
    – Lawrence
    Commented May 2, 2016 at 6:44
  • 22
    (This was going to be an answer but I realized that the question is not about the English language) If you are writing about these two languages you have to provide their full names. You were not the creator of the said languages nor of their trademarks: Brainfuck and JSFuck. The readers of your paper will probably be very familiar with these programmes and should not think any less of you. If the rest of the paper is professional-looking, it will be clear you are not acting churlishly.
    – Mari-Lou A
    Commented May 2, 2016 at 8:34
  • 12
    Unless you need those particular languages, you could just use the generic term like "Turing Tarpit" or "Esoteric Languages" Commented May 2, 2016 at 12:13
  • 12
    Censor JS please. It's terrible. Commented May 3, 2016 at 15:15

10 Answers 10


These are the Registered names of sanctioned programs in your industry. Their developers chose those names not for their prurient value but for their impact value. "Brainfuck" sends an INSTANT message that something like "Cerebral Challenge" could never pull off. You show your professionalism when you structure the "Brainfuck" section of your paper with the same care you show in other sections, mentioning the singularity of its name only if it's relevant to the paper. Let 'them' come to you, if they feel they must (and I doubt it). Your responsibility is to the quality--which includes the Integrity-- of your paper.

  • 56
    I really like your thoughtfulness... but it's unclear what you are advocating. Who is "them" who "come to you" and what does it mean for them to "come to you?"
    – Matt
    Commented May 2, 2016 at 14:09
  • 40
    Registered, as in, having a trademark? I don't think so. Sanctioned? By whom?
    – svick
    Commented May 2, 2016 at 14:12
  • 10
    @Matt Seemed pretty obvious: anyone with an issue (editors, reviewers, advisors)
    – Insane
    Commented May 3, 2016 at 4:49
  • 12
    "Registered" simply means people in the industry will know what you are talking about, and not think you are swearing. However, the advice is to use it once, and avoid repeating it like a child saying "poop".
    – Nelson
    Commented May 3, 2016 at 6:28
  • 4
    @Matt Mia: "Who told you this?" Vincent: "They." Mia: "They talk a lot don't they..." Vincent:* "They certainly do."
    – corsiKa
    Commented May 3, 2016 at 23:16

I would suggest leaving the names as they are and letting the editor(s) deal with it. If the editor (or journal policy) has an issue, they will tell you what to do. If you have a personal issue with the names, then you probably would have been better served by not using the languages.

  • 7
    OK, but last point is dubious. It's fortunate even more vulgar/sexist/what-have-you words were not chosen for what has become an objectively important language.
    – user18072
    Commented May 4, 2016 at 3:40
  • 12
    @djechlin I am not sure what you mean. If you have personal objections to animal testing, it is probably better not to do research that is best done with animal testing. If you have personal objections against a particular language (e.g., due to its name), it is better not to ask questions that require that language to be used.
    – StrongBad
    Commented May 4, 2016 at 18:35
  • 6
    @StrongBad I think what he means is, sometimes you just can't ignore a language because it is interesting for other theoretical reasons. E.g. if Turing Machine had a vulgar name, CS professors would still find the concept useful, and would need to refer to it somehow; changing the name is generally not an option once it is widely accepted. Commented May 6, 2016 at 12:01
  • @StrongBad The situations are incomparable, since you could here research a totally different language (without any potential personal/ethical issues) but still need to refer to this one in order to e.g. avoid plagiarism or not miss an important reference. Commented May 7, 2016 at 18:31

Swearing in the paper is improper, citing swearwords is not. How would ethymologists write their papers if they weren't allowed to use all the words they talk about?

Here is a thesis with fuck in it, and its use is totally legitimate.

  • 5
    It seems that its author taught me English. The world is small :-)
    – yo'
    Commented May 2, 2016 at 18:53
  • 12
    Actually, the thesis you refer to explicitly mentions "fuck" as problematic and an "especially offensive" word, and has decided to censor his own usage of it but keeps the uncensored version in citations.
    – pipe
    Commented May 3, 2016 at 1:10
  • It would also be inappropriate for etymologists to include long sections of code in their paper instead of referring the reader elsewhere.
    – user18072
    Commented May 4, 2016 at 3:40

Name the programming languages in the abstract, and use initialisms like BF and JSF thereafter:

Abstract: The two languages under consideration are Brainfuck (BF) and JSFuck (JSF), both of which are yadda yadda yadda... The results show that some tasks are performed faster using BF than JSF, while other tasks are handled equally well.


Introduction: We set up two computer clusters, executing the latest version of BF on one and JSF on the other. We compiled JSF from source code hosted on the developer's website using an Intel 4004...

In this way, you are referring to the language names professionally and consistently, but have no need to plaster your paper with instances of *fuck or BrainF#@%.

† You have precedence since other terms in programming are commonly referred to by initialisms in this way, e.g., RoR and JS, for readability.

  • 21
    JSF stands for JavaServer Faces -- another programming framework. I don't think you could redefine it here.
    – Ébe Isaac
    Commented May 2, 2016 at 14:19
  • 85
    @ÉbeIsaac JSF also stands for "Joint Strike Fighter" - so what? As long as the author defines the acronym explicitly then you can pretty much use it for whatever you want within the given scope of the paper. This happens all the time; there is no shortage of usage overlap for common acronym combinations.
    – J...
    Commented May 2, 2016 at 16:55
  • 15
    @J... : I've mentioned that JSF is already an existing abbreviation within the programming languages field and hence it would be inappropriate to redefine it to something else in the same domain.
    – Ébe Isaac
    Commented May 2, 2016 at 17:23
  • 38
    @ÉbeIsaac I would consider that a valid argument if and only if the paper in question also needed to refer to JavaServer Faces. If it did not, then acronym re-use is entirely acceptable (as long as explicitly defined by the author), even if there is overlap in a similar field or topic.
    – J...
    Commented May 2, 2016 at 17:30
  • 8
    @ÉbeIsaac Me being a person from Codegolf.SE (hi), I use BF and JSF all the time without ambiguity of context. Chances are, anyone who knows about JavaServer Faces will pick up on the fact that JSF is not their Face server. Commented May 3, 2016 at 1:48

As a linguist, I'd like to point out that using the word fuck is very different from using the name Brainfuck.

The name Brainfuck has a unique referent: it refers only to the programming language of that name. The word fuck does not have such a unique reference – it can be used to refer to all sorts of things, and while the associated concept may be considered to be a rather integral part of human existence, the connotations of that word make it inappropriate for formal discourse for many, if not most speakers.

The crucial point is, however, that there is no conceptual overlap between the two. Brainfuck, when used as the name of a programming language, means something totally different from fuck, and there is no overlap whatsoever in the potential sets of referents of the two words. At the same time, it is of course possible to use the word brainfuck with a meaning that is related more to fuck than to Brainfuck, as in Stop trying to brainfuck me. Here, the speaker is clearly evoking the meaning of fucking, and not the meaning of "a programming language that is intentionally so strange that it brainfucks its users".

So, as an answer to your question: use by all means exactly those linguistic expressions that their inventors chose as names for their programming languages. The -fuck in Brainfuck does not mean fuck. Therefore, there is no need to censor it.

This is, unless the editor of the journal you're submitting your paper to explicitly refuses to publish it while the letter sequences fuck occur in the names.

  • 29
    “The -fuck in Brainfuck does not mean fuck. Therefore, there is no need to censor it.” This isn’t how either academia or linguistic taboos work, though. On the one hand, most people who consider fuck unacceptable will also consider compounds of it it unacceptable, whatever their meaning (unless they’re independently established as less taboo). Conversely, the academic argument for it is just a matter of accuracy to the facts: if you write a critical analysis of Larkin’s This be the verse, then the fuck in the first line really means fuck, but you’d still quote it as such.
    – PLL
    Commented May 2, 2016 at 20:34
  • 9
    @PLL cf. the Scunthorpe problem.
    – OrangeDog
    Commented May 3, 2016 at 11:09
  • 4
    Brainfuck absolutely is used to refer to things beyond this programming language. Cf. Wiktionary article on the word.
    – KRyan
    Commented May 3, 2016 at 14:10
  • 3
    Brainfuck is named that specifically in reference to mess-up meaning of fuck--the idea being that it fucks with your brain. This there most certainly is a conceptual overlap. This isn't inadvertent profanity like the Scunthorpe problem. Commented May 5, 2016 at 2:58
  • 3
    I disagree with your analysis. The name is a known vulgarism. It is a compound word in which the meaning of the vulgar component is integral to the meaning of the whole.
    – David42
    Commented May 5, 2016 at 16:49

Lawrence put it best in their comment:

Unless this is the first paper on that programming language in that publication, you should have precedence to draw on. Failing that, ask the editor.

  • But there's a reason he wrote it as a comment, not an answer.
    – OrangeDog
    Commented May 3, 2016 at 11:11
  • 16
    I'm not sure what that reason was. It's a complete and helpful answer.
    – Kevin
    Commented May 3, 2016 at 12:57
  • 2
    We agree to disagree.
    – OrangeDog
    Commented May 3, 2016 at 12:57
  • 1
    @OrangeDog I often see people responding with a comment in situations where they might not feel they deserved the reputation points that would come from a correct answer (in this case, you might not want to be rewarded for correctly answering "these are the people you should be asking:…")
    – henry
    Commented May 3, 2016 at 23:33

A (sic) after the names on first mention might suffice.

  • 28
    I am pretty sure that is not how "sic" is used. From my understanding "sic" is used in quotes to denote that a mistake was in the original source.
    – StrongBad
    Commented May 2, 2016 at 12:48
  • 27
    From wikipedia - en.wikipedia.org/wiki/Sic The Latin adverb sic ("thus"; in full: sic erat scriptum, "thus was it written")[1] inserted after a quoted word or passage, indicates that the quoted matter has been transcribed exactly as found in the source text, complete with any erroneous or archaic spelling, surprising assertion, faulty reasoning, or other matter that might otherwise be taken as an error of transcription.
    – mccainz
    Commented May 2, 2016 at 12:49
  • 1
    That's @StrongBad's point, though: there is no error in the use of the full name, and thus usage of "sic" is not strictly correct.
    – hBy2Py
    Commented May 2, 2016 at 15:56
  • 27
    @Brian Our gentle readers assume that the authors of BrainFuck were good people who would never use foul language and the vile OP made a transcription error when he wrote BrainFuck instead of BrainFudge. The sic advises the gentle reader that there was no transcription error.
    – emory
    Commented May 2, 2016 at 17:55
  • 8
    @emory that is a pretty abstract way of using sic
    – StrongBad
    Commented May 3, 2016 at 1:20

Depends on your audience. If you're publishing at U. C. Berkeley they may hang you out for giving in to censorship. If you're at BYU they might expel you for an honor code violation if you don't censor. On the other hand someone at Berkeley may decide that sexualizing a programming language is offensive and demeaning to women.

The very nature of a controversy is that there is no clear answer that is guaranteed to make everyone happy. However, discretion can diffuse a lot of tension. If you want to avoid f**k censorship you could simply leave the names of the languages out of the papers title so they don't appear in large print.

That said, I'm proud that even growing up in a small conservative town I could still find these words defined in the school library's dictionary.

  • 9
    Are these really the standards in Berkeley and BYU?
    – Will Hunting
    Commented May 2, 2016 at 6:54
  • 4
    @WillHunting I'm using them as examples at either end of the political spectrum. Both have the sensitivities of their culture to account to. Protests have been held at both schools over smaller things. The point is to know your audience. Ignoring something your audience is sensitive to is a good way to have them ignore the rest of your message. Commented May 2, 2016 at 8:10
  • 28
    -1 Do you have any evidence for either of your examples?
    – StrongBad
    Commented May 2, 2016 at 12:46
  • 22
    No, I can read what the policies say. What I am interested in is evidence that supports your interpretation of the policy.
    – StrongBad
    Commented May 2, 2016 at 12:55
  • 5
    @sgroves: On academia.stackexchange.com, you shouldn't post misinformation about the policies of academic institutions, even if that misinformation is incidental to the point you're actually trying to make. In this case, CandiedOrange could accomplish the same purpose by saying "a very liberal school" and "a very conservative school", rather than making false claims about specific institutions.
    – ruakh
    Commented May 4, 2016 at 0:14

There are numerous acceptable ways to refer to the language. The page about it at esolangs.org says this:

Due to the fact that the last half of its name is often considered one of the most offensive words in the English language, it is sometimes referred to as brainf***, brainf*ck, brainfsck, b****fuck, brainf**k or BF. This can make it a bit difficult to search for information regarding brainfuck on the web, as the proper name might not be used at all in some articles.

It seems that would be an important consideration when you decide.

  • 18
    I kind of like "b****fuck" myself.
    – Octopus
    Commented May 6, 2016 at 16:28

Consider avoiding the problem entirely, by not providing these languages with the honor of being on your paper. The namers of these languages chose something that they realized would cause problems. Don't glorify such a mis-decision by unnecessarily polluting your good research work.

You will likely elicit scorn, and compulsions to roll eyes, even if many people have sufficient restraint to communicate their disapproval. Some people are likely to see this as a clear mark of unprofessionalism. Even if you don't get formal feedback, this may impact people's appreciation, and may affect subjective scoring. All in alll, why unnecessary embrace such negativity that will provide you with no benefit?

Seek out alternative solutions, and use them. Those who are aware of the entire scenario may have a high appreciation of your successful endeavor.

The most common abbreviation I have found for the first language is "bf". e.g., searching for "bf language" on Google will show foul language in the results. Esolangs.org page on this language provides some other abbreviations, noting, "This can make it a bit difficult to search for information regarding brainfuck on the web, as the proper name might not be used at all in some articles." That's a downside of this language's name.

Or, instead, consider avoiding the problem entirely by using an alternative. I propose that you consider using Ook! Ook!, which is directly convertible to the bf language that you mention. If you're interested in language features, this ought to be a direct substitute that will serve you well. (The only really significant downside I am aware of is just that it is less well-known, so if you're wishing to discuss a community, then it may not have the same effect. Oh, and I do know of one other technical disadvantage: the source code may be a bit larger, even though the interpreted meaning ends up being the exact same.)

Regarding the other language you mention, I notice that for the JS one, many of the top sites use its full (spelled-out) name and also use the term JSF*ck. Searching for JSF*ck on Google does manage to pull up the sites. So, that does appear to be a name that is heavily accepted by the community surrounding that language.

  • 21
    glorify a mis-decision? what? this seems like an awfully judgmental answer. the name of the language is brainfuck, period. calling it anything else could potentially be inaccurate or misleading. if the reader takes offense to the name of that programming language, that's not the fault of the author of the paper, and the author should not worry about it. whether you personally think the name is a "mis-decision" is completely irrelevant.
    – user428517
    Commented May 2, 2016 at 23:54
  • 11
    I'm tempted to create a handful of languages literally called BF, Brainf*k, Brainfck, Brainfick, etc, just to make it more confusing. It should be referred to by its proper name.
    – Kevin
    Commented May 3, 2016 at 1:00
  • 9
    Introducing deliberate spelling mistakes just because you dislike some word is silly. Commented May 3, 2016 at 13:59
  • 11
    @toogam on the contrary: not using correct names for things in a formal paper is surely a disrespect of formality. the author of the paper didn't choose the name brainfuck. you seem to be suggesting that the audience may not be mature enough to handle seeing this name in a formal paper. now that is disrespectful. we punish children for such language because they are children; we expect adults to be mature. they are just words, after all.
    – user428517
    Commented May 3, 2016 at 14:39
  • 4
    What about git? "git" is slang for "stupid", and the name of that version control system was chosen for exactly this meaning. The "git" command manual describes itself as a "stupid content tracker". Should you avoid referencing the most used VCS in the industry because its name is inappropriate?
    – Hay
    Commented May 4, 2016 at 20:37

You must log in to answer this question.