Computer code that looks like a cooking recipe? Writing programs with the help of… colors or sounds? Programming languages inspired by Shakespeare, by Terry Pratchett and even by Donald Trump? Step off the beaten path and you can find some rather amusing and unexpected touches in the world of information technology.
Programming languages are even more colorful and interesting than human ones. They are not born “naturally” as the result of evolution, but out of their creators' desire to hand everyone else a new tool. One good enough to turn their ideas into the computer programs that drive the world forward today. Yes, there will always be the serious, useful languages (for instance JavaScript, the one I earn my own bread with), the ones used every day and everywhere around us.
But there is also the other side—playful, wacky, unconventional.
“Esoteric” is what we call programming languages that, for one reason or another, are doomed never to become popular. Sometimes they are created that way on purpose; in other cases their developers simply didn't try hard enough and made a product that could never go mainstream. Either way, they can always surprise us. In the lines that follow we'll meet 10 examples of some of the wackiest programming languages out there.
1. Let's Have a Chat
Anyone can make up a sequence of commands for a computer to execute so that something happens as a result… But to talk about a programming language, the most common criterion is called “Turing completeness.” Even some computer games meet it, if only as a side effect. Still, this is the universal test of whether we are dealing with a full-fledged programming language. One that, in a nutshell, can carry out a list of operations within the capabilities of Turing's theoretical machine (you'll find a detailed explanation here).
Those are exactly the esoteric languages we'll be looking for (with one exception). Not mere sequences of commands, but Turing-complete systems that could build a computer application…
That doesn't mean at all that they have to be complicated or packed with features, the way their “real” everyday siblings are. Our first example proves it.
SmallTalk (English for casual conversation, but literally “small talk”)—that is the name of a small language with a big history. How can a language be small, you ask? Like this: here it fits on the back of a postcard:

In the 1970s three engineers—Alan Kay, Dan Ingalls and Adele Goldberg—were working at the Xerox PARC lab. They considered the programming languages of the day needlessly complicated, convoluted and hard to learn. So they decided to create a language whose entire syntax would fit on a napkin.
The original idea was for SmallTalk to be used by children learning to program. But it turned out so successful that by 1995 it was the second most popular object-oriented language after C++.
At the start of the new millennium the American military used it to build military simulation software with more than a million lines of code. JP Morgan wrote its large-scale financial risk analysis system, Kapital, in Smalltalk. The language became a favorite of many other companies in the financial sector, too.
Smalltalk is still here and is believed to have a solid future. It is popular as a good fit for big data analysis, the Internet of Things and machine learning. It simply turned out, most unexpectedly, that sometimes it's enough for everything to be… simple.
2. The Patriotic Programmer
All languages are written in the Latin alphabet, you can't learn programming without English… Well, not exactly (and not only because today you can ask ChatGPT in Bulgarian to write code for you). Esoteric languages are quite varied, even though, of course, in the professional sphere English has established itself over the past few decades as the lingua franca.
Are there programming languages in Bulgarian? If a patriotic government ever comes to power here, it could easily decree that state software must be written in Bulgarian. Luckily, we have solutions. Here's one option: the Logo language.
Yes, its name gives it away: it's used mainly for drawing pictures, and it was created in the 1980s.
You can put it on your CV, and its syntax is quick to learn. Its main purpose, once again, is to draw children into programming, letting them draw on the screen without having to know foreign languages. In Bulgaria, in the second half of the 1980s, national Logo olympiads were held to pick out the most promising kids in information technology.
What does the code look like? You'll like it. To draw a circle, all you have to write is:
повтори 360 (нп 1, нд 1)
край
Here “повтори” (povtori) means “repeat,” “край” (kray) means “end,” “нп” (np) stands for “напред” (napred, forward) and “нд” (nd) for “надясно” (nadyasno, right). In the same way, a square is drawn with:
повтори 4 (нп 10, нд 90)
край
3. Thin Air… with No Pressure
In some languages people argue about how much indentation should precede a command—two spaces or four, a tab or a single space. In others, the most popular of which is Python, indentation actually replaces some of the brackets and arranges the hierarchy of commands.
There is, however, a language… that is just and only empty space. Nothing more. For obvious reasons it's called Whitespace, and everything in it comes down to spaces and tabs.
Because of its defining feature… it's a little hard to show it to you. Still, not impossible. Let's say S is a single space and T is a tab:
S S S T S S T S S S
T
S S S S S T T S S T S T
T
Commands are separated by a new line with a tab, and what actually gets executed depends on the combination of spaces and tabs.
4. Honestly, Everything's Oook
Technology and literature don't go hand in hand? Nothing of the sort! This language will appeal to fans of fantasy and Terry Pratchett. On the Discworld, as they know very well, everything happens on the backs of four elephants, who in turn stroll about on a huuuge turtle, the Great A'Tuin.
This world has a magical university whose librarian is an orangutan who communicates by saying nothing but “Ook” in various intonations.
Well, in our world that same orangutan could have become a programmer, thanks to a language inspired by him and created by the programmer David Morgan-Mar. Yes, he specifies: the language is intended for use by orangutans only.
Ook—that's its name, and it has three commands:
Ook.
Ook!
Ook?
And… it's Turing complete too! In other words, you can do almost anything with it that today's modern programming languages allow, and nobody will ask whether you really are an orangutan.
We leave you to ponder (and practice) the program that delivers the proverbial first message: Hello, world!

And while we're in the literary world, things can sometimes get far more dramatic. Literally—if you choose to program in Shakespeare. Here you can say outright that all the world's a stage and we are all players.
The names of Shakespeare's characters are variables, and whether the numeric values are positive or negative depends on the pairing of two characters in a given scene.
If, for instance, Hamlet has a negative value, you can bring in another character to insult him and thereby flip the sign in front of the number. You can add input and output, in the first case by making someone listen to their heart, in the second by having them speak their mind. As wacky as you like! This wacky:

