Itens compartilhados de Juliano

domingo, 13 de setembro de 2009

Python × Ruby

Esses dias eu não tenho escrito por causa dos estudos. (Novidade!!!) :) Um novo semestre se iniciou, novas pessoas chegaram, novas responsabilidades apareceram, e até uma nova sala a gente ganhou.

Durante todo o mês passado, o nosso prédio passou por uma reforma na qual só não quebraram as paredes. O resto todo foi posto abaixo e feito de novo. Incluindo todas as janelas. Agora, no prédio novo, resolveram reformar também o lay-out das salas de estudo da pós e, nós, que tínhamos nosso laboratório de linguística computacional exclusivo, perdemo-lo para dar espaço aos sem sala que havia às pencas. Agora, nós, da linguística computacional estamos junto com o pessoal da fonologia, o pessoal de linguística histórica está com os da sintaxe e semântica, e os da fonética estão com alguém mais que ainda não sei. Nosso laboratório, que antes tinha 4 ou 5 pessoas, virou uma sala com 15! Mudou bastante. Teremos de nos adaptar...








Além disso, resolvi aproveitar e partir para o estudo de Ruby, uma outra lingua de programação que é de uma forma geral parecida com o Python, mas é mais divertida. Eu já tinha interesse de aprender um pouco, mas até a versão 1.8 a língua não apresentava um suporte robusto a unicode, e isso para mim é essencial. Agora, na versão 1.9, esse suporte apareceu e parece que ficou muito bom! Além disso, eu estava com a impressão de que Ruby estava rodando mais rápido que Python, até que agora há pouco eu li um artigo falando sobre isso. Um cara resolveu fazer um teste e gerar 35 números da sequência de Fibonacci e cronometrar o tempo de execução do programa. E não é que o Ruby ganhou de lavada? Python com 35.438s e Ruby com 13.691s! 2 vezes e meia de diferença!

Taí abaixo o resultado do embate:

$ time python fib.py
n=0 => 0
n=1 => 1
n=2 => 1
n=3 => 2
n=4 => 3
n=5 => 5
n=6 => 8
n=7 => 13
n=8 => 21
n=9 => 34
n=10 => 55
n=11 => 89
n=12 => 144
n=13 => 233
n=14 => 377
n=15 => 610
n=16 => 987
n=17 => 1597
n=18 => 2584
n=19 => 4181
n=20 => 6765
n=21 => 10946
n=22 => 17711
n=23 => 28657
n=24 => 46368
n=25 => 75025
n=26 => 121393
n=27 => 196418
n=28 => 317811
n=29 => 514229
n=30 => 832040
n=31 => 1346269
n=32 => 2178309
n=33 => 3524578
n=34 => 5702887
n=35 => 9227465

real 0m35.438s <=
user 0m34.650s
sys 0m0.044s

$ time ruby fib.rb
n=0 => 0
n=1 => 1
n=2 => 1
n=3 => 2
n=4 => 3
n=5 => 5
n=6 => 8
n=7 => 13
n=8 => 21
n=9 => 34
n=10 => 55
n=11 => 89
n=12 => 144
n=13 => 233
n=14 => 377
n=15 => 610
n=16 => 987
n=17 => 1597
n=18 => 2584
n=19 => 4181
n=20 => 6765
n=21 => 10946
n=22 => 17711
n=23 => 28657
n=24 => 46368
n=25 => 75025
n=26 => 121393
n=27 => 196418
n=28 => 317811
n=29 => 514229
n=30 => 832040
n=31 => 1346269
n=32 => 2178309
n=33 => 3524578
n=34 => 5702887
n=35 => 9227465

real 0m13.691s <=
user 0m13.305s
sys 0m0.028s

Os programas podem ser encontrados no blog Zen and the Art of Programming.

2 comentários:

Gustavo Teles disse...

Aaaaaaaaaaaah, tá...
agora tudo faz mais sentido em minha vida..
(só pra comentar mesmo! hehehe)

Bem que você podia arranjar um tempinho e postar coisas mais... legais, né! =P

Juliano disse...

E olha que quem diz isso é o "Engenheiro de Computação" oficial da nossa turma! :P tsc, tsc...

Daqui a pouco eu vou começar a postar coisas sobre Ontologias e Redes Semânticas...

Um abraço.

Pesquisar em blogues de brasileiros na Coreia

Resultado da pesquisa