Boas Novas para o mundo dos frameworks web Ruby: O Merb e o Rails serão fundidos. O Merb, começa por Ezra Zygmuntowicz, que explica a mudança
Nossos dois times começaram a conversar para ver se podiamos resolver nossas diferenças e nos unir para o bem comum. Nós definimos um roadmap do que e como integrar as melhores características do merb no Rails 3.0. Eu acho que nós temos um grande plano que irá tornar o Rails o melhor framework existente. Será uma fusão das melhores coisas que nós descobrimos enquanto trabalhávamos no merb, enquanto vamos manter a estética do Rails que as pessoas tanto gostam.
Você pode esperar uma versão ninja, rápida, eficiente em termos de memória do Rails(Merb) na próxima Primavera!(Outono no Brasil)
David Heinemeier Hansson, o criador do Rails, explica o futuro do Rails que se parece com o Rails 2.3 que sera seguido pelo Rails 3.0
O Rails 2.3 é apenas passar uma esquina. Nós esperamos liberar essa versão em Janeiro. Está é uma grande versão, com muitas coisas boas. Mas assim que ela estiver pronta, todos os olhos estarão no Rails 3.0
InfoQ recentemente entrevistou o Yehuda Katz onde ele explica muitos dos conceitos que agora serão incluídos no Rails. As mudanças específicas que irão tornar o Merb no Rails 3 são explicada no anúncio do David, assim como no anúncio no Yehuda Katz do Merb, tais como a API pública:
No Rails 3, Rails irá possuir uma API pública definida com uma suite de testes para essa API. Isso foi uma das maiores diferenças do Merb. Isso irá permitir aos usuários e desenvolvedores de plugins ter uma API mais clara e estável para se basear. Isso deve reduzir significativamente a quebra de compatibilidade dos plugins de versão para versão.
David também esplica as razões por tráz disso:
API rigorosa: Muitos plugins param de funcionar quando Rails é atualizado porque não é muito claro onde eles podem se apoiar seguramentee quando eles estão se atualizando e é de se esperar que as coisas parem de funcionar. Os caras do Merb comitaram uma API pública com testes para garantir que nada pare de funcionar. Eles trarão essa linha de pensamente e dar ao Rails uma API testada e documentada para extensão que não vai quebrar com os upgrades.
Rails 3 irá também herdar o foco do Merb em modularidade, um tópico que foi arduamente debatido na comunidade de Merb e Rails. Resumidametne, rails-core será criado, de forma que refletirá o merb-core, uma versõa mínima do framework web, como Yehuda explica:
Rails será remontado para tornar mais fácil começar com uma versão "core" do Rails (como o gerador core atual do Merb), que começa com todos os módulos fora e torna mais fácil selecionar apenas as partes que são importantes para sua aplicação. Claro, Rails ainda será empacotado com a versão "stack" como padrão (da mesma forma que o Merb faz desde a 1.0), mas o objetivo é tornar mais fácil fazer com Rails o que as pessoas fazem com Merb hoje.
David explica que o Rails 3 irá continuar a oferecer subsistemas padrão, mas também trabalhará bem com sistemas alternativos:
Agnosticismo do Framework: Rails irá sempre ter uma resposta padrão para todas as questões relevantes. Se você nào se preocupa com os frameworks de teste, você terá teste unitário. Se você não se preocupa com qual é o seu ORM, você terá um Active Record. Mas algumas pessoas se preocupam e querem algo mais. Algumas pessoas querem RSpec para testes, outras querem usar Sequel ou Data Mapper para ORM, outras ainda preferem Haml para templates e alguns podem preferir JQuery para Ajax. Todas essas pessoas podem sentir que Rails as está recebendo de braços abertos. Sim, nós teremos um default, mas não temos nenhuma discriminação em relação às alternativas.
Outras mudanças trarão a performance do Merb para o Rails 3.
Uma boa pergunta agora é claro: O que acontece com os desenvolvedores que usam o Marb? Yehuda explica:
Em particular, nós faremos releases do Merb com notas de deprecation e outros mecanismos transacionais para auxiliar aos desenvolvedores a entender as mudanças que virão entre o Merb 1.x e o Rails 3. Esperar um número de releases menores que vão incrementalmente se aproximando do Rails 3 e esperar partes do Merb (mais notavelmente os helpers) serem portados para rodarem no Rails 3 para reduzir o atrito.
Para ser perfeitamente claro: nós não estamos abandonando o projeto do Merb. Há muitas aplicações em produção rodando em Merb que estão confiando em correções de bugs e em um caminho mais claro para o futuro.
Ezra também acrescenta que a EngineYard, que está patrocinando o Merb por um bom tempo, tem interesse em uma transição suave:
E nós vamos fornecer uma forma clara de upgrade das aplicações Merb para o Rails 3.0. Nós ainda temos várias aplicações merb rodando internamente na [EngineYard] e queremos um modo de fazer o upgrade para nossas próprias aplicações também.
O blog Merbist também tem algumas informações sobre a fusão.
O que você acha da fusão?