First of all please be aware this post contains some abusive language but I hope it will not bother anyone. I apologize for the bad language but that's what the name is.As I've been doing documentation on existing programming languages attempting to make a complete list of them I stumbled across terrible programming languages, which were clearly not made for actual use and implementation due to their insane difficulty. Languages such as Brainfu*k and LOLCODE or Whitespace are fool languages because they have no real use.For example, a Hello world program written in BrainFu*k. Taken from Wikipedia:The following program prints Hello World! and a newline to the screen:+++++ +++++             initialize counter (cell #0) to 10[                       use loop to set the next four cells to 70/100/30/10    > +++++ ++              add  7 to cell #1    > +++++ +++++           add 10 to cell #2     > +++                   add  3 to cell #3    > +                     add  1 to cell #4    <<<< -                  decrement counter (cell #0)]                   > ++ .                  print 'H'> + .                   print 'e'+++++ ++ .              print 'l'.                       print 'l'+++ .                   print 'o'> ++ .                  print ' '<< +++++ +++++ +++++ .  print 'W'> .                     print 'o'+++ .                   print 'r'----- - .               print 'l'----- --- .             print 'd'> + .                   print '!'> .                     print '\n'or another example taken from LOLCODE language: HAI CAN HAS STDIO? PLZ OPEN FILE LOLCATS.TXT?     AWSUM THX         VISIBLE FILE     O NOES         INVISIBLE ERROR! KTHXBYEThese languages are very difficult to learn/read/work with. My question is - Why do they exist? What is the purpose of them? Also, is there an official name for these type of languages?
Why do Joke programming languages exist?
programming languages
Esoteric Programming languages, also known as Turing Tarpits due to the difficulty of writing anything useful with them, are mostly built for fun or to see how far a particular idea can be taken. Whitespace for instance, privileges a lexical item typically ignored in most languages. Shakespeare on the other hand is designed to mimic Shakespearean Drama. Brainfuck actually has a practical purpose. It is designed to employ the smallest possible compiler at under 200 Bytes.There is a second category of the actual joke languages such as Malebolge and INTERCAL, neither of which is designed to be practical in any way whatsoever and have features that actively make them harder to use.