Marcelio Leal

Indo num caminho que talvez não leve aonde se quer chegar…

Comparação de sintaxes básicas em PHP X Phyton X Smalltalk X Java

Posted by marcelioleal em setembro 3, 2007

Tudo começou no blog batteries not included com o post sobre Smalltalk X Java. Neste post são apresentados trechos de códigos básicos nas linguagens Java e Smalltalk, fazendo um comparativo entre as vantagens das sintaxes entre as linguagens. O resultado ficou subjetivo, mas com leve vantagem para a sintaxe do Smalltalk, embora os exemplos em Java pudessem ser melhorados, conforme foi descrito nos comentários.

Depois o negócio foi pro Fecha Tag, por sinal um belo blog. Lá o autor escreveu um post com os exemplos em Phyton.

Os exemplos comparados foram:

  • Fatorial
  • Listar números de 0 à 10
  • Imprimir Colections
  • Mostrar pares e ímpares entre 1 e 10
  • Invocar métodos via Reflection

Nas comparações feitas entre o Smalltalk(vencedor do primeiro confronto) e o Phyton, ficam as minhas seguintes conclusões:

  • As implementações são bastantes parecidas
  • A simplicidade do Phyton é um pouco superior e elegante
  • Em Smalltak Reflection é muito style

Nos comentários do fecha tag o leitor Fábio implementa os exemplos em PHP, abaixo transcrevo os códigos com uma modificação no fatorial.
FATORIAL

function factorial($n) {
if($n >0) return $n*factorial($n-1);
elseif($n ==0) return 1;
else return 0;
}

ou

function factorial($n) {
return ($n > 0)?$n*factorial($n-1):(($n==0)?1:0);
}

Listar Números
foreach(range(0, 10) as $n)
print $n;

Collections
$l = array (‘Em PHP,’,’chamamos as’,’collections’,’de “arrays”‘,);
echo implode($l, “\n”);

ODD/EVEN
foreach(range(0, 10) as $n)
echo (1 & $n) ? “$n is odd, ” : “$n is even, “;

Reflection
$o = new ReflectionClass(‘MyClass’);
$o->newInstance()->showMessage();

Um dia desses conversando com o meu amigo Antonio Fonseca sobre linguagens, mais especificamente sobre Phyton e sua simplicidade e elegância. Sem dúvida Phyton é simples e elegante, mas esses fatores não colocam essa linguagem acima do PHP ou do Ruby, pois cada linguagem tem seu principal ramo de aplicação trazendo a tona os seus principais benefícios e simplicidades.

Com estas implementações fica claro que em termos de simplicidade, Phyton e PHP se equivalem. Talvez em estilo alguns gostem mais de uma ou outra linguagem. Particularmente, existem pontos da sintaxe melhor em uma ou outra linguagem, o que, na minha opinião, as deixam num mesmo patamar.

Mas ainda vou fazer duas camisas com essas frases abaixo, só pra descrontrair:

“Toda Linguagem decente tem ;”

“Toda variável é String até que se prove o contrário”

Anúncios

4 Respostas to “Comparação de sintaxes básicas em PHP X Phyton X Smalltalk X Java”

  1. Legal o post!

    Cara, quando eu escrevi aquele post, eu jamais imaginei que daria tanta briga! 😀 Mas é que, naquela época, eu praticamente não conhecia NADA de Smalltalk, por isso os exemplos de código que coloquei lá são até meio idiotas. Mas agora – conhecendo melhor o Smalltalk – digo com tranquilidade que ela dá pau no Java em termos de flexibilidade e poder, sem sombra de dúvidas. Quanto ao estilo, bom, aí já é uma questão de gosto mesmo, como você mesmo disse.

    O Python.. bom, eu já cansei de ouvir as pessoas elogiando essa linguagem! 🙂 Então, para não ficar boiando na próxima vez que falarem dela por aí, já comprei um livro que pretendo ler assim que possível.

    E o PHP… eu já programei bastante em PHP, gosto dela. Mas, se darmos uma procurada por aí, podemos encontrar diversos problemas da linguagem, especialmente no lado ‘orientado a objetos’ dela. Mas acho que a próxima versão resolverá esses problemas.

    Bom, é isso aí!
    Abraço.

  2. marcelioleal said

    O post original no teu blog é muito bacana, dá pra avaliar de maneira interessante o algumas formações das linguagens. Esse tipo de comparação adicionam conhecimento mesmo.

    Não conhecia também o Groovy, bem interessante.

  3. JEAN said

    como se resolve esse problema ? Faça um programa que leia dez conjuntos de dois valores, o primeiro representando o
    número do aluno e o segundo representando a sua altura em centímetros. Encontre o aluno
    mais alto e o mais baixo. Mostre o número do aluno mais alto e o número do aluno mais
    baixo, junto com suas alturas.

  4. marcelioleal said

    Acho que tem várias maneiras de fazer isso, mas ai vai uma 🙂

    for($i=0;$i<10;$i++)
    $alunos[rand(0,1000)] = rand(130,200)*0.01;
    asort($alunos);
    $alunosCopy = $alunos;
    print ” Maior aluno – matricula: “.($key = array_search(array_pop($alunos),$alunosCopy)).” – altura: “.$alunosCopy[$key];
    print ” Menor aluno – matricula: “.($key = array_search(array_shift($alunos),$alunosCopy)).” – altura: “.$alunosCopy[$key];

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: