Geek/Nerd

Desafio das Linguagens – Que horas são?

Sempre que eu aprendo alguma nova linguagem de programação eu executo testes de funções básicas que você realmente precisa saber no dia à dia para executar algumas tarefas, e avalio se a linguagem é de fácil assimilação de acordo com a complexidade dessa linguagem em resolver estas tarefas.

Um dos testes que eu faço é de manipulação de datas, se uma linguagem não manipula facilmente datas, imagina o resto. Vejamos como se saem as linguagens Perl, PHP, Python (este vou adicionar pela polularidade, pois não conheço nada), Ruby e Shell-Script em um teste para exibir somente as horas do sistema.
Condições da Disputa: Sistema Operacional Linux Ubuntu, kernel 2.6.17-11-386, 512 MB de memória e processador Intel(R) Celeron(R) 1.80GHz.
Regras: Cada linguagem tem que fazer isto por suas próprias capacidades, não usando nenhum artificio como por exemplo a função “system” existente no Perl e no PHP.
Quesitos de avaliação: complexidade (de 1 à 5), quantidade de linhas usadas, tempo de execução.
Contagem de pontos: todas a linguagens começam com 10 pontos e vão perdendo pontos de acordo com a desvantagem de cada linguagem em relação as outras.

“É uma rinha???”

Sim, tiozões botequeiros gostam de fazer rinha com Galos, Marombados fazem rinha com pit bulls, e Nerd da engenharia fazem rinha com robôs.

Esta é uma nova modalidade para os Nerds…a rinha de linguagens.

Que comece o Desafio!

Perl

Script:


#!/usr/bin/perl
$agora = time();
$hora = localtime($agora);
$hora =~ s/.*\s([0-9]{2}:[0-9]{2}):[0-9]{2}\s.*/\1/;
print “$hora\n”;

Execuntando:
:~ time ./relogio.pl
15:22

real 0m0.027s

PHP

Script:

<?
$hora = date(“H:i”);
echo “$hora\n”;
?>

Executando:
:~ time php relogio.php
15:26

real 0m0.173s

Python

Script:


#!/usr/bin/python
from time import strftime
data = strftime(“%H:%M”)
print data

Executando:
:~time ./relogio.py
15:30

real 0m0.146s

Ruby

Script:

#!/usr/bin/ruby -w
data = Time.now
puts data.hour.to_s << “:” << data.min.to_s

Executando:
:~ time ./relogio.rb
15:30

real 0m0.056s

Shell-Script


#!/bin/bash
date +%H:%M

Executando:
:~ time ./relogio.sh
15:35

real 0m0.047s

Resultados

Perl: complexidade (nivel 3), quantidade de linhas (5), tempo de execução (0.027 segundos)
PHP: complexidade (nivel 2), quantidade de linhas (4), tempo de execução (0.173 segundos)
Python: complexidade (nivel 3), quantidade de linhas (4), tempo de execução (0.146 segundos)
Ruby: complexidade (nivel 3), quantidade de linhas (3), tempo de execução (0.056 segundos)
Shell-Script: complexidade (nivel 1), quantidade de linhas (2), tempo de execução (0.047 segundos)

Ranking:

1. Shell-Script;
2. Ruby;
3. Perl;
4. PHP;
5. Python;

Considerações Finais: A vitória do Shell-Script se dá ao fato de ser a “linguagem” nativa do Linux fazendo disto uma vantagem sobre as concorrentes, a linguagem Perl só perdeu para o Ruby pela quantidade de linhas, considerando que esta foi a única forma que eu encontrei de exibir somente a hora do sistema, já PHP coitada, realmente não era a praia dela, agora o que me surpreendeu foi o Python.

Se algum defensor do Perl e do Python tiver uma forma melhor de exibir as horas do sistema poste aqui a sua solução.
Se você conhece outra linguagem que não foi citada aqui e quer inclui-la na “Rinha” deixe o comentário com o codigo que eu executo e atualizo o Ranking.


Digg!
Adicionar artigo ao Eu Curti

Related Posts Plugin for WordPress, Blogger...