Esoteric Language Basics

Choosing Your First Esoteric Language

Not sure which esoteric language to try first? Match a language to your interests, from tape-based Brainfuck to grid-based Befunge and visual puzzles.

On this page
  1. There is no single best choice
  2. If you like logic and machines
  3. If you like spatial thinking and puzzles
  4. If you like visual and artistic ideas
  5. If you like absurdity
  6. If you like stack-based thinking
  7. Practical criteria
  8. How to start
  9. Switching later

There is no single best choice

The right first esolang depends on what you find interesting. A language that delights one person can bore another. Instead of asking which is “best,” ask which one matches the kind of problem you like. The sections below group languages by interest, with the caveat that all of these are matters of taste.

If you like logic and machines

A tape language such as Brainfuck is a natural fit. The model is easy to state: cells, a pointer and eight commands. You can learn the whole language in minutes, then spend weeks learning to work within it. It also lines up nicely with the Turing machine from theory, so it suits readers who like seeing the abstract idea turn concrete.

A related option is a counter machine language, which uses numbered registers and a few instructions. These are good if you enjoy small formal systems.

If you like spatial thinking and puzzles

A grid language such as Befunge suits people who like mazes and diagrams. Your program is a picture of paths, and you debug by following the route the instruction pointer takes. Beginners often find the first hour confusing and the second hour surprisingly enjoyable. If this appeals, start with the basics of the Befunge language and then try a Hello World program, because printing a short message teaches most of the basics.

If you like visual and artistic ideas

Languages that use colors, shapes or images as source code reward people who like design. In those languages, the program can double as an artwork. The trade-off is that you may need a graphic editor as well as an interpreter, and debugging can be less direct than in a text language.

If you like absurdity

Joke languages are about the idea, not the productivity. Reading about a few is a pleasant way to understand the culture without committing to writing much code. Whitespace, where the code is made of invisible characters, is a good example of a language whose main lesson is conceptual: it makes you think about what source code is. It is more fun to read about and to try once than to use for a long project.

If you like stack-based thinking

Languages where all data lives on a stack teach a style that also appears in real systems, such as some calculators and virtual machines. Learning to manage a stack by hand is a skill that transfers well.

Practical criteria

Besides taste, a few practical points help:

  • Documentation. Pick a language with a clear, short description. A one-page specification is easier to learn from than a scattered one.
  • Tooling. Check that a working interpreter exists for your system. Many are available online or are short enough to build yourself.
  • Examples. Languages with many small, readable example programs are easier to start with.
  • Size. Very small languages are quick to learn, though they can make even simple tasks feel long. Mid-sized ones, with a few more instructions, are sometimes friendlier.

How to start

Start small. A good first goal is printing one message, then reading a number and printing it back, then writing a short loop. Resist the urge to attempt something ambitious on day one. Tracing a short program by hand, step by step, teaches more than copying a large one.

It also helps to keep expectations realistic. Esolangs are meant to be odd, so feeling stuck is normal and not a sign you are doing it wrong. Many people find that the process teaches them something about ordinary languages as well.

Switching later

Your first choice is not permanent. Many people sample two or three languages before settling on a favorite. Moving between a tape language and a grid language, for example, highlights how different memory and control flow can be. There is no cost to changing course, and the broader hobby has room for every taste, whether you want to write programs, build interpreters or just read about the ideas.

The complete guide to esoteric language basics

What Are Esoteric Programming Languages?
Read the guide

Keep exploring

Guides from other topics

All topics →