Porque usar Ruby on Rails?

19 Apr
2011

ps: esse é um post meu de 2005 que atualizei pra refletir a realidade do framework.

Rails é uma alternativa às soluções padronizadas qualificadas como “empresariais”, que implicam enormes cargas de trabalho sob o custo da compatibilidade com o vicioso ciclo burocrático de consultoria e treinamento que afeta as grandes empresas. Rails tem como proposta remover várias camadas de complexidade, salientando a capacidade individual do desenvolvedor em detrimento dos requerimentos burocráticos de equipe. Isso não deve passar a impressão, entretanto, de que Rails não é adequado para o trabalho em equipe. Rails adere ao padrão MVC de forma pragmática o bastante para promover uma separação clara de papéis, e ainda facilita o emprego de técnicas de Agile e Test-Driven Development.

O objetivo deste texto não é comparar Ruby/Rails com outros frameworks/linguagens, mas sim mostrar as principais vantagens que um desenvolvedor pode ter utilizando este framework. Seguem os pontos:

Produtividade – como o desenvolvedor consegue resolver seu problema de uma forma mais simples, clara e concisa o desenvolvimento se torna mais agradável e rápido.

Simplicidade – esta é uma característica forte em Ruby, pois a solução de um problema, normalmente, é atingida de uma forma extremamente simples e clara, o que facilita o entendimento do código por outros programadores que precisarem fazer manutenção no código.

Convention over configuration – o Rails se baseia no princípio convenção sobre configuração. Ao invés de criar dezenas de arquivos para configuração, basta utilizar algumas convenções pré-definidas e, caso necessário, customizar somente o que for necessário. A configuração é feita através de arquivos YML, um formato simples de declarar configurações. Isso se traduz diretamente para economia de tempo no desenvolvimento.

Code generation – você não precisa criar sempre toda a estrutura de código à partir do zero, o que permite um tempo de startup e time-to-market menor do projeto. A principal vantagem do Rails quando comparada à outras tecnologias é que o código gerado é limpo e conciso, facilitando manutenções futuras. Outros frameworks até possuem geradores de código, mas uma vez gerado, são extremamente complexos e difíceis de receberem manutenção.

DRY principleDon’t Repeat Yourself é um conceito ‘criado’ por Dave Thomas (autor do livro The Pragmatic Programmer) que parafraseando significa:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

Como sempre foi dada muita importância pra isso, o framework como um todo foi moldado para evitar a duplicação de código.

Maturidade – a linguagem Ruby é bastante madura, foi criada pelo japonês Yukihiro “Matz” Matsumoto em 1993 e teve seu primeiro relase público em 1995(mesmo ano que o Java, por exemplo). Além disso, o framework Rails possui um bom tempo de vida, tendo seu primeiro release público em 2003.

Performance – o framework possui uma série de ferramentas e configurações que permitem excelentes ganhos de performance da aplicação e de uma forma simples, sem necessidade de um trabalho braçal por parte do desenvolvedor.

Segurança – o framework foi feito com uma grande preocupação nesse requisito, oferecendo ferramentas para tratamento das principais questões de segurança que um site precisa, como XSS e SQL-Injection, facilitando a vida do desenvolvedor e garantindo uma maior integridade da aplicação.

Suporte à vários databases – Rails vem com suporte à diversos databases, entre eles os principais bancos de dados do mercado: PostgreSQL, MySQL, Oracle, SQL Server.

IDE’s – já possui uma boa gama de ferramentas, como RubyMine, TextMate, Komodo, Aptana e Sublime Text.

Suporte nativo para Ajax – Ruby on Rails vem por padrão com o framework javascript jQuery, que permite a fácil adição de avançados recursos de interface, tornando mais fácil a criação de interfaces ricas e com melhor usabilidade.

Foco em testes – Ruby on Rails já vem com a ferramenta Test::Unit para automação dos testes da sua aplicação, além de possuir outras ótimas ferramentas como o RSpec.

Curva de aprendizado – aprender como funciona uma aplicação criada com Rails é mais simples que na maioria das outras tecnologias atuais, como Java, PHP, C#/.Net, como também para quem está querendo começar a desenvolver.

