If the main programming languages on the market are already difficult, imagine one specifically designed to complicate its compilation to the maximum, and that also works in two dimensions, so that its execution changes direction. In other words, a "Rube Goldberg machine" in code. Well... that language exists, it's called Befunge, and it was designed by Chris Pressey in 1993.

Befunge: The Strangest Programming Language
Logo

Each programmer has a favorite language, and to be honest, any comparison between one and another guarantees a fight these days. If we have the same discussions with wines, beers, ice creams, pizzas, cars, planes, clothes, football clubs, phones, hardware, and a long etcetera, the last thing we should expect among programming languages is an exception. However, what we can do is have fun with them, and on certain occasions, all we need is something strange. For example: Befunge. Its creation dates back to September 1993, and if this is the first time you hear about it, honestly I can't blame you. After all, it does things like this:

Befunge: The Strangest Programming Language
That's not so strange...
Befunge: The Strangest Programming Language
... but this is pure madness.

The first one is a fairly linear Hello World. The orange cursor reads the code, the symbol " starts a string (which ends when it finds another "), the commas are equivalent to Basic's Print, and the @ ends the program. And the second is the same... only much more complicated. The cursor goes up and down, goes back up, changes direction, madness. The user observes a 80 x 25 character space, but in reality it has the shape of a toroid, meaning the cursor appears on the other side when it crosses a boundary. The symbols (< > v ^) mark the direction the cursor needs to follow, and since the stack is Last In First Out, the text must be reversed.

Befunge: The Strangest Programming Language
Example of a loop
Befunge: The Strangest Programming Language
Random numbers too!

And that's not all! A question mark assigns a random direction for the code, and the letter 'p' allows its modification on the fly. The two available specifications of Befunge are Befunge-93 and Funge-98, but beyond the choice, any programmer will have their hands full with this language. An old text dedicated to Befunge suggests that it is a mixture "between Forth and Lemmings", and I think it's right.

Source:

Befunge: The Strangest Programming Language
Befunge