Tive a oportunidade de assistir nesse mês uma palestra do Fábio Akita sobre Rails para arquitetos .NET, onde num dado momento ele comentou sobre algumas linguagens de programação, digamos, um tanto exóticas, como o brainfuck e o whitespace.

O brainfuck possui apenas 8 comandos, sendo eles:

> < , . [] + –

É isso mesmo, esses são os únicos comandos existentes na linguagem, o código abaixo ilustra a sintaxe necessária para codificar o famoso “Hello world!”:

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

Mais legal que isso só o whitespace, onde são usados apenas tabs e espaços em branco como comandos. Acabei lembrando-me de uma aula de Teoria dos Compiladores que tive na faculdade onde o professor citava outras linguagens de programação diferentes, além do brainfuck. Fiz uma pesquisa sobre linguagens de programação pouco conhecidas e acabei encontrando uma lista com a sintaxe para codificar um simples “Hello world!” em mais de 400 linguagens diferentes. Vale a pena, pois tem muita coisa engraçada, como as linguagens Argh! ou a Intercal, por exemplo.

Atualização em (02/08/2010): Link com “Hello World” em diversas linguagens de programação.

Muitas das linguagens da lista são as denominadas Linguagens de Programação Esotéricas, na maioria dos casos uma piada nerd. O interessante é que algumas são de entendimento tão complexo que possuem poucas linhas codificadas até hoje. Segue mais alguns exemplos que encontrei:

  • Velato uses MIDI files as input, with the interval between successive notes determining each command.  
  • Shakespeare is designed to make programs look like Shakespearean plays. e.g. the following statement declares a point in the program which can be reached via a GOTO-type statement: Act I: Hamlet's insults and flattery..
  • AAAAAAAAAAAAAA!!!! consists entirely of the letter A, spaces, commas, and exclamation points.

Alguém aí programa em alguma dessas linguagens menos conhecidas?