Cross-plataform – existe um bom suporte aos principais sistemas operationais do mercado, como Windows, Linux e MacOSX.

OpenSource – possui seu código completamente aberto, assim como a absoluta maioria dos plugins e bibliotecas disponíveis para ele. A comunidade é muito ativa e existem literalmente centenas de desenvolvedores que contribuem com código para melhorar o framework.

Feedback instantâneo – o ciclo de desenvolvimento é instantâneo, uma vez que não requer que o desenvolvedor fique reiniciando seu servidor de aplicação à cada mudança que faz (salvo algumas poucas configurações do framework).

Acredito que os itens acima já tenham sido suficientes para despertar a curiosidade para testá-lo. Se você estiver interessado em fazer alguém testar Ruby on Rails mas não quer ter muito trabalho, recomendo mostrar o vídeo Impressing with Rails 0.13, criado originalmente para ser usado no FISL 6.0, onde David Heinemeier Hansson mostra como criar um blog em 15 minutos ou o vídeo Introducing Rails 3, do Gregg Pollack.

Mas se você ainda não se convenceu que Ruby on Rails pode ser uma boa opção para seu projeto, abaixo seguem alguns links que reforçam o que eu falei:

Ruby on Rails: Making Programmers Happy
Entrevista com David Heinemeier Hansson no site eWeek.

Making programmers more productive
Phil Windley escreve sobre suas impressões sobre Rails.

The BBC’s programme catalogue (on Rails)
BBC está usando Rails para o seu catálogo com alguns milhões de shows.

…BBC have allowed me to rapidly prototype and deploy this 7,000,000-row database-backed site in everyone’s new favourite web framework…

Ruby on Rails and J2EE: Is there room for both?
Aaron Rustad faz uma comparação entre as principais features da arquitetura do Rails com os tradicionais frameworks J2EE

Interview with DHH
Entrevista com David Heinemeier Hansson, criador do Rails.

Get to the point!Development with Ruby and Rails
Apresentação mostrando as principais features da linguagem (Ruby em si, não especificamente do framework Rails). Muito bom pra mostrar para seu chefe(desde que ele seja/tenha sido um progrmador).

Ruby on Rails chases simplicity in programming
Entrevista com David Heinemeier Hansson, criador do Rails (saiu também no ZDnet).

SAP on Rails, and not on the skids
Com apenas algumas linhas de código, Piers Harding mostra como fazer integração com SAP, mostrando um pouco da flexibilidade do framework.

Evaluation: moving from Java to Ruby on Rails for the CenterNet rewrite
Case study muito interessante da migração do CenterNet(um grande aplicação da área de sáude) de Java para Ruby on Rails. E por ter sido feito em 6 vezes menos tempo (8 dias contra 6 semanas do Java) com uma redução de 20:1 para código, eu diria que sim, é uma redução bem relevante. Antes que alguns trolls apareçam criticando, sim, migrar uma aplicação é mais rápido do que desenvolver ela do zero, mas convenhamos, 20:1 é um número incontestável.

Ruby the Rival
Entrevista com alguns desenvolvedores experientes, mostrando sua visão da linguagem Ruby.

Ruby on Rail – Real World Usage
Uma lista com algumas empresas que já estão usando Rails em aplicações reais.

Ruby on Rails Dev Framework on Track for Growth

Fast-track your Web apps with Ruby on Rails
David Mertz demonstra através de uma mini-aplicação algumas vantagens do framework.

E isso pode ser o fim dos outros frameworks, seja Java, .Net, PHP, para desenvolvimento mainstream? Dificilmente. Que todo mundo abandonará Java e migrar para Rails? Com certeza, não.

by-nc-nd

1 Response to Porque usar Ruby on Rails?

Avatar

Fragmental »

November 20th, 2005 at 6:29 pm

[...] O Diego acaba de postar um texto bem interessante e cheio de links sobre o Ruby on Rails. Se você procura mais informações, não deixe de passar no plentz.org [...]

Comment Form

top