5 of the Strangest Programming Languages Ever Created

Discover five of the world's strangest programming languages, including Brainfuck, Chef, INTERCAL, Befunge, and Whitespace, and learn why programmers created these unusual and fascinating coding languages.

Staff Writer Jul 26, 2026 at 2011Z

Updated: Jul 26, 2026 at 2138Z

5 of the Strangest Programming Languages Ever Created
A coding workspace exploring esoteric programming languages. Credit: Getty Images.

When people think about programming languages, they usually think of popular ones like Python, Java, C++, or JavaScript. These languages are designed to solve real-world problems. They help developers build websites, mobile apps, games, artificial intelligence, and operating systems. They are made to be readable, efficient, and easy enough for teams of programmers to use together. However, not every programming language was created to be practical. Some were designed as jokes, experiments, or challenges. 

Their creators wanted to see how strange a programming language could become while still being able to run real programs. These are known as esoteric programming languages, often called esolangs. Although they are rarely used for actual software development, these languages are fascinating because they challenge our understanding of what a programming language can be. Here are five of the most unusual programming languages ever created.

INTERCAL: The Language That Forces You to Be Polite

Programming languages normally care about correct syntax, but INTERCAL is different because it also cares about your manners. INTERCAL, short for Compiler Language With No Pronounceable Acronym, was created in 1972 by Princeton students Donald R. Woods and James M. Lyon. They designed it as a parody of complicated programming languages that were popular at the time, including FORTRAN, COBOL, and ALGOL. Their goal was to create a language that was completely different from every existing programming language, so they avoided using familiar syntax, operators, and programming rules. 

One of the features that made INTERCAL famous is its unusual politeness system. Programmers must include words like PLEASE or PLEASE DO in many statements, but using them too little or too often causes errors. If fewer than about 20 percent of your statements contain PLEASE, the compiler reports that you are not polite enough. If more than about one-third of your statements include it, the compiler complains that you are too polite. To write a working program, programmers have to find the perfect balance. 

INTERCAL also replaces familiar symbols with unusual names. An apostrophe becomes a spark, quotation marks become rabbit ears, and a comma is called a tail. Instead of normal variables, the language uses 16-bit integers called spots, 32-bit integers called two-spots, and arrays known as tails and hybrids. Everything about INTERCAL was designed to confuse programmers, making it one of the earliest and most famous esoteric programming languages.

Also Read: 9 Surprising Ways Video Games Changed the World

Chef: Programming That Looks Like a Recipe

Most programming languages look like mathematical formulas or technical instructions, but Chef looks like something you would find in a cookbook. Chef was created by David Morgan-Mar as an experimental programming language where every program is written like a cooking recipe. Although the code looks like a recipe, it is actually a real computer program that can be compiled and executed. Instead of creating variables with names like x or count, programmers use ingredients such as flour, sugar, or milk, and each ingredient stores a numerical value used by the program. 

Even the units of measurement have meaning. Dry measurements such as grams, cups, or pinches represent ordinary numbers, while liquid measurements such as milliliters or dashes tell the program to treat the value as an ASCII character. Chef also replaces computer memory with kitchen equipment. Instead of using stacks, the language uses mixing bowls and baking dishes. 

Programming instructions become cooking instructions, so Put sugar into mixing bowl pushes a value onto the stack, Fold flour into mixing bowl removes the top value and stores it somewhere else, and mathematical operations are described using cooking actions such as Combine, Mix, or Stir. When the program finishes, a Serves statement prints the final output, just as if the completed program were a finished meal ready to be served. Chef proves that a programming language does not have to look technical to be fully functional.

Befunge: A Language That Runs Like a Maze

Almost every programming language reads code from top to bottom, one line after another, but Befunge completely ignores this idea. Instead of arranging code in a straight line, Befunge places it on a two-dimensional grid. The original version used a grid measuring 80 columns by 25 rows. 

A moving instruction pointer travels across this grid, reading one instruction at a time, and unlike normal programming languages, it can move right, left, up, or down depending on the symbols it encounters. The edges of the grid are connected together, so if the pointer moves off one side, it appears on the opposite side, making the grid behave like a loop. Even stranger, Befunge stores both program code and data in the same memory space, meaning there is no clear separation between instructions and information. 

Special symbols control the pointer's movement. The ? instruction randomly chooses a direction, while the _ and | instructions change direction depending on the values stored on the stack. Because execution can move in almost any direction, reading a Befunge program often feels like solving a maze instead of reading software, and following the program's flow is one of the biggest challenges for anyone trying to understand it.

Whitespace: A Language Made from Invisible Characters

Whitespace may be the strangest programming language ever created because it appears completely empty. Unlike normal programming languages, Whitespace ignores every visible character. Letters, numbers, punctuation marks, and keywords have absolutely no meaning. Only three characters matter: spaces, horizontal tabs, and line feeds, also called new lines. 

Everything else is treated as a comment and ignored by the interpreter. If you open a Whitespace program in a text editor, it usually looks like a blank page, yet hidden inside those invisible characters is a complete stack-based programming language. Each instruction begins with a specific combination of spaces, tabs, and line feeds that tells the interpreter what operation to perform. For example, a single space begins stack operations, while a tab followed by a space starts arithmetic operations, and a line feed controls the program's execution flow. 

Numbers are written in binary form using spaces and tabs to represent zeros and ones, while another line feed marks where each number ends. Writing or debugging a Whitespace program can be extremely difficult because even a single invisible character can completely change the program's behavior, making the language feel more like a puzzle than a practical programming tool.

Also Read: 5 Video Games From 2001 That Changed Gaming Forever

Brainfuck: Only Eight Commands for Everything

Brainfuck is famous for being one of the smallest programming languages ever created. Unlike modern languages that contain hundreds of keywords and built-in features, Brainfuck has only eight commands: >, <, +, -, [, ], ., and ,. These eight symbols make up the entire language. Brainfuck works with an array of 30,000 memory cells, all starting with the value zero, while a single pointer moves left and right across these cells. 

The commands perform only basic actions, such as moving the pointer, increasing or decreasing values, creating loops, or printing characters, and every other character in the source code is ignored. There are no variables, functions, classes, objects, or advanced data types, so even the simplest tasks require long sequences of commands. 

Writing software in Brainfuck is extremely difficult, but that is exactly the point. The language was created to explore how little syntax is actually needed to build a complete programming language. Although almost nobody uses Brainfuck for real software, programmers often enjoy solving Brainfuck challenges because they help improve their understanding of low-level programming concepts.

Why These Languages Matter

At first glance, these programming languages seem completely useless because they are difficult to read, difficult to write, and almost impossible to maintain, and no serious software company would build a commercial application using them. However, they serve an important purpose. 

Esoteric programming languages encourage programmers to think differently about programming language design and show that many features we consider normal, such as readable syntax, meaningful variable names, or straightforward control flow, are simply design choices rather than strict requirements. Some of these languages were created as jokes, while others were built to explore theoretical computer science or challenge experienced programmers. 

Many of them also demonstrate the concept of Turing completeness, meaning they can perform any computation that a normal programming language can perform if they are given enough memory and enough time. Today, these languages remain popular among programming enthusiasts, puzzle lovers, and computer science students who enjoy experimenting with unusual ideas.

Comments (0)

Log in to join the conversation.

ADVERTISEMENT