Introduction to esolang design
- This article is a stub, which means that it is not detailed enough and needs to be expanded. Please help us by .
Designing truly beautiful esolangs can be a difficult thing to do. So difficult, in fact, that almost every esolang on this site is based off of one of just a few languages. We have many multidimensional languages, plenty of unimplementable languages, and some would say too many Brainfuck derivatives.
What makes a good esolang?
Just making some small changes to an existing language or taking ideas from something that already exists does not make a gem of an esolang. A truly brilliant esolang (according to those who have authored this page, as well as maybe some people over IRC) does something novel and unique and completely different from that of existing languages (including other esolangs). An example of a language that did something completely new for the masses is Befunge, which introduced the concept of a 2D language to a wider group of people.
Methods of Design
Declarative languages (languages that are based on reading a program then essentially evaluating it like an expression) are often based on existing mathematical systems. Thus, one way to make a good esoteric declarative language is to find a good but strange system of math and extend it to be practical to use. Optimally, you'll invent an entirely new system of math, but since you probably can't do that, just finding a system for it will do as well.
Imperative languages is the "classic" straightforward paradigm of esolangs. For example brainfuck is imperative. All you need is a set of instructions that reads and modifies the memory and some kind of control flow (sometimes these can even be combined).
Languages based purely on functions are becoming more popular recently.
Other Sentence Type Languages
If you can think of a good Interrogative or exclamatory language, be our guest.