Get $500+ of the best After Effects files, video templates and music for only $20!

    10 Most Bizarre Programming Languages Ever Created

    There is nothing more frustrating for a web developer than spending hours at a time fixing a bug that should just work. Often I’ll get stuck in a programming state that feels like I have absolutely no idea what I’m doing, as if the language I’m using (CSS, PHP, whatever), is actually a foreign language.

    If what I’ve described sounds familiar to your, then this article will provide comfort and humor.

    Esoteric programming languages don’t really serve any purpose other than providing a bit of fun or proving a proof of concept. But boy, do they provide a chuckle for the rest of us!

    1. Ook!

    If you’ve ever felt like a monkey just banging away at a keyboard, then Ook! will make you feel right at home. It’s a language designed primarily for primates, specifically the orangutan. With Ook! you only use three syntax elements:

    • Ook.
    • Ook?
    • Ook!

    Here are a few examples of Ook! in action:

    Ook. Ook?
    Move the Memory Pointer to the next array cell.
    Ook? Ook.
    Move the Memory Pointer to the previous array cell.
    Ook. Ook.
    Increment the array cell pointed at by the Memory Pointer.
    Ook! Ook!
    Decrement the array cell pointed at by the Memory Pointer.
    Ook. Ook!
    Read a character from STDIN and put its ASCII value into the cell pointed at by the Memory Pointer.

    Getting the idea? Yeah, me neither…


    Photo by Suneko.

    2. Piet

    For those appreciative of fine art, Piet is a language that you’ll surely enjoy. Inspired by the abstract artist Piet Mondrian, Piet is a programming language that converts programs into abstract geometric paintings. Programs are made up of 20 different colors, and then read by the compiler based on hex values to run a program.

    Check out some of the crazy examples that Piet programmers have come up with.

    3. Whitespace

    Unfortunately, the name for this programming language is exactly what it does: Whitespace creates programs based off of… whitespace. The Whitespace website has a great description of how the language works.

    Most modern programming languages do not consider white space characters (spaces, tabs and newlines) syntax, ignoring them, as if they weren’t there. We consider this to be a gross injustice to these perfectly friendly members of the character set. Should they be ignored, just because they are invisible? Whitespace is a language that seeks to redress the balance. Any non whitespace characters are ignored; only spaces, tabs and newlines are considered syntax.

    4. LOLCODE

    LOLCODE is my personal favorite among esoteric languages. The language is based off of the LOLCats phenomenon, and uses LOLCats syntax to make programs run. Or something like that.

    Just looking at a sample bit of an LOLCODE program will explain why it’s a fan favorite.

    HAI
    CAN HAS STDIO?
    PLZ OPEN FILE "LOLCATS.TXT"?
    AWSUM THX
    VISIBLE FILE
    O NOES
    INVISIBLE "ERROR!"
    KTHXBYE

    Surprisingly, LOLCODE has captured interest in parts of the programming community. The official site lists many different implementations in languages like PHP, Python, Perl, .NET and Java. Who knows, maybe someday we’ll see LOL programming courses taught in schools…

    5. Shakespeare

    Shakespeare is not as simple as LOLCODE to wrap your head around. In case you haven’t figured it out yet, Shakespeare is a programming language based on the writings of the great playwright. Each program contains a title, acts, scenes and characters to make brilliant source code that’s actually fun to read.

    Here’s Act I, Scene I of “Hello World”:

    The Infamous Hello World Program.
    
    Romeo, a young man with a remarkable patience.
    Juliet, a likewise young woman of remarkable grace.
    Ophelia, a remarkable woman much in dispute with Hamlet.
    Hamlet, the flatterer of Andersen Insulting A/S.
    
    Act I: Hamlet's insults and flattery.
    
    Scene I: The insulting of Romeo.
    
    [Enter Hamlet and Romeo]
    
    Hamlet:
    You lying stupid fatherless big smelly half-witted coward!
    You are as stupid as the difference between a handsome rich brave
    hero and thyself! Speak your mind!
    
    You are as brave as the sum of your fat little stuffed misused dusty
    old rotten codpiece and a beautiful fair warm peaceful sunny summer's
    day. You are as healthy as the difference between the sum of the
    sweetest reddest rose and my father and yourself! Speak your mind!
    
    You are as cowardly as the sum of yourself and the difference
    between a big mighty proud kingdom and a horse. Speak your mind.
    
    Speak your mind!
    
    [Exit Romeo]

    6. Befunge

    The goal for Chris Pressey, creator of the Befunge programming language, was simple: Create a language that was as difficult to compile as possible. Befunge accomplishes this by the two main features of the daunting language:

    1. Self modifying – the p instruction can write new instructions into the playfield; and
    2. Multi-dimensional – the same instruction can be executed in four different contexts (in a left-to-right series of instructions, or right-to-left, or upward or downward.)

    Regardless, there are very smart people, (with way too much free time), who have created compilers for Befunge.

    \

    7. reMorse

    reMorse is a language intended to look like morse code. Visions of submarines and telegrams come to mind with this simple yet incredibly challenging language. Here’s the reMorse version of “Hello World”:

    - - - ..- ...-.---.;newline
    - - - .-. - ..-.- ...-. ---.;!
    - - - ...- . . -.---.;d
    ----. . . -.---.;l
    ----. . -...---.;r
    ----. -...---.;o
    ----...-.- ..-. ---.;W
    //author didn't feel like doing this part
    -..............;output all characters

    This language might be a tad on the difficult side for the rest of us (with the exception of amateur radio specialists). You know it’s a bear to program when the author of the language won’t finish all of the basic example, due to complexity.

    8. FALSE

    With an appropriate negative connotation, FALSE is a language meant to discourage even the cleverest programmers. Based on the Forth language, FALSE uses a punctuation based syntax (gross!) to help sour the programming experience.

    From the FALSE creator himself:

    I designed this language with two particular objectives: confusing everyone with an obfuscated syntax, and designing as powerful a language as possible with a tiny implementation: in this case a compiler executable of just 1024 bytes (!), written in pure 68000 assembler.

    Yet FALSE isn’t the most ridiculous of the esoteric languages, and could actually serve real world purposes, as the operations are reasonably sensible and the language isn’t extremely complex. Maybe somebody, someday, will make a useful real-world application out of the language…

    False.

    9. Whenever

    Imagine a surly teenager as a programming language, and you’ve got yourself Whenever. Whenever is a simple language that does what it wants, when it wants.

    It takes the program code and treats each line as an item in a to-do list. The interpreter chooses an item from the list at random to execute, and executes the statement. In some cases, the statement will contain a clause that specifies that it cannot be executed until certain conditions apply. This results in the statement being deferred and placed back on the to-do list.

    Don’t think for a minute you can actually control a Whenever program. Imagine how hard this makes programming something like “99 Bottles of Beer”! The program would return something that read like it had already consumed all 99.

    defer (4 || N(1)
    defer (4 || N(1)==N(2)) print("Take one down and pass it around,");
    defer (4 || N(2)==N(3)) print(N(1)+" bottles of beer on the wall.");
    1#98,2#98,3#98;

    Photo by foundphotoslj.

    10. l33t

    Ever wanted to speak like a “l33t H4xX0r5″? Now you can by learning the l33t programming language. Check out the l33t “Hello World” application:

    // Note that the views expressed in this source code do not necessarily coincide with those of the author :o)
    
    Gr34t l33tN3$$?
    M3h...
    iT 41n't s0 7rIckY.
    
    l33t sP33k is U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh.
    1f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE!!! ;p
    w4r3Z c0ll3cT10n2 r 7eh l3Et3r!
    
    Qu4k3 cL4nS r 7eh bE5t tH1ng 1n teh 3nTIr3 w0rlD!!!
    g4m3s wh3r3 u g3t to 5h00t ppl r 70tAl1_y w1cK1d!!
    I'M teh fr4GM4stEr aN I'lL t0t41_1Ly wIpE teh phr34k1ng fL00r ***j3d1 5tYlE*** wItH y0uR h1dE!!!! L0L0L0L!
    t3lEphR4gG1nG l4m3rs wit mY m8tes r34lLy k1kK$ A$$
    
    l33t hAxX0r$ CrE4t3 u8er- k3wL 5tUff lIkE n34t pR0gR4mm1nG lAnguidGe$...
    s0m3tIm3$ teh l4nGu4gES l00k jUst l1k3 rE41_ 0neS 7o mAkE ppl Th1nk th3y'r3 ju$t n0rMal lEE7 5pEEk but th3y're 5ecRetLy c0dE!!!!
    n080DY unDer5tAnD$ l33t SpEaK 4p4rT fr0m j3d1!!!!!
    50mE kId 0n A me$$4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 0r mAyb3 ju5t sh0w 7eh wAy5 l33t ppl cAn 8E m0re lIkE y0d4!!! hE i5 teh u8ER!!!!
    1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
    1t 3v3n MiTe jUs7 s4y "H3LL0 W0RLD!!!" u ju5t cAn'T gu3s5.
    tH3r3's n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt th1s 1s!!!!!
    
    5uxX0r5!!!L0L0L0L0L!!!!!!!

    In real life, l33t is “teh sUxX0r” due to the fact that you can’t use it for anything useful. Ah well, back to hacking with all the other script kiddies and trolls!


    Photo by Yoz.


    Add Comment

    Discussion 68 Comments

    Comment Page 1 of 21 2
    1. pixelsoul says:

      LOLCODE made me LOL

    2. I noticed a syntax error in your LOLCODE example. :)

      According the the LOLCODE 1.2 specifications, a program has to begin with HAI followed by the version of LOLCODE they are using, such as this.

      HAI 1.2

      Ok, so I was just being picky and silly all at the same time then, but I did get bored one weekend and created a LOLCODE library for the Codeigniter library, it’ll be on the CI forums. :P

    3. Disappointed says:

      This site is becoming less and less about good quality development tutorials and articles and more about rubish like this.

      Exactly the same as what happened to Digg a while ago.

      • Tarek says:

        Ah well…lucky for you the internet is huge.
        I enjoyed this! Had a much needed laugh reading this. thanks.

    4. karl says:

      Oh Noes! How could you leave out the *original* brainf*ck of a language: INTERCAL.

      http://en.wikipedia.org/wiki/INTERCAL

    5. JeremyOLED says:

      The first time I saw Befunge my head exploded. I had enough trouble conquering Java the first time.

      Chef is pretty awesome too

      http://www.dangermouse.net/esoteric/chef.html

    6. James says:

      LOLCODE is awesome!

      Check this out:

      IM IN YR LOOP
      UP VAR!!1
      VISIBLE VAR
      IZ VAR BIGGER THAN 10? KTHXBYE
      IM OUTTA YR LOOP

      http://lolcode.com/examples/count-1

    7. Yoz says:

      A fabulous post, though two important points:

      1: That photo at the very end isn’t by luchoedu, it’s by/of me: http://flickr.com/photos/yoz/172282431/

      2: You’ve missed the oldest joke-but-actually-works programming language of them all, INTERCAL: http://www.catb.org/~esr/intercal/

    8. eli says:

      Also throw in Varaq, the Klingon warrior’s programming language.
      http://www.geocities.com/connorbd/varaq/

    9. antpaw says:

      oh no you forgot brainfuck

      http://en.wikipedia.org/wiki/Brainfuck

      its nice too :D

    10. Lamin says:

      WEW.. great post. Thnx

    11. horrible article…What about malborge and brainfuck?
      these are jokes

      looks like someone didnt do their research…

    12. Alex says:

      You missed out Brainfuck, which may be the weirdest of them all:

      http://en.wikipedia.org/wiki/Brainfuck

    13. crysfel says:

      hahahahahaha……. the last picture it is so funny

    14. agaelebe says:

      Not al of these are Turing Complete…

    15. Agreed that there seems to be a lot more Top 10′s lately rather than tutorials

    16. Skellie says:
      Staff

      @ Yoz: Thanks for the heads up, I’m changing the credit now. Great photo! :)

    17. insic says:

      Holy Smoke! You guys are awesome.

    18. John Hawklyn says:

      In the pantheon of 10 Bizarre Programming Languages Ever Created, how about including a language that has been taken seriously, and shouldn’t have been: C++

      Reference: http://artlung.com/smorgasborg/Invention_of_Cplusplus.shtml

    19. Rafyta says:

      You had me at LOLCODE

      I CAN HAS INTAH TUBES?

      PLZKTHXBYE

    20. Aljaz Vidmar says:

      I wonder if there is any source editor with syntax highlighting for Whitespace :D

    21. Shane says:

      @John – I find that transcript difficult to believe, but interesting nonetheless.

      I think this post should end up in the ’10 Most Bizarre NETTUTS Posts Ever Posted’.

    22. cookie says:

      Why was a post like this even approved???
      Are you kidding me??

    23. Wayne says:

      zzzz….

    24. Pok3 says:

      LOLCODE is the best:
      if = OHRLY?
      true = YARLY!
      false = OHNOES!

    25. devlim.com says:

      never heard this 10 programming language, and 7. reMorse is so special

    26. abdusfauzi says:

      Love #10. Hahaha. Eye + brain challenging.

    27. hah says:

      this is great especially the lolcode. but i gotta say, i also find it humorous that some people here actually are mad about the fact that you made a list of weird languages. OH NO!! YOUR TAKING UP THE PRECIOUS SPACE ON OUR INTERNET!!! WERE GONNA END UP RUNNING OUT!!!

    28. Simon Shine says:

      Brainfuck was not forgotten, since Ook! is exactly the same as Brainfuck with different names for the same instructions. I.e., the three operations Ook?, Ook! and Ook. are combined in sets of two giving 2^3 = 8 operations that are the same as Brainfuck’s +-,.[].

    29. Matías says:

      hahaha
      Cool list!

    30. Vassil Dichev says:

      There’s one so esoteric that you can only find it if you turn back time: FeckFeck. Warning: foul language!
      http://web.archive.org/web/20050318095341/http%3A//www.chilliwilli.co.uk/ff/

    31. Ahmad Alfy says:

      L33t and LOLCODE made me laugh :D

    32. RaSh says:

      Oh my god! That’s one list of weird languages (I guess you didn’t have space for Branf*ck & Intercal..)

      Anyway I recently compiled a list of 20 Blogs you can’t live without and mentioned this post (and a few others) among my favorite ones on this Blog.

      Do drop by and let me know if there’s some other post/Blog that you feel I should’ve mentioned!

      Thanks!

    33. Wassim says:

      @ Rui Silva

      Haskell isn’t so strange, but if you think so try some Lisp and give me your feedback ;-)

      Thanks Glen, I’ll consider this post as a BREAK.. Ooof! quite relaxing lol

    34. Anonymous says:

      You forgot the language “Brainfuck” o.o

    35. web sitesi says:

      me fav. is PIET

      lol

    36. ketjuni2 says:

      heheheeee ! ! ! ! :-) very interesting list, especially LOLCODE and l33t

    37. Jose Johnson says:

      Programming “humor”. How…hmmm.

    38. RPG II is a real programming language that sucks even worse than the joke languages:

      01020FRECDSIN IP F 80 DISK

    39. @Disappointed i kinda agree. but… i really wanna learn LOL

    40. Hubba Bubba says:

      How about just taking a look at http://99-bottles-of-beer.net/? All the above, except reMorse, is included, and after a little browsing you’ll learn that few of these quallify for a top 10 list.

      A long list of esoteric programming languages, with lots of info, can be found at http://esolangs.org/wiki/Main_Page.

    41. George says:

      Perhaps a little blue, but one which no-one seems to have mentioned, is Aggressive C Sharp?

      http://aggressivecsharp.com/

    42. adrian says:

      how about freakin’ demandware?

    Comment Page 1 of 21 2

    Add a Comment

    To add a code snippet to your comment, please wrap your code like so: <pre name="code" class="html">YOUR CODE</pre>. You can replace the class name with "js," "css," "sql," or "php." If there are any "<" or ">" within your code, please search and replace them with: &lt; and &gt; respectively.