Fiz uma comparação bem simples com as três linguagens que uso atualmente para desenvolver para a web: PHP, Python e Ruby.
Resolvi compartilhar com vocês o resultado deste teste. Fiz o seguinte: peguei uma aplicação de exemplo bem simples, um livro de visitas. Basicamente é apenas uma tela, onde há uma listagem das assinaturas e um formulário para que a pessoa possa assinar o livro de visitas, com apenas um campo para a mensagem.
Após decidir sobre a aplicação, escolhi os ambientes em que iria montar ela:
1 - PHP, banco de dados MySQL, servidor Apache rodando localmente e framework Codeigniter
2 - Python, Google Datastore rodando sobre GoogleAppEngine localmente, framework Webapp/Django
3 - Ruby, banco de dados SQLite, rodando localmente sobre Mongrel, framework Rails

Montei a mesma aplicação nos três ambientes, e comparei os resultados. Confiram:
Linguagem: PHP
Framework(s): Codeigniter
Ambiente: Apache/PHP5
Banco de dados: MySQL
Tempo de desenvolvimento: ~11 minutos
Linhas de código digitadas: ~50
Tempo de resposta: ~34ms
Linguagem: Python
Framework(s): Webapp e Django (templates)
Ambiente: Google AppEngine
Banco de dados: Google DataStore
Tempo de desenvolvimento: ~13 minutos
Linhas de código digitadas: ~64
Tempo de resposta: ~80ms
Linguagem: Ruby
Framework(s): Ruby on Rails
Ambiente: Mongrel
Banco de dados: SQLite
Tempo de desenvolvimento: ~7 minutos
Linhas de código digitadas: ~31
Tempo de resposta: ~122ms
Então nosso placar fica assim:
Linhas de código:
1 - Ruby (~31 linhas)
2 - PHP (~50 linhas)
3 - Python (~64 linhas)
Tempo de desenvolvimento:
1 - Ruby (~7 minutos)
2 - PHP (~11 minutos)
3 - Python (~13 minutos)
Tempo de resposta:
1 - PHP (~34ms)
2 - Python (~80ms)
3 - Ruby (~122ms)
Caso queira baixar os arquivos do projeto escrito nas três linguagens, baixe aqui.
Lembrando que o teste teve como objetivo apenas minha curiosidade pessoal, e não foi feito rigorosamente, portanto os números podem não ser exatos.
Mesmo assim, foi muito divertido =]
Legal a idéia de comparar uma aplicação para seu próprio desenvolvimento.
Mas o legal é que saibam, como vc mesmo mencionou, que foi uma comparação pessoal, e que a melhor linguagem ou tecnologia é aquela que atende o seu problema da melhor forma.
Abs
Exatamente Felipe. Digamos que eu tivesse que fazer esta aplicação na “vida real” para um cliente qualquer, muito provavelmente eu utilizaria PHP, afinal Rails e Webapp são frameworks muito mais completos e complexos, enquando o CodeIgniter é consideravelmente mais enxuto e mais simples.
Há que se levar em conta também sua afinidade com cada linguagem/framework.
Além disso, o GAE torna o Django um pouco menos simples do que ele de fato é. Não quero começar uma guerra entre linguagens aqui (porque sei que isso não leva a nada), mas acredito que eu conseguiria um resultado melhor com o Django do que o que você obteve.
Jader, a comparação levou em conta o Ambiente e o Framework. Logo, eu avaliei o Python juntamente com o AppEngine, não o Python com o Django (usando django para os templates). Esqueci de incluir no post algum trecho de código comparando um pouco as sintaxes. PHP pode ter tido menos linhas de código que Python, mas na minha opinião o código em Python ficou muito melhor e mais conciso.
Ae, muito bom o post.
Eu, aqui, to começando a querer expandir meu conhecimento pra justamente uma dessas linguagens novas.
Pelo que eu vi, o ruby, com o framework é muito legal.
Mas, acho que vou pelo python , até porque ja tenho ele instalado aqui :p
Bom, continue postando ai, que ta muito bom o blog.
Até
Muito interessante seu post, só fico na dúvida se o tempo de resposta ali é mais influenciado pela linguagem ou pelo banco… mais de quelquer forma acho que o php é o mais interessante..
Estou estudando qual das opções irei escolher para desenvolver um aplicativo web, e confesso que estou sem saber qual caminho tomar.
Gostei muito do framework CodeIgniter - leve e fácil de instalar. Porém vejo que o Ruby on Rails está muito forte, com muitos materiais e plugins à disposição na internet.
Luiz, escolha o que for melhor do ponto de vista do projeto. Você vai ter controle do servidor? O projeto tem pretensões de ter um enorme volume de dados trafegando direto? Precisa de algum recurso que uma das tecnologias oferece melhor que a outra?
[]’s
Será um aplicativo simples para controle dos usuários do meu site.
Os usuários são distribuidores que utilizam o site da equipe para divulgar a empresa, exemplo:
http://www.agelvisao.com/?id=luiz
O site já tem vários usuários utilizando o link (+/-300), cada um com sua ID. A expectativa é de termos muito mais. Cada membro utiliza o mesmo site, alterando apenas a ID no final do link.
Hoje cadastro cada usuário numa página simples de php. Também tenho página para deletar e editar usuários. Porém, quero incrementar esse sistema construindo um aplicativo no qual, além das tarefas padrões (CRUD), eu tenha também funções como login para administração, envio de comunicado à todos os membros da equipe, etc…
Eu não tenho controle do servidor.
Luiz, pelo que me parece neste caso a melhor opção seria usar PHP com algum framework, já que o Rails requer certo controle do servidor. Além disso, como é uma aplicação relativamente simples, não vale a pena “usar um canhão para matar uma mosca”.
Muito obrigado!
Foi o que eu pensei… Já iniciei a construção do aplicativo com Code Igniter.
Até+
Gostei do artigo (ainda mais por quê o PHP foi o mais rápido! rs).
Um amigo meu já havia me falado sobre o Ruby, e que você digitava bem menos pra desenvolver alguma coisa (digitou-se 40% a menos do que em PHP), e vendo esse artigo já deu vontade de estudá-lo.
Legal, parabéns!
Muito bacana este tipo de comparação, principalmente na comparação com tempo de desenvolvimento. No quesito performance, acho que cada tecnologia tem seus melhores pontos e para testar para valer, seria necessário algo mais elaborado!
[]s
Um framework muito novo mais muito versátil tem chamado a atenção de muitos desenvolvedores, chama-se Yii (pronuncia-se i).
http://www.yiiframework.com
Estou estudando ele.