Esoteric languages are "programming" languages that are not designed for practical or convenient use.
Instead, these are designed to be themed into something not related to programming (e.g. Chef), to have the fewest instructions as possible (also called minimalism), to be the most difficult to use (e.g. Malbolge), to discover new concepts (e.g. Fractran), or just a joke(e.g. HQ9+).
For more examples, see the Esoteric Programming Language Wiki.