sábado, 10 de maio de 2008

"Hello World", programas .... e classes de problemas!

.
Todo programador conhece o programa do tipo "hello world!". É um tipo de programa que ilustra a forma mais simples, numa linguagem de programação específica, de mostrar na tela a frase "Hello World!". Por exemplo, em C:

int main(void)
{
printf("Hello, World!\n");
}

Qual a utilidade de um programa tão xexelento? Simples, sua execução correta prova que o programador (geralmente aprendiz) consegue realizar os passos mínimos necessários para desenvolver qualquer programa, numa linguagem de programação específica: editar um arquivo texto com o código-fonte do programa, compilar este arquivo, linkeditar as bibliotecas e finalmente executar o programa.

Isso serve pra qualquer linguagem: Java, C++, Pascal, Fortran, Cobol, Basic, PL/1, PHP, Python... até Assembler! (clique aqui para uma coleção completa)

Mas não é só relativamente a linguagens de programação que encontramos programas "hello world"... Tenho encontrado na Internet uma referência a programas desse tipo relativos a uma classe de problemas específicos! A analogia seria "o programa mais básico, que resolve a forma mais básica do problema em questão".

Dois exemplos que encontrei:

- "hello world" para redes neurais: treinar uma rede para aprender a porta lógica XOR;

- "hello world" para redes neurais auto-organizáveis (Kohonen): agrupar por similaridade um conjunto de cores aleatórias.

Você conhece outros "hello world" aplicados a problemas específicos? Se sim, deixe seu comentário, e vamos atualizar esta lista!

Abraços a todas e a todos!
Carlão

PS: essa história toda de "hello world" me lembrou de uma piadinha.... :-)

Como os programadores matam um dragão?

Java:Chega, encontra o dragao. Desenvolve um framework para aniquilamento de dragoes em multiplas camadas. Escreve varios artigos sobre o framework mas nao mata o dragao.

.Net:Chega, olha a ideia do Javanes e a copia, tenta matar o dragao, mas e comido pelo reptil.

C:Chega, olha para o dragao com olhar de desprezo, puxa seu canivete, degola o dragao. Encontra a princesa, mas a ignora para ver os ultimos checkins no cvs do kernel do linux

C++:Cria um canivete basico e vai juntando funcionalidades ate ter uma espada complexa que apenas ele consegue entender ... Mata o dragao mas trava no meio da ponte por causa dos memory leaks

COBOL:Chega, olha o dragao, pensa que ta velho demais para conseguir matar um bicho daquele tamanho e pegar a princesa e, entao, vai embora.

Pascal:Se prepara durante 10 anos para criar um sistema de aniquilamento de dragao...Chegando la descobre que o programa so' aceita lagartixas como entrada.

VB:Monta uma arma de destruicao de dragoes a partir de varios componentes, parte pro pau, pra cima do dragao e, na hora H, descobre que a espada so funciona durante noites chuvosas...

PL/SQL:Coleta dados de outros matadores de dragao, cria tabelas com N relacionamentos complexidade ternaria, dados em 3 dimensoes, OLAP, demora 15 anos para processar a informacao. Enquanto isso a princesa virou lesbica.

Ruby:Chega com uma p*t* fama, falando que e o melhor faz tudo, quando vai enfrentar o dragao mostra um videozinho dele matando um dragao ... O dragao come ele de tedio.

Smalltalk:Chega, analisa o dragao e a princesa, vira as costas e vai embora, pois eles sao muito inferiores.

Shell:Cria uma arma poderosa para matar os dragoes, mas, na hora H, nao se lembra como usa-la.

Shell(2):O cara chega no dragao com um script de 2 linhas que mata, corta, stripa, empala, pica em pedacinhos e empalha o bicho, mas na hora q ele roda o script aumenta, engorda, enfurece, e coloca alcool no fogo do dragao.

ASSEMBLY:Acha que ta fazendo o mais certo e enxuto, porem troca um A por D, mata a princesa e transa com o dragao

Fortran:Chega desenvolve uma solucao com 45000 linhas de codigo, mata o dragao vai ao encontro da princesa ... mas esta o chama de tiozinho e sai correndo atras do programador java que era elegante e ficou rico.

FOX PRO:Desenvolve um sistema para matar o dragao, por fora e bonitinho e funciona, mas por dentro esta tudo remendado, quando ele vai executar o aniquilador de dragoes lembra que esqueceu de indexar os DBF.

ANALISTA DE PROCESSOS:Chega ao dragao com duas toneladas de documentacao desenvolvida sobre o processo de se matar um dragao generico, desenvolve um fluxograma super complexo para libertar a princesa e se casar com ela, convence o dragao que aquilo vai ser bom pra ele, e que nao sera doloroso. Ao executar o processo ele estima o esforco e o tamanho do estrago que isso vai causar, a assinatura do papa, do buda e do Raul Seixas para o plano, e entao compra 2 bombas nucleares, 45 canhoes, 1 porta avioes, contrata 300 homens armados ate os dentes, quando na verdade necessitaria apenas da espada que estava na sua mao o tempo todo.

CLIPPER:Monta uma rotina que carrega um array de codeblocks para insultar o dragao, cantar a princesa, carregar a espada para memoria, moer o dragao, limpar a sujeira, lascar leite condensado com morangos na princesa gostosa, transar com aprincesa, tomar banho, ligar o carro, colocar gasolina e voltar para casa. Na hora de rodar recebe um "Bound Error: Array Access" e o dragao come ele com farinha.

2 comentários:

Marcelo Sena disse...

Fale a verdade carlão, vc inventou essa piada não é?
xD

Carlos José disse...

Não... :-)
Procura no google
dragao java
tá rolando por aí.... :-))
Abraços!
carlão