Dia 23 de Dezembro de 2008 foi um dia importante para os Rubistas e Railers de todo o mundo, nesse dia David Heinemeier Hansson mais conhecido como DHH (líder do Ruby on Rails), anunciou no blog oficial do Rails que o framework Web Ruby iria ser fundido com o seu principal "concorrente" o Merb. Na busca de um framework cada vez melhor os dois maiores se uniram e criaram o que hoje podemos chamar de Rails 3 versão final.
Depois de ser comparado com Duke Nuke Forever devido a constante mudança da sua data do lançamento oficial o Rails 3 versão final foi lançado dia 23 desse mês (23/08/2010). Com diversas mudanças enumeradas e discutidas por toda a comunidade e com mais de 16000 contribuintes no total, o Rails provou que uma comunidade unida pode ser a chave para o sucesso.
Desde que a fusão foi anunciada muitas coisas mudaram, o Rails 3 foi totalmente reescrito buscando melhor performance, modularização, estabilidade, segurança e claro facilidade para o desenvolvedor final. Eles conseguiram isso? Bem, desde as versões beta sobram elogios em torno do framework e com a final não está sendo diferente. E claro com um time excelente com Yehuda Katz, Xavier Noria, Santiago Pastorino, o brasileiro José Valim, entre outros o resultado final não poderia ser outro além de um excelente framework muito bem escrito e com código elegante.
As mudanças já foram documentadas em diversos blogs, criando uma extensa quantidade de materiais disponíveis para aqueles que desejem conhecer as diferenças de implementação e conceituais contidas no Rails 3. Para aqueles que querem conhecer mais a fundo tais mudanças sugiro a leitura da documentação e de alguns blogs como o do Fábio Akita e do Yehuda Katz (em inglês). De uma forma geral as principais diferenças são:
- O Arel foi adotado como nova engine de Queries para o ActiveRecord
- Novo esquema de rotas para os Controllers
- Nova API de ActionMailer
- Nova forma de gerênciar dependências com o Bundler
- Proteção ao XSS por padrão
- Corrigido problemas com enconding
- Nova API ActiveModels
- Javascript não obstrusivo
- Documentação
- Maior facilidade da criação de plugins
- Generators
- Reescrita das partes internas do Rails o que garantiu melhor código e maior performance
O Rails 3 foi projetado para funcionar com Ruby 1.8.7 e Ruby 1.9.2 além de também ser compatível com o JRuby 1.5.2.
Apenas lembrando que agora para instalar o Rails 3 basta executar: gem install rails e não mais gem install rails --pre.
Para aqueles que querem migrar sua aplicação de Rails 2 para Rails 3 recomendo assistir as três partes do screencast do Ryan Bates do RailsCasts (em inglês) que explica como migrar sua aplicação: Parte 1, Parte 2, Parte 3.
Diversas bibliotecas como o RSpec entre outras já são compatíveis com a nova versão. Vale lembrar que algumas bibliotecas (gems) ainda não funcionam com o Rails 3, então antes de baixar verifique se a mesma é ou não compatível. E não se preocupe pois as principais gems já estão se movimentando a fim de serem compatíveis com a nova versão.
Com certeza o mês de Agosto é um mês muito feliz para os rubistas pois além do lançamento do Rails 3 tivemos também o lançamento do Ruby 1.9.2 primeira versão estável da nova e super performática versão do Ruby.
E você leitor, já experimentou o Rails 3?