The Weirdest Programming Languages

There are hundreds of programming languages that exist today, but only select languages are used professionally.

The majority of the remaining languages are esoteric languages, sometimes called ‘esolangs.’ Unlike practical programming languages, esolangs are not focused on building an easier or more efficient coding structure. Instead, many esolangs are created as practical jokes or ways to challenge the programmers who use them.

#1: LOLCODE

With LOLCODE, the language syntax mirrors that of “lolspeak,” with silly text abbreviations and grammatical errors. For instance, to declare and assign a value to a variable, the keyword is “I HAS A” followed by the variable name, followed by “ITZ” and its value (ex: I HAS A VAR ITZ 15).

Beyond LOLCODE’s syntax, another notable characteristic is LOLCODE’s representation of different variable types. A string is called a “YARN”, an integer is a “NUMBR”, a float is a “NUMBAR”, and a boolean is a “TROOF.”

When using a string, or rather a YARN, LOLCODE uses text based emoticons by using the colon (:) as the escape character. Specifically, “:)” can be used to create a newline, “:>” represents a tab, etc.

These are just a few of the eccentric traits of LOLCODE that make it the fun language esolang enthusiasts have come to appreciate.

#2: Omgrofl

For example, to create variables with Omgrofl, the variable must be written in a variation of “lol” (a common abbreviation for “laughing out loud”) such as lol, lool, loool, etc. To assign a value to a variable, follow your lol variable name with “iz’ and the variable’s value (ex: lol iz 15).

Conditionals use “wtf” (abbreviation for “what the flip”) as the conditional if-statement. When comparing expressions in a conditional, using “iz uber” checks for less than or greater than expressions, “iz liek” checks for equal expressions, and “nope” can be used to nullify a condition.

In the context of loops, Omgrofl uses the command “rtfm” (abbreviation for “read the flipping manual”) to begin a loop and “brb” (abbreviation for “be right back”) to close the loop.

Other Omgrofl commands follow the same pattern, using various slang words to communicate different instructions.

#3: Velato

Sample of “Hello World” program using Velato

Within the music, commands are interpreted based off of the intervals between the notes in the piece. For example, an if-statement is denoted by a perfect 5th interval, an else statement is denoted by a major 6th, etc.

Velato also introduces the idea of a “command root note.” However, the command root note does not refer to the root of a chord or a particular key as a musician might expect. Instead, the command root note is defined by the first note of the song. When the note is played twice, the command root note can be changed to a new note.

Command root notes are especially important when working with variables. Velato allows any note to be a variable, but they can only be called by commands that do not have a command root note that is the same as the variable note.

Although Velato isn’t capable of creating functions and can be initially confusing to newcomers, Velato offers a challenge to musically inclined programmers to not only compose their own music, but create a coded program inside of it.

#4: Whitespace

Whitespace uses binary code to represent data with spaces as zeroes and tabs as ones. So, a sequence of tab-tab-space-space would translate to 1100 in binary or “12” in base-10.

On its own, Whitespace is limited in what types of programs that it can truly create. To make the classic “hello world” print project, you would need to use almost 1000 individual whitespace characters.

In short, the scope of programming languages isn’t just limited to building languages for practical purposes. Esolangs have become an exciting new way for programmers to explore and push the boundaries of programming language design.

Chan, Clarence. “Omgrofl Documentation.” Clarencecodes, GitHub, 2018, clarencecodes.github.io/omgrofl-technical-documentation/index.html.

Hajdarbegovic, Nermin. “Meet Whitespace: The World’s Most Impractical Programming Language?” WhoIsHostingThis, 13 Feb. 2018, www.whoishostingthis.com/resources/whitespace-programming/.

Meza, Justin. 2014. LOLCODE 1.2. [Source code]. https://github.com/justinmeza/lolcode-spec/blob/master/v1.2/lolcode-spec-v1.2.md.

Velato, velato.net.

Hey there!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store