# Esoteric Programming Language So called esoteric programming languages (esolangs) are highly experimental and [fun](fun.md) [programming languages](programming_language.md) that employ bizarre ideas. Popular languages of this kind include [brainfuck](brainfuck.md), [chef](chef.md) or [omgrofl](omgrofl.md). There is a wiki for esolangs, the [Esolang Wiki](https://esolangs.org). 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). Some notable ideas employed by esolangs are: - Using images instead of text as [source code](source_code.md). - Doing nothing. - Having two dimensional source code. - Source code resembling cooking recipes. - Trying to be as hard to use as possible. - Trying to be as hard to compile as possible. - Adding randomness to program execution. - Obligation to beg the compiler to do its job. - Using only white characters in source code. - Using only single letter in source code. - Using git repository structure as source code. - Source code resembling dramatic plays. 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](fun.md)**. - **They are great exercise in [programming](programming.md)** 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](art.md)**, 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.