Fun Translations
Login
Fun Translations
Toggle sidebar
← Back to Blog

10 of the Weirdest Esolangs Ever Created

By Fun Translations ·

10 of the Weirdest Esolangs Ever Created

Most programming languages are built to solve problems. Esoteric programming languages — esolangs — are experiments in how strange a Turing-complete system can get before it collapses into madness, or art, or both.

The Esolangs wiki catalogs over 1,000 of these linguistic abominations, and new ones are born every year. Some are jokes. Some are profound statements about computation theory. A surprising number are both at once.

Here's our list of the 10 weirdest esolangs ever created — ranked, dissected, and celebrated.


The Counterintuitive Truth About Esolangs

Before we dive in: here's what most people get wrong. Esolangs are often dismissed as programmer jokes, but several of them — Brainfuck, Befunge, Whitespace — have become canonical examples in academic computer science courses precisely because of their constraints. The more painful a language is to write, the more it illuminates what we take for granted in conventional languages. Difficulty is the point. That's the insight.


1. Brainfuck

No list of esolangs starts anywhere else. Created by Urban Müller in 1993, Brainfuck is a Turing-complete language with exactly 8 commands: >, <, +, -, ., ,, [, and ]. The entire standard implementation fits in under 200 lines of C.

Hello World in Brainfuck:

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

Brainfuck's legacy is enormous — it spawned a whole genus of derivative esolangs including Ook!, COW, and Chicken, all of which appear on this list. It's the ur-esolang: everything weird that came after owes it a debt.


2. COW

COW is what happens when someone looks at Brainfuck and thinks: "this could use more livestock." It's a Brainfuck variant where every instruction is a variation of the word "moo" — moo, mOo, moO, mOO, Moo, MOo, MoO, MOO, and a few more.

The result is programs that look like a cow having an existential crisis:

MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO
MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO

It sounds absurd. It is absurd. It also works perfectly as a computing system.

Try speaking in COW yourself: COW Language Translator


3. Chicken

Chicken takes minimalism to its logical endpoint. Every program is written using exactly one word: chicken. The number of times chicken appears on a line determines what instruction executes — it's essentially a unary encoding of Brainfuck-style operations.

A "Hello World" in Chicken is dozens of lines containing nothing but the word chicken repeated various numbers of times. It's hypnotically absurd to read. It's even more absurd to debug.

Translate anything into the Chicken dialect: Chicken Language Translator


4. Malbolge

Named after the eighth circle of Hell in Dante's Inferno, Malbolge was specifically designed to be the most difficult programming language ever created. Its creator, Ben Olmstead, designed it in 1998 — and it took two years before anyone wrote a working Hello World program. The first known solution was found not by a human but by a beam-search algorithm.

Every instruction in Malbolge is self-modifying: code changes itself as it executes. Memory locations are mapped through a non-linear cipher. Constants are automatically encrypted. Simply understanding what a program does as it runs requires tracking state through multiple simultaneous transformations.

Malbolge is what we call a Turing-trolling language: technically capable of computing anything, practically impossible to use for anything.


5. Whitespace

Whitespace ignores every visible character in your source file. Letters, numbers, punctuation — all discarded. Only spaces, tabs, and newlines are meaningful.

The practical consequence: you can hide an entire working program inside any other source file, invisibly embedded in the indentation. A Python script that prints "Hello" might also be a Whitespace program that calculates prime numbers — you'd never know from reading the visible code.

Whitespace was created on April 1st, 2003. The creators insist it was not a joke.


6. Ook!

Ook! was created by David Morgan-Mar — one of the most prolific esolang designers alive — as a statement about how documentation sometimes reads like it was written for orangutans. Every instruction is a two-word sequence from the set Ook., Ook?, and Ook!:

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

What makes Ook! special beyond the absurdity: it's isomorphic to Brainfuck. Every Ook! program maps directly to a Brainfuck program, one-to-one. Morgan-Mar proved you can make a language feel completely alien while being formally identical to a known system — which is itself a profound point about notation versus semantics.

Explore a related encoding at: B-Language Translator


7. Chef

Chef, also by David Morgan-Mar, is an esolang where programs must be written as valid cooking recipes. Variables are ingredients. Operations push and pop values like mixing bowls. The "main" function is the first recipe.

A real Chef program looks like this:

Hello World Souffle.

Ingredients.
72 g haricot beans
101 eggs
108 g lard

Method.
Put haricot beans into mixing bowl.
Fold haricot beans into mixing bowl.

And it compiles and runs. The output of "Hello World Souffle" is, predictably, Hello World.

The genius of Chef isn't just the joke — it's that it forces you to think about computation through the metaphor of transformation: inputs become outputs the same way ingredients become meals. Explore the Swedish Chef dialect: Chef Programming Language Translator


8. Shakespeare Programming Language (SPL)

The Shakespeare Programming Language requires all programs to be written as valid Shakespearean plays. Characters in the play are the variables. "You are as good as a summer's day" is an assignment. Insults decrement values.

The Merchant of Venice.

Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of great enthusiasm and experience.

Act I: Juliet's insults and Romeo's passive response.
Scene I: The insulting of Romeo.

[Enter Romeo and Juliet]

Juliet:
You lying stupid fatherless big smelly half-witted coward!

Each adjective represents a power of two. Counting the words gives you the value assigned to the variable. It's elaborate, verbose, and strangely literary. Explore the Shakespearean Programming Language Translator: Shakespeare Programming Language Translator


9. Piet

Most programming languages are written. Piet is painted. Programs are bitmap images made of colored blocks — 20 colors in total, with 18 carrying semantic meaning. The instruction pointer moves across the image, and transitions between color regions encode operations.

Piet is named after Piet Mondrian, the Dutch abstract painter, and working Piet programs are genuine abstract art. A "Hello World" program in Piet can look like a geometric painting. Debugging it means staring at pixels and tracing color gradients.

There's a specific artistic practice we've started calling syntax sadism in Piet circles: designing programs that are computationally efficient but aesthetically punishing — technically correct images that are visually incoherent, as if the code is mocking the developer.


10. INTERCAL

INTERCAL — the Compiler Language With No Pronounceable Acronym — was created in 1972 and is widely considered the first-ever esoteric programming language. Its design principle was to include no feature resembling any other language.

INTERCAL has a PLEASE modifier that must appear in a statistically appropriate percentage of statements. Use it too often or too rarely, and the program refuses to compile. It also features the COME FROM statement — the conceptual inverse of GOTO, which causes execution to jump to the COME FROM statement whenever the referenced label is reached.

Explore a vintage encoding format from the same era: BCD Punched Card Translator


What's Next for Esolangs?

Here's a predictive take: the next golden age of esolang creation will be driven by large language models. LLMs are already generating code in standard languages — it's only a matter of time before researchers start building esolangs specifically optimized to be incomprehensible to AI but readable to trained humans. Esolangs as adversarial notation: obscurity-by-design as a security property. The joke languages of 1972 might turn out to be the privacy tools of 2030.


Try Them Yourself

You don't need to write code to experience esolang thinking. Several translators on FunTranslations let you speak in the dialects these languages are built around:

Esolangs exist because creativity doesn't stop at usefulness. Sometimes the strangest path through a problem is the one that teaches you the most.

← Previous Cipher Studio: Save and Load Your Encoding Pipelines