quinta-feira, 5 de março de 2009

Привет мир - Hello World em todas as linguagens

Aquele programador que nunca escreveu alguma vez um Hello World em qualquer linguagem de programação, que levante a mão agora para que eu as corte fora !!

Praticamente todo desenvolvedor, pelo menos uma vez na vida, cria um Hello World, um código simplésimo, que a Desciclopédia define com uma precisão incrível:

Hello World é a frase mais usada por aprendizes de nerd programador. Acredita-se que foi criado por Bill Gates no ano de 1900 e guaraná com rolha e, devido à sua influência entre os nerds, logo se espalhou como uma praga. A linguagem C++ foi criada exclusivamente para a sintaxe dessa frase, mas mesmo assim esta continua complicada até hoje.

É padrão ANSI e IEEE que todos os livros de programação tenham um capítulo simples de 200 páginas sobre como fazer seu programa "hello world". Existem outras versões, como a "Olá mundo" de livros traduzidos para o português de Portugal falado por portuguêses e atores de novela da Globo e a versão "JESUS", usado por programadores crentes que precisam mostrar pro pa$tor que computador não é coisa do capeta. Acredita-se que é a única coisa que Bill Gates de fato saiba programar, e olha que ele estudou em Havard.



Em PHP:

= $lI ; $ll++&&$lI++){//II+*
_($l1[ $ll %= 4 ]);/*$II+=$lI*///II++
if($lI != ($ll % true) + 2);// não mecha!!!
else break;
}_('!');_(); // o que é isso ???
// function exit(); //
function _($l1 = "
\n"){printf("%s",$l1);}; // aqui a casa cai
?>

A página Hello World Collection tem uma compilação de 421 programas Hello World em várias linguagens diferentes, desde linguagens comuns como BASIC ou C++, até linguagens obscuras como Unlambda , Simple ou Ook.

A lista inclui algumas opções interessantes:

  • Assembly - diversas versões de assembly;
  • Befunge - uma linguagem baseada em pilha (FILO);
  • Byte Size - se vcs reclamam de Assembly, é pq não viram essa "linguagem";
  • Axel - Uma linguagem onde o próprio Hello World para ela é exageradamente grande, imaginem um programa desenvolvido nela!
  • Bit - Lembra Byte Size, mas usa palavras "zero" "one", "print" e "line" (ouch!);
  • BrainFuck - linguagem planejada para gerar o menor compilador possível;
  • G-Code - linguagem para programação de CNC;
  • Lisp - uma das mais conhecidas linguagens funcionais;
  • Ook - uma linguagem muito parecida com BrainFuck, porém montada de forma a imitar os ruidos de um orangotango;
  • OZ - uma linguagem orientada a concorrência (v. mais);
  • Shakespeare - uma linguagem que ainda não entendi pra que serve;
  • LaTeX - linguagem para editoração avançada de documentos;
  • PDF - linguagem de exibição de documento da Adobe amplamente divulgada em formato compilado de documentos;
  • HP-48 - Pra quem conhece a calculadora;
  • Piet - uma linguagem cujos códigos aparecem bitmaps de arte abstrata;
  • Calculadora de Bolso - digite e vire de ponta-cabeça;
  • Spiral - uma linguagem estranha que parece ASCII-Art e que não tem na Wikipedia;
  • SVG - linguagem para definição de imagens vetoriais;
  • Máquina de Turing - conceito abstrato teórico, concebido muitos anos da concepção do computador;
  • Whitespace - uma linguagem que utiliza somente espaço, tab e enter, os caracteres visíveis são ignorados

Além de muitas outras menos curiosas.

P.S.: Pesquisando sobre Hello World encontrei também algumas outras curiosidades, como Hello World Poliglota:

Agora, falando sério, dá uma olhada no Hello World do Cobol. E o povo de antigamente dizia que a linguagem era a melhor que existia.
*****************************
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
MAIN SECTION.
DISPLAY "Hello World!"
STOP RUN.
****************************
Depois eu quem sou louco de programar em Delphi ou Python.

Fonte:
- Desciclopédia - http://desciclo.pedia.ws/wiki/Hello_World
- The Hello World Collection - http://www.roesler-ac.de/wolfram/hello.htm

Pra quem ficou curioso pra saber o que significa o título, dá uma olhada no site, na parte de linguagens humanas. Já aviso que eu escrevi de forma diferente do que se encontra no site hehehehe