diff --git a/esolang.md b/esolang.md new file mode 100644 index 0000000..a2ee2f5 --- /dev/null +++ b/esolang.md @@ -0,0 +1,26 @@ +# 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. \ No newline at end of file