While some argue that BDSM in esolangs goes all the way back to INTERCAL, the language Fetlang puts kink front and center. Let’s take a look at a more-or-less random excerpt from this braintuck-to-C transpiler:

Bind Thomas to Saint Andrew’s Cross
        have him hogtie Charlie

        If Thomas is Zoro’s bitch
                        if Carrie is Zoro’s bitch
                        make Earl moan Charlie’s name
                if Carrie is Olivia’s bitch
                        make Faith moan Charlie’s name
                        lick Carrie’s toes
                        make Charlie moan

Each of these are of course encodings of rather banal computer operations, making Fetlang both vocabulary-driven (through its up-front obfuscation) and unabashedly a "theme" language, dressing up the text of code in noncode guise. Fetlang is not simple, however, with hundreds of commits over months, a nontrivial grammar (it took an implementation of Rule 110 to prove it Turing Complete), and surprisingly good documentation. Its creator, Dagan Martinez, says:

Fetlang is, embarrassingly, probably the largest project I’ve worked on. So, with all that effort, I wanted to at least make it decent: documentation, unit testing, etc.

Fetlang, like TerrariaCode, which we looked at recently, are both by students who began their projects in Python and switched to C++ (making us ask: why is programming taught this way??), although Fetlang did much better in the transition. The original, called Orgy, was discarded but shows the early thinking around the project, and how much more ambitious the final version was, a far more complete conceptual immersion.

While diversity in code is a critical issue, this is one of my all-time favorite GitHub Issues:

The following is offensive IMO on account of the choice of occidental first names.

lick Ada’s feet forty three times
lick Sasha’s left nipple forty five times

lick Orange’s nose forty six times
lick Inky’s forehead forty four times

Suggestions:

lick Ahmed’s balls sixty times or
lick Meera’s left nipple forty five times

FWIW, there’s nothing in Fetlang that forces you to draw from a small group of names, but I am all for adding Ahmed to the ball-licking mix.

Much less racy (but continuing the oral fixation of this language) is this excerpt from the Rule 110 implementation, which contains a systematic and precise licking of numbers in roughly numerical order:


lick number36
lick number36
lick number36
lick number36
lick number36
lick number36
lick number37
lick number37
lick number37
lick number37
lick number37
lick number37
lick number37
lick number37
lick number37
lick number37
lick number37
lick number37

If this wasn’t enough, Fetlang is extensible. From the readme: “just install your fetish in share/fetlang/fetishes.”