{"id":39866,"date":"2026-10-26T08:10:50","date_gmt":"2026-10-26T11:10:50","guid":{"rendered":"https:\/\/statanalytica.com\/blog\/?p=39866"},"modified":"2026-10-26T08:10:51","modified_gmt":"2026-10-26T11:10:51","slug":"esoteric-programming-languages","status":"publish","type":"post","link":"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/","title":{"rendered":"9 Esoteric Programming Languages: Examples, History &amp; List"},"content":{"rendered":"\n<p>Most programmers work on their code all day to make it cleaner, faster, easier to read, etc. But there are a few who do just the opposite. They create languages that are intentionally strange, funny, and sometimes almost incomprehensible. Welcome to the world of the esoteric programming languages.<\/p>\n\n\n\n<p>In this post, we will examine 9 esoteric programming languages, some of which you have never heard of, such as Brainfuck, Malbolge, Whitespace, INTERCAL, Piet, LOLCODE, Shakespeare, Befunge and Chef. Some resemble abstract art, some look like recipes, and one was designed to be a personal enemy.<\/p>\n\n\n\n<p>But don&#8217;t dismiss them as merely jokes! However, there is something behind the silliness; real ideas about logic, the way computers really work, and what a language really has to be useful. A great, fun way to learn computer science without feeling like you are learning.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"what-are-esoteric-programming-languages-definition\"><\/span><strong>What Are Esoteric Programming Languages? (Definition)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6adf54bfc827d\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #ff5104;color:#ff5104\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #ff5104;color:#ff5104\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6adf54bfc827d\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#what-are-esoteric-programming-languages-definition\" >What Are Esoteric Programming Languages? (Definition)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#history-of-esoteric-programming-languages\" >History of Esoteric Programming Languages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#why-do-programmers-create-esoteric-programming-languages\" >Why Do Programmers Create Esoteric Programming Languages?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#list-of-9-esoteric-programming-languages-with-examples\" >List of 9 Esoteric Programming Languages (With Examples)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#1-brainfuck\" >1. Brainfuck<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#2-malbolge\" >2. Malbolge<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#3-whitespace\" >3. Whitespace<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#4-intercal\" >4. INTERCAL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#5-piet\" >5. Piet<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#6-lolcode\" >6. LOLCODE<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#7-shakespeare-spl\" >7. Shakespeare (SPL)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#8-befunge\" >8. Befunge<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#9-chef\" >9. Chef<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#hello-world-in-esoteric-programming-languages\" >Hello World in Esoteric Programming Languages<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#brainfuck\" >Brainfuck<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#whitespace\" >Whitespace<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#lolcode\" >LOLCODE<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#chef\" >Chef<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#best-esoteric-programming-languages-to-learn-first\" >Best Esoteric Programming Languages to Learn First<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#how-many-esoteric-programming-languages-exist-number\" >How Many Esoteric Programming Languages Exist? (Number)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#are-esoteric-programming-languages-useful-in-the-real-world\" >Are Esoteric Programming Languages Useful in the Real World?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#final-thoughts\" >Final Thoughts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#faqs\" >FAQs<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#1-what-is-the-most-difficult-esoteric-programming-language\" >1. What is the most difficult esoteric programming language?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#2-are-esoteric-programming-languages-turing-complete\" >2. Are esoteric programming languages Turing complete?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#3-can-esoteric-programming-languages-be-used-for-real-projects\" >3. Can esoteric programming languages be used for real projects?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/statanalytica.com\/blog\/esoteric-programming-languages\/#4-which-esoteric-programming-language-should-a-beginner-try-first\" >4. Which esoteric programming language should a beginner try first?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<p>Esoteric programming languages are programming languages created for fun, curiosity or experimentation, and not for practical purposes. Sometimes they are referred to as \u201cesolangs.\u201d Nobody would want you to develop a banking app, or a website, with them. The idea is to play around with the concept of what a language can be.<\/p>\n\n\n\n<p>Some are designed to be as small as can be. Others are made to be confusing, silly, or just plain annoying to use. Some of them even imitate art or a recipe for cooking.<\/p>\n\n\n\n<p>The languages are designed to help you get things done fast and with less errors, as compared to Python, Java, or C++. Esolangs have no care in the world. They&#8217;re interested in being clever, weird or funny because, well, that&#8217;s what makes them interesting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"history-of-esoteric-programming-languages\"><\/span><strong>History of Esoteric Programming Languages<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Esoteric programming languages date back to 1972 when two students at Princeton created INTERCAL. At that time it was a joke at the expense of the proper, strict languages. Even you had to use the word PLEASE in your code. If it wasn&#8217;t polite enough the program wouldn&#8217;t run, if it was too polite it wouldn&#8217;t run.<\/p>\n\n\n\n<p>It was in the 1990s that things really started picking up. In 1993, FALSE, Brainfuck, and Befunge all appeared. Then in 1998 there was Malbolge, which was so warped that the first working program wasn&#8217;t written by a human. With the beginning of the internet in the 2000s, the whole scene blew up. Forums and wikis were used for exchanging ideas, and new languages popped up, such as Piet, Shakespeare, Chef, Whitespace, and LOLCODE.<\/p>\n\n\n\n<p><strong>Quick timeline:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>1972:<\/strong> INTERCAL<\/li>\n\n\n\n<li><strong>1993:<\/strong> FALSE, Brainfuck, Befunge<\/li>\n\n\n\n<li><strong>1998:<\/strong> Malbolge<\/li>\n\n\n\n<li><strong>2001-2003:<\/strong> Piet, Shakespeare, Chef, Whitespace<\/li>\n\n\n\n<li><strong>2007:<\/strong> LOLCODE<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"why-do-programmers-create-esoteric-programming-languages\"><\/span><strong>Why Do Programmers Create Esoteric Programming Languages?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Well, there are a number of reasons for which people create esoteric programming languages. The primary ones are:<\/p>\n\n\n\n<p><strong>For fun and humor:<\/strong> Many esolangs are started as a joke that was funny to the originator late at night. INTERCAL and LOLCODE make fun of the seriousness of programming.<\/p>\n\n\n\n<p><strong>To test the limits of language design:<\/strong> There are some creators who want to see what the smallest language they can possibly make and make it work. Brainfuck accomplishes this using only 8 instructions.<\/p>\n\n\n\n<p><strong>To explore Turing completeness:<\/strong> In theory, a language can compute anything that a normal one can, even if it&#8217;s very simple. Esolangs are designed to demonstrate this in a fun manner.<\/p>\n\n\n\n<p><strong>For the puzzle:<\/strong> Coding a language that&#8217;s against you makes you think differently, and solving it is good fun.<\/p>\n\n\n\n<p><strong>For art and creativity:<\/strong> Piet converts code into colourful graphics, and Chef converts it into recipes. It&#8217;s hobbies, not skills.<\/p>\n\n\n\n<p><strong>To learn and teach:<\/strong> They show language and computer functioning without the boring lecture.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-background has-fixed-layout\" style=\"background:linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 100%,rgb(51,167,181) 100%)\"><tbody><tr><td><strong>Also Read:<\/strong> <em>Whitespace uses only spaces, tabs, and line breaks, and if you want to go deeper, you can read our full guide on the<\/em><a href=\"https:\/\/statanalytica.com\/blog\/whitespace-programming-language\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em> Whitespace programming language<\/em><\/a><em>.<\/em><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"list-of-9-esoteric-programming-languages-with-examples\"><\/span><strong>List of 9 Esoteric Programming Languages (With Examples)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Below are the esoteric languages I believe one needs to be familiar with. Some are small, some are bizarre and some are simply hilarious. There are a couple of examples provided for each one to get an idea of what the code will look like.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1-brainfuck\"><\/span><strong>1. Brainfuck<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Brainfuck was created by Urban M\u00fcller in 1993, and it only has 8 commands. That\u2019s it. All is accomplished by manipulating a pointer through a line of memory cells and modifying the numbers in these cells. It is very small and easy to learn, and difficult to read.<\/p>\n\n\n\n<p><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>,. reads one character and prints it back<\/li>\n\n\n\n<li>[-] sets the current cell to zero<\/li>\n\n\n\n<li>++++++++[>++++++++&lt;-]>+. prints the letter \u201cA\u201d (8 \u00d7 8 = 64, plus 1 makes 65)<\/li>\n<\/ul>\n\n\n\n<p><strong>Fun fact:<\/strong> M\u00fcller\u2019s original compiler was under 300 bytes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2-malbolge\"><\/span><strong>2. Malbolge<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Named after a circle in Hell in Dante&#8217;s Inferno, Malbolge appeared in 1998 and it lives up to the name. It was meant to be very difficult to write in. All instructions change once executed, making it unpredictable for a while.<\/p>\n\n\n\n<p><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The first working program didn\u2019t appear until 2000, and a computer search generated it, not a person<\/li>\n\n\n\n<li>Later, a programmer named Lou Scheffer wrote a guide on how to actually write in it<\/li>\n\n\n\n<li>Even a simple \u201cHello World\u201d usually needs special tools to produce<\/li>\n<\/ul>\n\n\n\n<p><strong>Fun fact:<\/strong> Its creator reportedly didn\u2019t write a working program in it himself.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3-whitespace\"><\/span><strong>3. Whitespace<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Whitespace was released in 2003 by Edwin Brady and Chris Morris and only contains spaces, tabs and line breaks. The rest of the text is considered as a comment. So a real program is a blank page, brilliant and a nightmare to debug.<\/p>\n\n\n\n<p><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Push the number 1 onto the stack: [Space][Space][Space][Tab][LF]<\/li>\n\n\n\n<li>Print a character: [Tab][LF][Space][Space]<\/li>\n\n\n\n<li>End the program: [LF][LF][LF]<\/li>\n<\/ul>\n\n\n\n<p><strong>Fun fact:<\/strong> You can hide a Whitespace program inside another program\u2019s normal text, since the extra spaces look like nothing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4-intercal\"><\/span><strong>4. INTERCAL<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>INTERCAL is the mother of all of them, dating from the year 1972. It is made as a parody thus intentionally avoiding normal programming styles. You need to be courteous to PLEASE, but not too courteous or the compiler will complain and may refuse to execute your code.<\/p>\n\n\n\n<p><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DO .1 &lt;- #5 stores the number 5 in a variable called .1<\/li>\n\n\n\n<li>COME FROM (10) is basically the opposite of GOTO<\/li>\n\n\n\n<li>PLEASE GIVE UP ends the program<\/li>\n<\/ul>\n\n\n\n<p><strong>Fun fact:<\/strong> Even its name is a joke. It stands for \u201cCompiler Language With No Pronounceable Acronym.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5-piet\"><\/span><strong>5. Piet<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Piet is created by David Morgan-Mullane in 2001 and is named after the painter Piet Mondrian. Your program is a picture consisting of colored blocks. A pointer is drawn on those blocks, and the colour and brightness will determine what the program does.<\/p>\n\n\n\n<p><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A \u201cHello World\u201d drawn as a Mondrian-style grid of colored blocks<\/li>\n\n\n\n<li>A small program that takes two numbers and prints their sum<\/li>\n\n\n\n<li>Fancy programs shaped like logos or pixel art that still run perfectly<\/li>\n<\/ul>\n\n\n\n<p><strong>Fun fact:<\/strong> Piet programs often look better than they work, and many people hang them up as art.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6-lolcode\"><\/span><strong>6. LOLCODE<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>In 2007, LOLCODE appeared, in response to the lolcat memes throughout the internet. The syntax is broken, cat-like English and a program reads like a silly internet post. Easy to pick up, hard to take seriously \u2013 which is the point!<\/p>\n\n\n\n<p><strong>Examples:<\/strong><\/p>\n\n\n\n<p>HAI 1.2<\/p>\n\n\n\n<p>VISIBLE &#8220;HAI WORLD!&#8221;<\/p>\n\n\n\n<p>KTHXBYE<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I HAS A age ITZ 25 creates a variable<\/li>\n\n\n\n<li>GIMMEH name takes input from the user<\/li>\n<\/ul>\n\n\n\n<p><strong>Fun fact:<\/strong> Programs start with HAI and end with KTHXBYE, like a conversation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7-shakespeare-spl\"><\/span><strong>7. Shakespeare (SPL)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The Shakespeare Programming Language (SPL) makes your code a play. Characters (Romeo and Juliet) are variables and you write scenes and dialogue to modify them. Numbers go up when you are complimented and go down when you are insulted. Let&#8217;s be honest, it&#8217;s a little melodramatic \u2013 but in a good way.<\/p>\n\n\n\n<p><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u201cOpen your heart\u201d prints a number, and \u201cSpeak your mind\u201d prints a character<\/li>\n\n\n\n<li>A nice noun like \u201cflower\u201d counts as 1, and a rude one like \u201cpig\u201d counts as -1, while each adjective doubles it<\/li>\n\n\n\n<li>Programs are split into acts and scenes, like \u201cAct I: Hamlet\u2019s insults and flattery\u201d<\/li>\n<\/ul>\n\n\n\n<p><strong>Fun fact:<\/strong> It was created in 2001 by Karl Hasselstr\u00f6m and Jon \u00c5slund.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"8-befunge\"><\/span><strong>8. Befunge<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Befunge was invented in 1993 by Chris Pressey and is the exception to the &#8220;top to bottom&#8221; rule. You write the program in a 2D grid and the program pointer can move up, down, left or right. Programs may even modify themselves at run-time, making it feel like solving a maze.<\/p>\n\n\n\n<p><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;!dlroW olleH&#8221;>:#,_@ prints \u201cHello World\u201d (yes, the text is written backward)<\/li>\n\n\n\n<li>The arrows >, &lt;, ^, and v steer the pointer around the grid<\/li>\n\n\n\n<li>@ stops the program<\/li>\n<\/ul>\n\n\n\n<p><strong>Fun fact:<\/strong> Pressey designed it to be as hard to compile as possible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"9-chef\"><\/span><strong>9. Chef<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Chef was developed in 2002 by the same developer as Piet, David Morgan-Mullane. Your program is similar to a chef&#8217;s recipe; ingredients are variables and the cooking instructions are statements. The working programme should almost read like a recipe from which you can create it in theory.<\/p>\n\n\n\n<p><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u201cPut flour into the mixing bowl.\u201d adds a value to the stack<\/li>\n\n\n\n<li>\u201cStir for 2 minutes.\u201d shuffles items around<\/li>\n\n\n\n<li>\u201cPour contents of the mixing bowl into the baking dish.\u201d prints the output<\/li>\n<\/ul>\n\n\n\n<p><strong>Fun fact:<\/strong> The famous sample program is called \u201c<a href=\"https:\/\/dev.to\/awwsmm\/hello-world-4mg7\" target=\"_blank\" rel=\"noreferrer noopener\">Hello World Souffle<\/a>.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"hello-world-in-esoteric-programming-languages\"><\/span><strong>Hello World in Esoteric Programming Languages<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>For most people, the first program in any language is \u201cHello, World!\u201d. It&#8217;s short, it prints one line and it is telling you that it is a successful set up. So it\u2019s also a great way to compare esoteric programming languages. In Python it&#8217;s just one line. That same line can turn into one of the many small puzzles in an esolang.<\/p>\n\n\n\n<p>Here are four of them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"brainfuck\"><\/span><strong>Brainfuck<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>++++++++[&gt;++++[&gt;++&gt;+++&gt;+++&gt;+&lt;&lt;&lt;&lt;-]&gt;+&gt;+&gt;-&gt;&gt;+[&lt;]&lt;-]&gt;&gt;.&gt;&#8212;.+++++++..+++.&gt;&gt;.&lt;-.&lt;.+++.&#8212;&#8212;.&#8212;&#8212;&#8211;.&gt;&gt;+.&gt;++.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>It appears to be like a cat strolled throughout the keyboard, right? The first part puts into memory cells the right numbers, and each . prints a letter. It&#8217;s as if you were solving every letter&#8217;s math problem manually.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"whitespace\"><\/span><strong>Whitespace<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The actual program cannot be seen, but here is the first letter. I have used brackets for invisible characters:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>[Space][Space][Space][Tab][Space][Space][Tab][Space][Space][Space][LF] \u00a0 (push 72, the letter &#8220;H&#8221;)<br>[Tab][LF][Space][Space]\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 (print it)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Spaces and tabs are treated like 0s and 1s, respectively, and will be written as such; thus, 72 will be written in binary. Now repeat this for each letter until you end the program with [LF][LF][LF] and you will end up with Hello World that resembles a white page.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"lolcode\"><\/span><strong>LOLCODE<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>HAI 1.2<br>VISIBLE &#8220;HELLO WORLD!&#8221;<br>KTHXBYE<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>This is likely to be the simplest to read among the lot. The program begins with HAI and concludes with KTHXBYE, with the rest of the prints being VISIBLE. You can surmise what it does, even if you haven&#8217;t seen it before.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"chef\"><\/span><strong>Chef<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>It&#8217;s long, the official version is \u201cHello World Souffle\u201d and here&#8217;s a bit of it:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Ingredients.<br>72 g haricot beans<br>101 eggs<br>108 g lard<br>111 cups oil<br>&#8230;<br><br>Method.<br>Put potatoes into the mixing bowl.<br>Put dijon mustard into the mixing bowl.<br>&#8230;<br>Liquefy contents of the mixing bowl.<br>Pour contents of the mixing bowl into the baking dish.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>All of the ingredients are numbered with character codes. 72 is \u201cH,\u201d 101 is \u201ce,\u201d 108 is \u201cl,\u201d and so on. \u201cLiquefy\u201d converts these numbers to letters, and \u201cPour\u201d prints them. It&#8217;s a recipe for just texting, not eating.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"best-esoteric-programming-languages-to-learn-first\"><\/span><strong>Best Esoteric Programming Languages to Learn First<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If you&#8217;re new to this type of work, do not dive into Malbolge. Believe me, you&#8217;ll put down your laptop and take a walk. The better alternative is to select the language based on a few simple considerations: ease of reading, documentation quality, usage, and entertainment value.<\/p>\n\n\n\n<p>With that, here are my suggestions for the best esoteric programming languages to get into first:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>LOLCODE:<\/strong> The program looks like regular (stupid!) English, so you can easily grasp a program almost instantly. It also has a good community and numerous online interpreters.<\/li>\n\n\n\n<li><strong>Brainfuck:<\/strong> The language with only 8 commands, learn the whole language in about 5 minutes. Learning how to use it is another issue, but this is the way that memory and loops work.<\/li>\n\n\n\n<li><strong>Piet:<\/strong> The perfect one if you&#8217;re a person with a visual bent. You don&#8217;t type your programme, you draw it; and there are free online tools to let you paint and run your programme straight from within your browser.<\/li>\n\n\n\n<li><strong>Chef:<\/strong> A good choice if you&#8217;re looking for something a little more adventurous. Once you understand the ingredients and steps, it isn&#8217;t hard to follow.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"how-many-esoteric-programming-languages-exist-number\"><\/span><strong>How Many Esoteric Programming Languages Exist? (Number)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The exact number is not known, but that&#8217;s the fun part, right? The largest community wiki of these languages gives you well over a thousand entries of its own, the Esolang wiki. I would say that it&#8217;s even higher today, but I wouldn&#8217;t believe anyone if they said it was a certain number.<\/p>\n\n\n\n<p><strong><em>Here\u2019s why it\u2019s so hard to count:<\/em><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Anyone can make one:<\/strong> You don&#8217;t need to have a company or team. In an afternoon, a single person can create his own esoteric language, and publish it online.<\/li>\n\n\n\n<li><strong>Many never get finished:<\/strong> Many languages have only an idea or brief description and it&#8217;s not clear if they should count or not.<\/li>\n\n\n\n<li><strong>Some are tiny variations:<\/strong> There are dozens of Brainfuck variants, and some people consider them to be different languages, others do not.<\/li>\n\n\n\n<li><strong>The line is blurry:<\/strong> Is a joke language an esolang? What about a language made for a puzzle contest? People disagree.<\/li>\n<\/ul>\n\n\n\n<p>They continue to appear as well. Each time an oddball concept appears, such as an oddball language created from a game, food, or math trick, another entry is created. But the number of esoteric programming languages continues to grow and likely will not be slowing down anytime soon.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"are-esoteric-programming-languages-useful-in-the-real-world\"><\/span><strong>Are Esoteric Programming Languages Useful in the Real World?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Short answer: not for making actual product, but more useful than they appear. No one is operating a hospital system on Whitespace and that&#8217;s okay. They&#8217;re worth something in another way.<\/p>\n\n\n\n<p><strong><em>Here\u2019s where they actually help:<\/em><\/strong><\/p>\n\n\n\n<p><strong>Teaching how computers work:<\/strong> Brainfuck is an extremely primitive way of displaying memory, loops, and pointers. If you&#8217;re only learning 8 commands, where&#8217;s there to hide, and you can really see what&#8217;s going on.<\/p>\n\n\n\n<p><strong>Understanding computation theory:<\/strong> Esolangs are a fun way to learn about Turing completeness. It is easier to &#8220;see&#8221; a small language functioning than to read through a textbook.<\/p>\n\n\n\n<p><strong>Sharpening problem-solving:<\/strong> If the language is against you, it is necessary to be more creative and harder working. That is a trait that extends to normal coding.<\/p>\n\n\n\n<p><strong>Code golf and contests:<\/strong> Some people like to solve problems in the least number of characters, and esolang communities find puzzles like that fun.<\/p>\n\n\n\n<p><strong>Community and creativity:<\/strong> There&#8217;s plenty of programming friends in these hobby communities, ideas shared and just some plain fun.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"final-thoughts\"><\/span><strong>Final Thoughts<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>That&#8217;s the esoteric programming language world in brief. We discussed them, where they originated from and 9 of the weirdest around, from Brainfuck&#8217;s smallest set of instructions to Piet&#8217;s rainbow coding. We also took the time to experiment with a couple of Hello World programs and determined which are easier for the novice programmer.<\/p>\n\n\n\n<p>You do not have to be an expert, nor will you use these languages at work. However, it is a great way to view programming in another way if you try one out. Choose an easy project such as LOLCODE, write a Hello World and experience it. You may become addicted.<\/p>\n\n\n\n<p>If you&#8217;re interested in how code and logic really works, continue to learn more about programming and computer science here on Statanalytica. As far as I&#8217;m concerned, esoteric programming languages can make coding a lot of fun, weird, and creative!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"faqs\"><\/span><strong>FAQs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1793012708610\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><span class=\"ez-toc-section\" id=\"1-what-is-the-most-difficult-esoteric-programming-language\"><\/span><strong>1. What is the most difficult esoteric programming language?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Most often, Malbolge is referred to as the hardest. It&#8217;s designed so that it&#8217;s difficult to write on, and the directions will alter as they go. The first one was a two-year process.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1793012719990\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><span class=\"ez-toc-section\" id=\"2-are-esoteric-programming-languages-turing-complete\"><\/span><strong>2. Are esoteric programming languages Turing complete?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Many of them are. Brainfuck is the well-known one. In theory, it&#8217;s possible to use it to perform anything a regular language can with only 8 commands, although it will take all day.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1793012729910\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><span class=\"ez-toc-section\" id=\"3-can-esoteric-programming-languages-be-used-for-real-projects\"><\/span><strong>3. Can esoteric programming languages be used for real projects?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Not really. They are difficult to read, difficult to debug and there are no proper tools. They&#8217;re designed for learning, puzzles and fun, not for apps or business software.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1793012738764\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><span class=\"ez-toc-section\" id=\"4-which-esoteric-programming-language-should-a-beginner-try-first\"><\/span><strong>4. Which esoteric programming language should a beginner try first?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The easiest place to start is LOLCODE. It is written in silly English, so you can follow a programme immediately. Then try out Brainfuck.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most programmers work on their code all day to make it cleaner, faster, easier to read, etc. But there are a few who do just the opposite. They create languages that are intentionally strange, funny, and sometimes almost incomprehensible. Welcome to the world of the esoteric programming languages. In this post, we will examine 9 [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":39868,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[138],"tags":[6654,6657,6653,6655,6656,6659,6658,6652,6660],"class_list":["post-39866","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","tag-best-esoteric-programming-languages","tag-esoteric-programming-languages-definition","tag-esoteric-programming-languages-examples","tag-esoteric-programming-languages-history","tag-esoteric-programming-languages-list","tag-examples-of-esoteric-programming-languages","tag-hello-world-in-esoteric-programming-languages","tag-list-of-esoteric-programming-languages","tag-number-of-esoteric-programming-languages"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/posts\/39866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/comments?post=39866"}],"version-history":[{"count":1,"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/posts\/39866\/revisions"}],"predecessor-version":[{"id":39869,"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/posts\/39866\/revisions\/39869"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/media\/39868"}],"wp:attachment":[{"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/media?parent=39866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/categories?post=39866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statanalytica.com\/blog\/wp-json\/wp\/v2\/tags?post=39866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}