Subscribe to our blog
Subscribe to our email newsletter for useful tips and valuable resources, sent out every month
february, 2025

The Strangest Programming Languages You Never Expected to See

A review of the most unusual programming languages: Brainfuck, Shakespeare, Malbolge, Piet, Chef and others. How do programmers turn code into art and humor?
At first glance, programming may seem like a discipline dominated by strict logic, clear rules, and a constant struggle for performance. The world is ruled by Python, Java, and C++ — tools on which technologies that transform our daily lives are built. However, many programmers experiment with languages, challenging existing standards. Languages created for art and entertainment are called esoteric programming languages.
They are almost never used for building applications or analyzing data. They are useless from a practical standpoint, but invaluable in their ability to inspire. They push the boundaries of what code can be, turning programming into a space for creativity, experimentation, and sometimes — a pure mockery of the very notion of "usefulness."

In this article, we’ll take a look at several of these languages. Each of these is not just a way to "tell the computer what to do." It’s a philosophy, an idea that makes you reflect on the very nature of programming.

Brainf*ck: Minimalism as the Art of Pain

In 1993, Urban Müller asked himself the question: "How much minimalism can be implemented into a programming language while still keeping it functional?" The result was Brainf*ck — a language with only eight commands represented by the symbols >, <, +, -, [, ], ., and ,.

Programs written in this language look like a random collection of symbols. Here's an example of a program that outputs "Hello, World!":
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++.>.+++.------.--------.>+.>.
At first glance, it looks more like a keyboard malfunction than code. However, each command follows a strict logic and controls the movement of the pointer across an array. Brainf*ck is a challenge to programmers: "Are you good enough to create something complex using such a simple tool?"

Shakespeare: Code as a Play

Now imagine writing a program that reads like a literary work. Shakespeare is a programming language where the code is formatted as a play in the style of William Shakespeare.

Each variable is a character, such as Romeo or Juliet. Commands are carried out through their dialogues. For example, here’s a snippet of a program in Shakespeare:
Romeo, a young man with remarkable patience.  
Juliet, a likewise young woman of remarkable grace.  

Act I: Hamlet's insults and flattery.  
Scene I: The insulting of Romeo.
This language is both a joke and a masterpiece. It’s useless for writing real applications but perfect for those who want to approach programming from a literary perspective.

Chef: Code You’ll Want to Eat

Culinary arts and programming usually don’t intersect. But what if you could write a program that looks like a recipe? That’s how Chef works.

The ingredients of a program are variables. The cooking steps are the logic of the code. Here's what a program might look like:
Hello World Souffle.  
Ingredients.  
72 g chocolate  
101 ml sugar  
108 ml butter  
[...]  
Cooking time: 25 minutes.
Chef plays with perception. After all, cooking also requires precise instructions and logic, doesn’t it?

Piet: Programming Through Paintings

Now imagine instead of lines of code, you're creating a program that looks like an abstract painting. Inspired by the works of artist Piet Mondrian, the Piet language uses color blocks to represent commands.

Each color has its own meaning, and transitions between them define the logic. To write a program in Piet, you literally "draw" it.

This language emphasizes that programming is not just text. It’s a visual art where logic and creativity merge.

Befunge: Programming in Four Dimensions

If programming feels too linear to you, try Befunge. Unlike most languages, here commands can be executed not only left to right but also in other directions: up, down, and even backwards.

Programs in Befunge look like tangled mazes. Here’s an example of a simple code:
>987v>.v  
v456<  :  
>321 ^ _@  
This language challenges not only your thinking but also the very principles of compilation.

More Examples of Strange Programming Languages

Whitespace: Nothingness as Art

Can you create a language where code consists only of spaces, tabs, and line breaks? The answer is yes, and it’s called Whitespace.

Created in 2003, this language makes all visible symbols meaningless. The interpreter only responds to "whitespace." This means your program can be invisible to anyone opening it in a text editor.

Example:
(Nothing visible here, but this is a Whitespace program)
Whitespace is both a joke and a reminder that even spaces in code can have meaning.

Ook!: A Language for Orangutans

If you think programmers sometimes go too far with absurdity, you’ll love Ook!. This language was created as a joke and is a variant of Brainfuck where commands are replaced with "Ook."

Example program:
Ook. Ook? Ook. Ook. Ook! Ook? Ook. Ook.  
The creators claim it’s designed for "orangutan programmers." Of course, it’s pure irony, but Ook! brilliantly illustrates how you can take an existing idea (in this case, Brainfuck) and add humor to it.

Malbolge: A Language No One Could Understand

Malbolge is the dark side of programming. Created in 1998 by Ben Olmstead, this language was deliberately designed to be impossible to program in.

Its syntax is chaotic, and programs self-modify during execution. The first working code in Malbolge was generated... by a computer, not a human.

Example (if you’re ready to break your brain):
('&%:9]!~}|z2Vxwvutsrponm<kjihe?dcba`_^]\[ZYXWVUTSRQPONMLKJIH
Malbolge isn’t just a language; it’s a test. Can you write even a single working program?

LOLCODE: Memes and Code

LOLCODE is a language that speaks the language of memes. All commands are styled after internet slang from the "lolcat" meme. For example, "start the program" is written as HAI, and "end" is KTHXBYE.

Example program that outputs "Hello, World!":
HAI 1.2  
VISIBLE "HAI WORLD!"  
KTHXBYE  
LOLCODE is a language for those who want to remind themselves that programming can be fun, not just serious.

INTERCAL: A Language that Hates Programmers

If Malbolge was created to confuse, INTERCAL was created to mock. This language parodies everything you value in programming: readability, clarity, and logic.

For example, to get a program in INTERCAL to work, you sometimes need to add the word "PLEASE" in the code. If you’re not polite enough, the interpreter simply refuses to run your code.

Example:
DO ,1 <- #13  
PLEASE GIVE UP  
INTERCAL is a sarcastic mockery of "ideal" languages where programmers dream of simplicity and convenience.

ArnoldC: Code in the Style of the Terminator

ArnoldC is a language that uses Arnold Schwarzenegger quotes from his movies to write code. For example, the command IF is replaced with BECAUSE I'M GOING TO SAY PLEASE, and RETURN is replaced with I'LL BE BACK.
IT'S SHOWTIME  
TALK TO THE HAND "HELLO WORLD"  
YOU HAVE BEEN TERMINATED  
This language reminds us that sometimes programming should be approached with humor and inspiration, even if you’re writing code for the "Terminator.

GolfScript: For Minimalists

GolfScript is a language created for solving "code golf" challenges (maximizing the minimization of code length). It’s so minimalistic that programs often look like a random string of characters.

Example program that outputs numbers from 1 to 100:
1,{.}100*  
If you’re tired of verbose languages, try GolfScript — here, every symbol matters.
Why Do Programmers Create Such Languages?
At first glance, these languages might seem like just distractions for people with too much free time. But they serve an important role.
  • Experimentation
    Many of these languages explore the boundaries of minimalism, complexity, or visualization in programming. They show how flexible the approach to creating algorithms can be.
  • Creativity
    Shakespeare and Piet prove that code can be a form of art.
  • Learning
    Working with such languages teaches programmers to think outside the box and solve problems under constraint.
  • Humor
    Some of them, like Chef, simply remind us that technology can be fun.
Esoteric programming languages aren’t about utility. Python and JavaScript can rest easy: their bread and butter isn’t being taken away. These are not about websites, big data, or even solving tasks. They are protests against boredom. They are art for the sake of art, absurdity for the sake of absurdity, code for the sake of code.