Rails é mesmo escalável? – O problema dos problemas

Não, aqui não tem a resposta para essa pergunta.

O problema com os problemas

A pergunta é interessante. Esses dias conversando com um colega meu que estava muito animado em começar a utilizar Rails em um novo projeto da empresa, então ele me diz que o chefe dele perguntou “É escalável mesmo?”

O cara ouviu falar que Rails existe em algum lugar, e como é sempre mais fácil escutar coisas ruins, provavelmente ouviu que “Rails não é escalável”. Googlando sobre isso, é fácil encontrar artigos descrevendo problemas ou defendendo o Rails.

Por exemplo esse artigo (http://www.buildingwebapps.com/articles/6419-can-rails-scale-absolutely) fala sobre como é possível resolver problemas de escalabilidade com Rails. E também é legal o que ele fala sobre o problema:

There’s a persistent chatter about scalability in discussions of Rails, especially among people who aren’t actually using it.

Esse outro artigo fala sobre os problemas que o Rails tem com escalabilidade por ser “single-threaded” (http://jonathanboutelle.com/2008/08/03/rails-being-single-threaded-causes-scalability-problems/)

Mas peraí, ambos os artigos são de 2008, e de lá pra cá muita coisa mudou. Problemas foram solucionados, novos problemas surgiram. Discutir sobre problemas é legal, gera ideias que podem acabar em ferramentas ou novos frameworks.

Simplesmente dizer que PHP é ruim sem nenhum motivo e acreditar que com isso todo o universo vai abandonar PHP é burrice. Dizer que PHP é ruim porque a base de código é difícil de manter é um pouco mais útil. Agora dizer que a base de código em PHP que você viu/utilizou é difícil de manter e procurar saber mais sobre frameworks como CakePHP http://cakephp.org/ é bem melhor.

O problema com os problemas é que é bem mais fácil apontar e depois pular fora.

O que faz Rails ser o que é

Várias coisas mudaram no Rails e na comunidade ao seu redor, da mesma forma que acontece com qualquer outra plataforma. O que fez o Java um sucesso tão grande? A sua comunidade. Sério, tudo o que você precisar, alguém já fez em Java. O que faz do Rails uma plataforma amplamente utilizada? A sua comunidade. Você encontra desde Gems que fazem autenticação de usuário, até analise de memória para otimização do sistema.

O Rails matou o Java, agora o Node.js vai matar o Rails. Bom, existem várias discussões sobre isso, o que é melhor ou não, e por ai vai. Primeiro que a comparação é extremamente ridícula. Observe que Java é uma linguagem, Rails é um framework, qual o sentido em comparar?

Rails não matou o Java, a comunidade Java ainda existe. Até mesmo JSF ainda está vivo! Veja essa notícia (http://www.infoq.com/br/news/2012/09/jsf-omnifaces). Repare na url, isso mesmo, Agosto de 2012.

Ou seja, ninguém mata ninguém. Opções surgem e as pessoas, felizmente, podem escolher. Hoje Rails é amplamente utilizado e Node.js surge como uma nova opção, assim como Sinatra, VRaptor, etc. Simplesmente dizer que “o meu é maior que o seu” é estupidez.

Amanhã o Justin Bieber manda um tweet falando que Django é o novo melhor framework do mundo. Ai todo mundo começa a utilizar Django, fazer plugins, etc. E aqueles posts sobre como Rails matou Java viram a nova piada.

Java evoluiu bastante, e eu acho que a plataforma Java, não só a linguagem, é excelente. Muitas outras linguagens/plataformas conseguem rodar sobre a JVM, então ela te provê um bom ambiente para um projeto que precisa integrar várias linguagens.

No entanto, a plataforma Java sempre teve um foco em manter a compatibilidade. Desde aqueles warnings chatos do eclipse que dizem que o código é “deprecated” até a demora para lançar novas versões. E isso é bom, dependendo do seu projeto. Talvez seja interessante atualizar a versão do Java e não ter problemas para rodar as suas aplicações.

Já o Rails não se preocupa muito em manter compatibilidade. Se você tem um projeto Rails 2.x e quer evoluir para Rails 3.x, é bem complicado. Mas isso também pode ser uma coisa boa. Talvez você queira utilizar uma plataforma que lhe dê sempre o que há de novo, mesmo que isso cause problemas durante a migração.

Conclusão: não seja um idiota

Se você faz parte das pessoas que não usam tal tecnologia e mesmo assim falam dela, que tal tentar utilizar? Tudo bem que você não vai ter a mesma experiência que se tem em um projeto real, mas pelo menos você pode tentar conhecer um pouco melhor. Todo dia um novo framework Javascript aparece, antes de falar mal, tente utilizar.

Então ao invés de provar pro outros que o seu é maior, prove pra si mesmo. A sua aplicação é escalável? A sua aplicação é segura? O quão fácil é migrar para uma nova versão?

Quem sabe você acaba contribuindo para comunidade com novas ideias ou ferramentas, ao invés de tentar ser um psy-hipster no twitter.

Anúncios

2 comentários sobre “Rails é mesmo escalável? – O problema dos problemas

  1. Rapaz, concordo com você. É bom ter varias opções para poder escolher ao iniciar um novo projeto. No começo quando conheci Rails, também cheguei a pensar que esse tinha ‘matado’ o Java. Mas não tem cabimento uma comparação dessas.

    Parabéns pelo post.

  2. Me identifiquei muito com o post, hehehe! Cara é isso mesmo, as pessoas que falam algo sem saber, sequer se deram o trabalho de ver como funciona. Estou me surpreendendo cada dia com o rails. Creio que não solução perfeita e sim a melhor para um determinado caso.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s