You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.8 KiB

Esoteric Programming Language

So called esoteric programming languages (esolangs) are highly experimental and fun programming languages that employ bizarre ideas. Popular languages of this kind include brainfuck, chef or omgrofl.

There is a wiki for esolangs, the Esolang Wiki. If you want to behold esolangs in all their beauty, see [hello world in different languages](https://esolangs.org/wiki/Hello_world_program_in_esoteric_languages_(nonalphabetic_and_A-M). The Wiki is published under CC0!

Some notable ideas employed by esolangs are:

  • Using images instead of text as source code (e.g. Piet).
  • Doing nothing (e.g. Nothing).
  • Being 2 or more dimensional (e.g. Befunge or Hexagony).
  • Source code resembling cooking recipes (e.g. Chef).
  • Trying to be as hard to use as possible (e.g. Brainfuck).
  • Trying to be as hard to compile as possible (e.g. Befunge).
  • Adding randomness to program execution (e.g. Entropy).
  • Obligation to beg the compiler to do its job (e.g. INTERCAL).
  • Using only white characters in source code (e.g. Whitespace).
  • Using only single letter in source code (e.g. Unary).
  • Using git repository structure as source code (e.g. legit).
  • Source code resembling dramatic plays (e.g. Shakespeare, actual real-life plays were performed).
  • Solely focus on golfing, i.e. writing the shortest possible programs (e.g. GoldScript)
  • Using unicode characters (e.g. UniCode).
  • Being infinitely many languages (e.g. MetaGolfScript, each one solves a specific program in 0 bytes).

Esolangs are great because:

  • They are actually useful research in language design, even if most of the ideas aren't useful directly, esolangs really teach us about the borders and definitions of what languages are. And sometimes, by mistake, actual discoveries are made.
  • They are fun.
  • They are great exercise in programming and design. Simple languages that are allowed to not be useful are potentially good for education as they let the programmer fully focus on a specific idea and its implementation.
  • They blend technology with art, train creativity.
  • They are a breath of fresh air in the sometimes too serious area of technology. Hobbyist and non-commercial programming communities are always great to have.

History

INTERCAL, made in 1972 by Donald Woods and James Lyon, is considered the first esolang in history: its goal was specifically intended to be different from traditional languages and so for example a level of politeness was introduced -- if there weren't enough PLEASE labels in the source code, the compiler wouldn't compile the program.

In 2005 esolang wiki was started.