Sunday, February 8, 2009

Great, or Greatest Ever?

I was recently browsing old Twitter posts of some of the folks I follow, and stumbled across a gem in which Roger Chang, of Revision 3, shared the existence of a programming language I, for one, had never of. What's so special you ask?

First, the name: Brainfuck. Even though the odds of me ever mustering the energy to try it are about 1:1,243 (read further to find out why) I will never forget that the thing exists.

Second, it's tiny. According to the website compiler sizes range from 136 bytes to 240 bytes. Brainfuck has only 8 operators, and so it does not support variables. Yet it is still supposedly Turing Complete. As a consequence of it's small size, the language is extremely restrictive and difficult to use. For example,  'Hello World,' the go to introduction program, is:

++++++++[>+++++++++<-]>.
<+++++[>++++++<-]>-.
+++++++..
+++.
<++++++++[>>++++<<-]>>.
<<++++[>------<-]>.
<++++[>++++++<-]>.
+++.
------.
--------.
>+.

That's right, that series of symbols prints the phrase 'Hello World.' The results are achieved by incrementing or decrimenting an ASCII value and printing the results at the end of each line. Compare that to C++ and decide which one you'd rather look at all day:

#include
using namespace;

int main()
{
cout<<"Hello World!";
return 0;
}

My opinion: intriguing but the lack of operators makes even the most basic functions annoyingly difficult (just check out the website author's odd or even program). 

Yeah, I thought you'd agree.


"Lo! Men have become the tool of their tools." -Henry David Thoreau

No comments: