[Cascavel-pm] Uma comparação empírica de linguagens de programação

Nilson Santos acid06 em gmail.com
Segunda Fevereiro 28 10:09:45 PST 2005


Bom, eu sei que nem todo mundo tem tanta paciência para ler grandes estudos
como eu às vezes tenho...
Mas, ao menos uma olhada na parte dos gráficos vale a pena.

É um estudo comparativo entre diversas linguagens de programação: C, C++,
Java, Perl, Python, Tcl e Rexx.

Nele, vários aspectos são comparados como: tempo de execução total e
separado por partes (inicialização e execução, pois em linguagens como Perl
e Python, o tempo de inicialização é maior, porém, depois disso são tão
rápidas quanto C), consumo de memória, tamanho (em linhas) do código,
densidade de comentários, confiabilidade, tempo de desenvolvimento.

Inclusive tem um quadro bem interessante em que mostra a estatística feita a
partir do número de linhas por "ponto de funcionalidade". De onde se deriva
que uma linha de Perl é, aproximadamente, tão funcional quanto 4.5 linhas de
C. Ou 2.5 linhas de Java.

O estudo pode ser visto, em PDF, em:
http://page.mi.fu-berlin.de/~prechelt/Biblio/jccpprtTR.pdf

Basicamente, o estudo chega a várias conclusões interessantes e
desmistificadoras. Por ele fica claramente denotado o quão Java é
superestimado (uma vez que não se destaca em relação a nenhuma outra em
relação a nenhum quesito) e o quanto linguagens como Perl e Python são
subestimados erroneamente.

Em especial, o tempo de execução "quebrado" entre inicialização e execução é
o mais surpreendente: Perl e Python, em média, são tão rápidos quanto C e
mais rápidos que C++... Em consumo de memória, C++ fica na frente, porém,
Java ainda acena de longe...

Por fim, vou citar algumas conclusões finais do artigo, apenas para mostrar
o que um estudo científico sobre o assunto constatou, mesmo para aqueles que
não tiveram paciência para lê-lo, aproveitando, irei traduzir:

- Planejar e escrever um programa em Perl, Python, Rexx ou Tcl demora por
volta de metade do tempo que gastaria em C, C++ ou Java e o código tem por
volta da metade do tamanho.

- Nenhuma diferença na confiabilidade entre os grupos de linguagens foi
observada.

- O consumo de memória típico de um programa em Perl, Python, Rexx ou Tcl é
por volta do dobro de um programa em C ou C++. Para Java, o consumo é ainda
duas vezes maior.

- Na fase de inicialização, os programas em C e C++ são 3 a 4 vezes mais
rápidos que Java e 5 a 10 vezes que em Perl, Python, Rexx ou Tcl.

- Na fase principal de execução, em média, C ou C++ é por volta de 2 vezes
mais rápido que Java e Perl e Python tendem a ser ainda mais rápidas do que
os programas em Java.

- Dentro das linguagens de script, Python e, em particular, Perl são mais
rápidas que Rexx e Tcl.

Conclusão pessoal do autor:

- As assim chamadas "linguagens de script" Perl, Python, Rexx, and Tcl podem
ser alternativas razoáveis às "linguagens convencionais" mesmo para tarefas
em que se precisa realizar uma boa quantidade de computação.

-Nilson Santos F. Jr.


Mais detalhes sobre a lista de discussão Cascavel-pm