Estive estudando Ruby por uma semana e agora comecei a estudar Rails.
Já trabalhei um pouco com Java tanto pra Web quanto Desktop.
Como já ouvi boatos de que Rails é lento, fui fazer uma pesquisa no google por ‘Rails slow’ e não gostei muito dos artigos e posts que li.
Apesar de saber que muito disso pode ser resultado de problemas de programação, gostaria de
uma opinião de quem trabalha com Ruby on Rails, Java ou outras tecnologias para Web.
Quero fazer um site que vai ter uma quantia de consultas à base considerável e também processar esses dados.
Para quem falar do twitter, acredito que não são mais um bom exemplo de Ruby on Rails, pois estão atualmente implementando rotinas de backend em Scala, apesar de manter Rails para frontend.
Como estou interessado em performance, gostaria de saber do pessoal se alguém já fez testes com RoR relativos a performance e opiniões de programadores de outras tecnologias também ajudam. Não só isso, mas também como os programadores RoR visualizam esses problemas e costumam resolver, já que estou no início dos estudos sobre Rails.
[quote=ihawk]
Para quem falar do twitter, acredito que não são mais um bom exemplo de Ruby on Rails, pois estão atualmente implementando rotinas de backend em Scala, apesar de manter Rails para frontend.
Obrigado !
Att,
Hawk.[/quote]
Mas Rails é para frontend! seu blog tem mais acessos que o Twitter? Eu duvido.
Desde quando usar uma tecnologia para o que ele foi feita a impede de ser considerada um bom caso de uso? :lol:
In a word “yes”. Search around for benchmarks on the net and you’ll find numerous surveys that show that, even by the standards of scripting languages, Ruby is a tortoise.
On the whole, however, this has been irrelevant to us. Most of our uses of Ruby are in building database backed websites. I’ve visited many projects over the decades like this, using Ruby and other technologies, nearly every project has spent time working on performance issues and in almost every case those performance issues are database access. People spend time tuning SQL not tuning their processing code. So since most applications are I/O bound, the use of a slow language for processing doesn’t make any appreciable impact to the overall performance of a system."
A principal implementação do Ruby (MRI) de fato não tem como destaque positivo a sua performance, no entanto, ainda assim ela é performática o suficiente para a maioria das aplicações.
Ruby é mesmo lento em comparacão a outras linguagens, mas isso não a impede de escalar razoavelmente bem. Geralmente os gargalos em aplicacões web são causados por latência de rede e acesso a banco de dados.
Outra coisa que pouca gente sabe é que grande parte da demora das respostas de um sistema web percebidas pelos usuários pode ser drásticamente reduzida aplicando técnicas de aumento de performance no front-end (minimizando javascript, ativando compressão gzip no servidor, adicionando cabecalhos de tempo de expiracao mais prolongados ao conteúdo estático do site, fazendo menos requisi’cões http, etc). Para todos esses problemas vc encontra solucões em gems ou no próprio core do Rails. Dê uma olhada na apresentacão do Daniel Lopes sobre isso (http://blog.areacriacoes.com.br/2010/2/26/como-deixar-suas-apps-at-80-mais-r-pidas)