keepcalculator

06 Numbers and Powers

Forgotten Programming Languages Never Meant to Be Practical

Card No. 06·55393 · Updated · Standard formula, shown below

This article answers the question: which programming languages were created not for real-world use, but for experimentation, humor, or pure intellectual curiosity? These languages were never intended to be practical tools for building software, yet they remain fascinating artifacts of computer science history.

What Makes a Language “Not Meant to Be Practical”?

Most programming languages are designed to solve problems: C for systems programming, Python for readability, JavaScript for the web. But a small subset exists for entirely different reasons. Some are jokes (like INTERCAL, whose name stands for “Compiler Language With No Pronounceable Acronym”), some are thought experiments (like Befunge, which uses a two-dimensional grid instead of a linear sequence of instructions), and others are academic exercises to prove a point about computation theory (like Brainfuck, which has only eight commands but is Turing-complete). These languages often deliberately ignore everything programmers value: readability, efficiency, maintainability, and even the basic linear flow of execution.

The Esoteric Programming Language Movement

The term “esolang” (short for esoteric programming language) was coined in the late 1990s by the creators of the language “Befunge” and “Wierd.” The esolang community maintains a wiki that catalogs hundreds of these languages. They are not accidents or failed attempts; they are intentionally impractical. Some are designed to be as hard as possible to write in, others to be as short as possible, and others to be visually beautiful or conceptually mind-bending. The movement is a celebration of programming as an art form rather than a trade.

Notable Examples and Their Quirks

  • INTERCAL (1972) – Created by Don Woods and James Lyon as a parody of existing languages. It has statements like “PLEASE” (which the compiler may reject if used too often or too rarely) and a random number generator that is statistically flawed on purpose.
  • Befunge (1993) – The program is laid out on a 2D grid; the instruction pointer moves in any direction (up, down, left, right) and wraps around edges. Control flow is literally a matter of steering the pointer.
  • Brainfuck (1993) – Created by Urban Müller to have the smallest possible compiler (about 200 bytes). It uses only eight characters: > < + - . , [ ]. Despite its simplicity, it is Turing-complete, meaning it can compute anything that any other language can, in theory.
  • Whitespace (2003) – Only spaces, tabs, and line feeds are meaningful; all other characters are ignored. Programs are invisible to the eye.
  • LOLCODE (2007) – Inspired by the “LOLCATS” internet meme, with keywords like HAI, CAN HAS, and VISIBLE. It was a joke that accidentally gained a working interpreter.

Why Were They Created?

The motivations vary, but a few themes recur. Some creators wanted to push the limits of what a programming language could be, exploring ideas that had no commercial value but were intellectually stimulating. Others wanted to satirize the programming culture of their time—INTERCAL mocks the verbosity and bureaucracy of early languages like COBOL and FORTRAN. Brainfuck was a minimalist challenge: how small can a compiler be? Whitespace was a commentary on how much of programming is invisible to the untrained eye. And some, like LOLCODE, were simply internet jokes that got out of hand.

Are They Completely Useless?

Almost entirely, yes, but not entirely. Many esolangs are Turing-complete, meaning they can theoretically compute anything a conventional language can. This makes them useful for computer science education: they illustrate concepts like Turing completeness, state machines, and instruction pointer control in a way that is both memorable and fun. Brainfuck, for example, is often used in programming challenges and as a way to test a compiler’s correctness. Some esolangs have also inspired practical ideas; for instance, the 2D nature of Befunge has parallels in some hardware description languages and dataflow programming. But no one is building a web app in Whitespace.

How to Try Them Today

If you are curious, you don’t need to install anything. Many esolangs have online interpreters. For Brainfuck, you can find dozens of web-based runtimes that let you step through code. For Befunge, there are also online visualizers that show the pointer moving across the grid. The esolang wiki (esolangs.org) is the best starting point; it lists every notable language, its spec, and often links to an interpreter. If you want to write a simple program, start with Brainfuck: ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>. prints “Hello World!” on most interpreters.

Common Misconceptions

  • “They are broken or incomplete.” Most esolangs are fully implemented and have complete specifications. They are not bugs; the impracticality is the feature.
  • “They are all jokes.” Many are serious academic explorations. For example, the language “Ook!” is a variant of Brainfuck that uses only the word “Ook” with different punctuation—it is a joke, but it is also a valid Turing-complete language.
  • “They can’t do anything real.” In theory, any Turing-complete language can compute anything. In practice, writing a simple loop in Brainfuck takes dozens of characters and is error-prone, but it is possible.

Frequently Asked Questions

Are esoteric languages ever used in production?

No. They are not designed for reliability, maintainability, or performance. Using one in a real project would be a serious mistake, unless the project itself is a joke or an art piece.

Can I make money knowing Brainfuck?

No. There is no job market for Brainfuck developers. However, knowing esolangs can deepen your understanding of how compilers and interpreters work, which is a transferable skill.

What is the hardest esolang to write in?

It is subjective, but Malbolge (1998) is widely considered the most difficult. It was designed to be nearly impossible to program in, and the first program took two years to write by hand (later aided by a brute-force search).

Are esolangs a waste of time?

That depends on your goals. If you want to build software, yes. If you want to have fun, learn about computation, or challenge your brain, they are a great hobby. Many programmers find that exploring esolangs gives them a fresh perspective on language design.

Do esolangs have any influence on mainstream languages?

Rarely directly, but they can inspire features. For example, the concept of a 2D instruction pointer has been explored in some visual programming tools. However, most mainstream languages ignore esolangs entirely.

What is the oldest esolang?

INTERCAL (1972) is generally considered the first esolang. It predates the term “esolang” by decades, but it fits the definition perfectly.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →