10 bizarre and haunting Programming Languages That You May Want To Stay Away From Doing Coding
Programming languages are basically designed to make the coder’s work simpler but there are a few languages that are built to tease the programming community.
These types of languages are usually called as “Esoteric Programming Languages”. An esoteric programming language (sometimes shortened to esolang) is a computer programming language designed either as a test of the boundaries of programming language design, to experiment with weird ideas or simply as a joke, rather than for practical reasons. There is usually no intention of the language being adopted for real-world programming. Such languages are often popular among hackers and hobbyists.
For obvious reasons, they are sometimes called strange or scary programming languages as well. Take a look at these 10 programming languages below.
Taxi appears like a roadmap language that road travellers will find simple to understand but not essentially for coding. It is the official programming language of Townsville where the traditional coding language is substituted by a modern map language. In this language, variables, classes or functions are substituted by places or cities.
Programs are built by giving directions to destinations on a map which is where computation takes place. The virtual taxi the programmer controls can carry up to three data passengers at one time between destinations. The passengers pay the driver for this service and in turn the programmer must be sure to stop by a gas station from time to time or else the car will run out of fuel prematurely ending the program.
Here’s “Hello, World!” in Taxi language:
ZOMBIE is a programming language made for necromancers (magic practitioners who talk to the dead). It allows its coders to write code to animate dead bodies, control spirits and solve computable problems through them. It has a guarantee against overwriting system memory and discharging mischievous entries onto the Earth.
ZOMBIE comes in the form of entity declarations. In this language, syntax errors are very risky because demons may leak through the CPU and create mayhem in the world with improper binding commands. Its data values are free format and compatible with standard mathematics rules.
An example for printing “Hello, World!” in ZOMBIE language:
BIT is a dominant low-level programming language where the coder gets entire access to the complete data in its ASCII implementation. Compared to high-level languages using specialized functions for abstract data types, the manipulation of data is less complex. There are two data types in BIT: bit and address-of-a-bit.
Using operators and commands, the data values in BIT can be operated. This language is strongly typed (i.e. data is always declared along with its type) and even supports the controversial “GOTO” flow control command. BIT allows any amount of whitespace and line breaks between syntax elements.
An example for printing “Hello, World!” in BIT language:
Unlambda is a language mix of obscured and functional programming examples. In this language, everything is a function including the data. It takes out numerous vital features: there is no way to have variables or store data and additionally, you can create functions but cannot name or save them.
Unlambda works only with functions: each function takes precisely one another function as an argument and returns just one yet another function. It does permit functioning with data structures and the like, but you must represent them as ad-hoc functions (everything is a function, after all).
An example for printing “Hello, World!” in Unlambda language:
Java2K is a probabilistic language that works on the nature of the universe: “there is never absolute security, there is always only probability.” Each function may or may not do what the programmer intended to do; even the built-in functions work strangely. However, it does source-code level checking for security and the language uses a base-11 number system to approximate base 10.
The program always contains 2 arguments – even if you need just one. There are two types of numbers: names of the objects and integer values. There are numerous executions for every function in Java2K, and any of them is selected aimlessly at the runtime. It has many limitations on valid keywords and functions, and the language even provides a garbage collector to auto-release memory.
An example for printing “Hello, World!” in Java2K language:
Deadfish is an odd interpreted language, which was released under public domain and originally programmed in C in just few hours. However, now it has been since ported to many other programming languages. Deadfish has a way to output things but it has no way to input them.
Deadfish has just 4 commands in total: all for outputting things but none for inputting things (I did say it was odd). It is also case-sensitive, and can deal only with integer values when adding or subtracting. However, once squared this number increases greatly!
You can have several commands per line, at least in the C implementation. The shell simply adds a newline character, as errors are not acknowledged.
Anything that is not a command is not accepted by the interpreter. Since Deadfish was created in less than an hour, it can be very useful in creating highly interactive programs. Also, its name “Deadfish” was given because programming in this language feels as unpleasant as eating rotten dead fishes.
An example for printing “Hello, World!” in Deadfish language:
Emmental is defined by a meta-circular interpreter as a self-modifying programming language. With just 13 instructions, it is a stack-based language and its stack may only have ASCII characters. Conditional branching can be done in this language using the eval instruction ‘?’ though not with direct support.
In comparison with other obfuscated languages, Emmental may look unfamiliar, but its English semantics make things less bothersome than other such languages. Using Emmental language, you can do primeval arithmetic, stack and queue manipulation and much more.
An example for printing “Hello, World!” in Emmental language:
This programming language does what it wants, when it wants. According to the project description, it has “no sense of urgency. It does things whenever it feels like it, not in any sequence specified by the programmer.” Not only data structures are hyped, but also variables. Program code lines are always executed (eventually), but the order doesn’t have to bear any similarity to the order in which they are indicated. It does contain some dedicated statements to deal with the random nature of the execution environment even though it has no flow control functionality and no variables.
An example for printing “Hello, World!” in Whenever language:
The Compiler Language With No Pronounceable Acronym, abbreviated INTERCAL. Expressions that look like line noise. Control constructs that will make you gasp, make you laugh, and possibly make you hurl.
INTERCAL has many other features designed to make it even more aesthetically unpleasing to the programmer: it uses statements such as “READ OUT”, “IGNORE”, “FORGET”, and modifiers such as “PLEASE”. This last keyword provides two reasons for the program’s rejection by the compiler: if “PLEASE” does not appear often enough, the program is considered insufficiently polite, and the error message says this; if too often, the program could be rejected as excessively polite.
An example for printing “Hello, World!” in INTERCAL language:
Orthogonal is an unusual programming language in which the flow can go in any direction you want it to. It’s a proof-of-concept experiment with a working interpreter. Its environment contains two objects: the grid and the stack. The grid is similar to an array and a stack is a famous one-dimensional entity.
Unlike various computer languages, Orthogonal is a 2-dimensional language and its tutorial set falls into three categories: operators, directives and others. The language provides much more help to the coders than BIT, Deadfish and a few others. Additionally, it also supports data values and variables.
An example for printing “Hello, World!” in Orthogonal language:
Do you dare to write programs in these obfuscated programming languages? Which is your favorite bizarre language and why? Do mention the language in the comments section and we will put it up in our next bizarre language post.