26 lines
1.6 KiB
Markdown
26 lines
1.6 KiB
Markdown
|
# 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).
|
||
|
|
||
|
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.
|