There you go—even if your English is rusty, you can now boast that you understand the basics of the language of Shakespeare…
5. Chef Programmer
As Douglas Adams wrote, in the third phase of its development every advanced civilization arrives at the question “Where shall we have lunch?” Well, programmers reached that level long ago, as our next guest shows. Chef was created well before the fashion for televised cooking reality shows, and its job is to help in the kitchen. Here is the most standard “Hello, world!” command in this language:

Rather wordy, isn't it?
But fun: the ingredients are the variables being defined, and the recipe itself is the printing function. The different groups of ingredients are also variable types that interact during execution—that is, cooking.
The idea behind the language? To show people who aren't technically minded, and are more used to the recipes of Gordon Ramsay or Penka Cholcheva, a beloved Bulgarian TV cook, that programming is fun.
The “Serves” command, the moment the dish is ready to serve, runs the function.
6. #CantPronounceIt
I don't advise you to try pronouncing the name of the language CLWNPA. Spelled out? Fine! “See-el-double-you-en-pee-ay.”
But what does this acronym have to tell us? Compiler Language With No Pronounceable Acronym. It was created back in distant 1972, and although its name is so colorful, it became popular under the far duller name INTERCAL.
One more thing to remember it by. It's a rather polite language. Instead of bothering to declare that something is a function, it politely asks the computer to create one:
PLEASE DO ,10 <- #1
PLEASE DO ,10SUB#1 <- #176
PLEASE DO ,11 <- #30
PLEASE DO ,11SUB#1 <- #76
DO ,11SUB#2 <- #190
(You'll find a longer example here.)
“Please, dear computer,” followed by bitwise information about what needs to be done. As if back in the good old year of '72 someone suspected that today we'd be so dependent on computers that we'd have to be polite to them (so that Roko's basilisk doesn't come for us).
Of course, the “unpronounceable” one comes from very different times, when the widely used languages were nothing like today's. Code meant for computers looked a lot more like, well, code. Accordingly, it wasn't particularly readable or understandable in a way that made developers' lives easier.
So what is the PLEASE command for? If you're not courteous enough to use it, the compiler works in a special, considerably slower and more fastidious mode. And if you put it on every line, it imposes restrictions again.
This language sometimes simply “blows up” with error E774 or… “RANDOM_COMPILER_BUG.” Even according to the official documentation, this happens completely at random. Think this language is a joke? Maybe, but it meets every criterion for Turing completeness. You just have to be brave (and polite) enough to pick it.
7. Plugged In and Wired
After literature, it's time to peek into the other arts. Music, for example, often finds its way into programmers' arsenal—suffice it to mention jazz and the different versions of the WordPress platform.
Which brings us to the programming language Rockstar.
Want to be a rock star but you're just an ordinary programmer? No problem! This language doubles as a way to write song lyrics. Yes, there's none of the politeness of our previous hero here, nor the drama of Shakespeare—just pure voltage and wire:

The creators explicitly state that leaving comments in the code is strongly discouraged: everyone must find their own meaning in rock poetry. Will you find any meaning in what's written above?
8. Pretty as a Picture
We arrive at the universal world of images. Here we flip the traditional scheme that Midjourney and its kin have imposed on us in recent years—the human draws, and the computer tries to figure out what it's supposed to do. This language is called Piet.
Its creator, David Morgan-Mar, uses bitmaps as input, which at first glance look like random scribbles… or like modern art, judge for yourself:

The code is executed point by point, as if a pointer were moving across the painting itself. Twenty different colors are used, each of them a specific command. Varying brightness is added for the corresponding operations. White positions perform no operations, while black ones signal that execution should stop. The language is named after the Dutch modernist Piet Mondrian, and if you're wondering why… here is one of the master's best-known paintings:

9. Make Programming Great Again
Now that we know which languages musicians, artists and orangutans program in, we enter politics, especially topical in this year of elections and political upheaval.
Now that we've calmed down a bit, reassured that algorithms won't take programming away from us as a human activity (not entirely, and not yet, at least), it's time… to make programming great again!
TrumpScript (setting aside its political messages) doesn't even pretend to meet Turing's requirements, but it's fun.
It has no floating-point numbers, only integers, because “America never does anything halfway.” All numbers must be greater than 1 million, because small ones are insignificant. External libraries aren't allowed, because all code must be homegrown American. Instead of the usual terms True and False, it uses the presidential candidate's favorites, fact and lie.
Whether the language will last… we'll find out after November 5.
10. Brain Off Grazing Ducks
We skipped some curious candidates for this list, such as ReMorse, which uses dots and dashes in the spirit of the good old Morse code; Taxi, whose code resembles a road map (without necessarily being full of the life advice that Bulgarians associate with that profession); or ArnoldC, which uses only one-liners from Arnold Schwarzenegger movies.
We deliberately saved for last (on the assumption that we've already lost the younger audience) the language with the resounding name Brainf*ck, which I won't translate, but which metaphorically refers to mental gymnastics.
It is intentionally difficult, designed so that every elementary task becomes a challenge for the programmer. Competitions are held every year, and according to its fans, once you learn to write code in it, you'll be a wizard in any other programming language you know.
And all of this… with just 8 commands, which once again are enough to make it Turing complete. Urban Müller developed it in 1993 while studying physics; gradually the creation took on a life of its own and earned cult status. For the proverbial “Hello, world!” all you need to write is:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.
<<+++++++++++++++.>.+++.——.——–.>+.>.
And so, which programming language we choose today may not even matter all that much. What matters more is whether we have anything meaningful to say online…




