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)
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.
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.
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.
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.
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.
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.
A (sic) after the names on first mention might suffice.
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.
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.
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.