Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Malbolge Unshackled - Malbolge Unshackled is a dialect of Malbolge from 2007 by Ørjan Johansen. It attempts to remove the arbitrary memory limits of Malbolge in order to create a language that is hopefully Turing complete, while keeping closely to the spirit of Malbolge in most ways.

> Malbolge - Malbolge, invented by Ben Olmstead in 1998, is an esoteric programming language designed to be as difficult to program in as possible. The first "Hello, world!" program written in it was produced by a Lisp program using a local beam search of the space of all possible programs. More practical programming methods have been found later. It is modelled as a virtual machine based on ternary digits.

Seems like a lot of fun to try to program a lisp in these languages, although I'm nowhere near as crazy as the author to actually sit down and do it. Kudos author!



"an esoteric programming language designed to be as difficult to program in as possible"

As difficult to program in as possible?

It seems like it would be easy to make a language that is even more difficult to program in.

For example, instead of storing only ternary numbers in memory, each subsequent memory address could store a number in a different base.

Also, instead of having a static lookup table for the encryption, it could create a table based on its own program representation instead, resulting in a different lookup table for every program (while remaining deterministic).

Speaking of determinism, all sorts of non-determinism could of course be easily added to the language, making it even harder to program.

Naturally, all sorts of complex mathematical operations could be used instead of simple arithmetic operations as well... etc..

I'm sure it wouldn't be difficult for any creative programmer to tweak this language in many other ways to make it harder to program.

In fact, after a certain language complexity is reached, I'm not sure how one would judge that one "extremely difficult" language is actually harder to program in than another, making the claim that a given language is "as difficult to program as possible" hard to prove.


It's no trick to make something so hard that it's impossible. It's riding the line that is interesting.

Clearly, in the direction that Malbolge is hard, it is very nearly maximally hard. A LISP interpreter of this kind is, in general, not that hard. There are some conceptual challenges to implementation, but once your brain has absorbed those, it's not hard to implement. It's generally considered to be a good student project. Many people use it as a "hello world" program when learning a new language. Yet it took a decade+ to pop up. Much harder and you're not going to get anything, ever.

Presumably, there are other directions that you could make programming hard in.


"Many people use it as a "hello world" program when learning a new language. Yet it took a decade+ to pop up."

I'm sure this was largely due to not many people even bothering to try to write such a program.

If Malbolge had as many users as, say, Java, I'm sure a hello world would have been written pretty quickly -- especially if these users were as motivated to write Malbolge programs as they are to write Java programs now.

Not to say that programming in Malbolge is not insanely hard, but I'm not convinced that a more difficult language would be impossible to program in.

Have any legendary programmers like John Carmack, Fabrice Bellard, Ken Thompson, Peter Norvig, Xavier Leroy, or Simon Peyton Jones spent much time trying to come up with Malbolge programs? I doubt it. If they did, would we have had a Malbolge hello world a lot sooner? Almost certainly.

One of the main difficulties of esoteric programming languages is getting people to actually spend any significant amount of time trying to program in them. Most people just don't care. Get them to care and there'll be a lot more programs written in them.


Esoteric programming languages are usually created to bend the boundaries of programming language design or prove something, not to be actually used to write software. It is hacker culture.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: