Fat Dactyls
If you make a language and are lucky, someone else will write code for it. If you are very lucky, someone else will find uses for it you never intended, or that even challenge the premise of the language.
This is not the same as using the language in an unexpected way. Urban Müller could not have foreseen brainfuck as the bedrock for a Rust-like language or a CPU. But do these projects truly counter brainfuck's premise? I would argue not. Brainfuck appears chaotic but part of its appeal has always been in conquering that chaos, in building efficient algorithms using the language despite the challenge. These projects counter the chaos of brainfuck, but that really is the appeal of brainfuck in the first place, they are simply taking it much further than could have been anticipated. If Müller had wanted brainfuck to be impossible to master, he would have designed the language much differently.
Sometimes, however, a language inspires work that falls very far from the intent of its original designer. Most esolangs, like mainstream programming languages, are open systems and don't dictate how programmers use them. C# offers many features to make structured code easy. But I can also write C# that looks like 80s BASIC wrapped in some standard C# boilerplate:
using System; class Program { Â Â static void Main() Â Â { Â Â Â Â Â _01: Â int b = 0; Â Â Â Â Â _05: Â string t = ""; Â Â Â Â Â _10: Â for(b = 99; b > 0; b--){ Â Â Â Â Â _20: Â goto _100; Â Â Â Â Â _30: Â t = t + " OF BEER ON THE WALL"; Â Â Â Â Â _40: Â Console.Write(t + ", " + t); Â Â Â Â Â _50: Â Console.Write("\nTAKE ON DOWN AND PASS IT AROUND, "); Â Â Â Â Â _60: Â if(b - 1 <= 0) { Console.Write("NO MORE BOTTLES OF BEER ON THE WALL"); } goto _80; Â Â Â Â Â _70: Â goto _200; Â Â Â Â Â _75: Â Console.Write(" OF BEER ON THE WALL"); Â Â Â Â Â _80: Â Console.WriteLine(); Â Â Â Â Â _85: Â goto _230; Â Â Â Â Â _90: Â Console.Write("GO TO THE STORE AND BUY SOME MORE, 99 BOTTLES OF BEER ON THE WALL"); Â Â Â Â Â _95: Â return; Â Â Â Â Â _100: t = b.ToString() + " BOTTLE"; if (b > 1) { t = t + "S"; } Â Â Â Â Â _110: goto _30; Â Â Â Â Â _200: Console.Write((b - 1).ToString() + " BOTTLE"); Â Â Â Â Â _210: if (b - 1 > 1) { Console.Write("S"); } Â Â Â Â Â _220: goto _75; Â Â Â Â Â _230: ;} Â Â } }
C# can discourage this—Visual Studio tried to reformat this several times, and it was full of red squiggles—but a determined-enough programmer can always reject the values of that language.
READ MORE...













