# Awesome Esolangs

Curated list of awesome esoteric programming languages, resources and related projects.

> “An esoteric programming language, or esolang, is a computer programming language designed to experiment with weird ideas, to be hard to program in, or as a joke, rather than for practical use.”
> esolang.org

## Contents

- Languages
- Algorithms
- Others
- Resources
- Articles
- Community

## Languages

- ><> - A stack-based 2d language with support for reflection.
- 1+ - A surprisingly user-friendly language with a highly-limited instruction set.
- 78 - A single-character command language focused around the numbers 7 and 8.
- ajsone - Language defined completely in JSON.
- AlmostBinary - Code in binary and run on any platform.
- ArnoldC - Based on the best one-liners of Arnold Schwarzenegger.
- Befunge - Two-dimensional language.
- Brackets - Language made of brackets, a lot of brackets.
- Brainfuck - Minimalist language using only 8 single-character commands.
- C Flat - Musical language focused on sound rather than notation with creative freedom in mind.
- CellTail - A 1d celular automata based language, supports a complex pattern matching syntax.
- Charcoal - Concise language for sketching ASCII art.
- Chef - Programs that look like cooking recipes.
- Chicken - Only 1 valid symbol: ‘chicken’.
- ChuckScript - Unary-based language, where the code is a single number.
- COW - Brainfuck variant using twelve variations of moos as instructions.
- DNA# - Language based on the structure of the DNA.
- Dots - A turing-complete language using “.” symbol only.
- Electra - Code like an electrician.
- Emojicode - Full-blown programming language consisting of emojis.
- Enterprise™ - Non deterministic unnecessarily statically typed language.
- False - Heavily obfuscated language with a minimal implementation.
- Fetlang - Designed such that source code looks like poorly written fetish erotica.
- FlipJump - 1 instruction: Flip a bit, then Jump. The simplest OISC.
- Folders - Code written with folders.
- FreakC - Full-blown programming language with NSFW contents and memes.
- Fugue - Music as source code.
- Golfscript - Stack oriented, aimed at solving problems in as few keystrokes as possible.
- Haifu - Designed with the core values of Eastern philosophy in mind.
- INTERCAL - Parody language intended to be completely different from other languages.
- Japt - Reduced JavaScript for golfing.
- Jelly - Golfing language based on J.
- JellyScript - Brainfuck-based with delicious jelly.
- JSFuck - Esoteric programming style based on the atomic parts of JavaScript.
- Lazy K - Minimal, turing-complete pure functional language without extra features.
- legit - Programs defined entirely by the graph of the git repository instead of its contents.
- LolCode - Language with keywords based on the lolcat meme expressions.
- Malbolge - Named after the 8th level of hell, is designed to be as difficult as possible to program.
- Mindfck - High level language that transpiles to Brainfuck.
- Monicelli - Programming using Italian-like gibberish.
- Ni - Brainfuck-based with more helpful instructions.
- Omgrofl - Syntax resembling Internet slang.
- Ook! - Brainfuck-based language, where the commands are orangutan words.
- Orca - Livecoding environment to quickly create procedural audio sequencers.
- Piet - Language in which programs look like abstract paintings using colors as code. Named after Piet Mondrian.
- RASEL - Fungeoid with no limits on program space, float precision, and with a bit of random access to stack.
- reMorse - Morse-styled language.
- Rockstar - Designed for creating computer programs that are also song lyrics.
- Shakespeare - Language where the code appear to be Shakespearean plays.
- Schoenberg - The MIDI Esoteric Programming Language.
- Spooky - The scariest programming language :jack_o_lantern: :skull:.
- Suzy - 3D language inspired in Befunge.
- Technologic - Language in which programs look like the lyrics to the Daft Punk song Technologic.
- Thue - Matrioshka language based on nondeterministic string rewriting of a semi-Thue grammar.
- Tru - A stack-based language with prefix-free brackets.
- TrumpScript - Make Python great again.
- Turtle - Uses long-term storage for memory use.
- Unary - Brainfuck-based language where all the commands are 0.
- Unary Except Every Zero Is Replaced with the Title of This Programming Language or, Alternately, Is Replaced with the Smallest Counter-Example to the Goldbach Conjecture. Compilers and Interpreters Only Have to Implement the Former Option - Derivative of Unary in which every zero is replaced with the title of the programming language being discussed.
- Unlambda - Obfuscated functional programming.
- Velato - Language that uses MIDI files as source, programs are defined by the pitch and order of notes.
- Vigil - Only Vigil is truly vigilant about not allowing code that fails to pass programmatic specifications.
- Watson - Stack-based Turing-incomplete configuration files.
- 文言 (Wenyan) - Closely follows the grammar and tone of classical Chinese literature.
- Whenever - Language that does things whenever it wants.
- Whitespace - Use only white-characters (space, tabs and newlines).
- WordLang - A language based on meaning-like grammar that produces output.
- Z - Use only the letter z.
- ZOMBIE - Inherently evil multithreaded language designed for Necromancers.

## Algorithms

- πfs - Pi-based storage system, store your data by searching a matching sequence in pi.
- Stacksort - Sorts a list by searching answers in Stack Overflow and executing code snippets until is sorted.

## Others

- asmbf - The only true brainfuck assembler toolkit.
- CSS-only-chat - A truly monstrous async web chat using no JS whatsoever on the frontend.
- FizzBuzzEnterpriseEdition - Simple FizzBuzz game implemented under the most strict enterprise standards.
- MalbolgeLisp - A Lisp interpreter in Malbolge Unshackled.
- NoCode - Secure and reliable applications. Write nothing; deploy nowhere.
- Petrovich - Operating System concept based on random actions and rewards/punishments.
- vapor.js - The World’s Smallest & Fastest JavaScript Library.

## Resources

- DM’s Esoteric Programming Languages - List of esoteric languages and algorithms written by dangermouse.
- Esofiles - The Esoteric Files Archive, an archive of implementations of esoteric programming languages and examples.
- Esolang - Wiki of esoteric programming languages and related Resources.
- Esoteric Codes - Articles and documents collection.
- Rosettacode - Provides examples in different languages, including esoteric languages.
- Wikipedia/Esoteric programming languages - Wikipedia list of esoteric languages.
- Esolang List of ideas - Compilation of ideas for esoteric languages and related.

## Articles

- Let’s Build a Basic Interpreter (Ruslan’s Blog) - Series of articles explaining the basics of compilers and interpreters and how to build one.
- Six programming paradigms that will change how you think about coding - Post by Yevgeniy Brikman describing different programming paradigms that are not commonly applied.
- The Fun (and Madness) of Esoteric Programming Languages - Straightforward introduction to esoteric languages with examples.
- On the Turing Completeness Of MS PowerPoint - Turing Machine on PowerPoint.

## Community

- Anarchy Golf - Informal golfing problems server.
- Code Golf Stack Exchange - Golfing problems and answers.
- Freenode IRC Channel - The #esoteric IRC channel on freenode.
- Reddit Esolangs - Reddit community on esolangs.
- Esolangs Discord Server - A Discord community about esoteric languages.

> Logo used with permission of David Morgan-Mar

esolangs.md Github